Típusok, változók, konstansok

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

1 Informatikai Szakképzési Portál Adatbázis kezelés Az SQL nyelv elemei.
Összetett adattípusok 8/b tétel
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
Algoritmus és programozás
Bevezetés a programozásba
LEgyméretű tömbök, vektorok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 17./0. lVektorok definiálása lVektorok definiálása kezdőértékekkel.
Kifejezések, operandusok, operátorok
LFüggvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./0. lFüggvények deklarációja és prototípusa lA függvénydefiníció lHivatkozás.
LRendezés minimális elem kiválasztással Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./0. lAz algoritmus működése lRávezető feladat.
Objective- C Bereczki Gréta Tamara
Programozási Nyelvek (C++) Gyakorlat Gyak 03.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Turbo Pascal Változók.
Sztringek.
Bevezetés a Java programozásba
Bevezetés a Java programozásba
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
6. előadás (2005. április 5.) Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
2. Gyakorlat Követelmények / „C” ismétlés
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Függvények, mutatók Csernoch Mária.
Mutatók, tömbök, függvények
Borland C/C++ mintapéldák
Borland C/C++ mintapéldák tömbökre
Borland C/C++ mintapéldák függvényekre. 1. példa Írjunk olyan függvényt amely egy számot kiirat.
Borland C/C++ mintapéldák struktúrákra. 1. példa /* Egyszerû példa a struktúrák használatára */ #include #define SIZE 5 struct szemely { char nev[26];
LDinamikus tömbök, kétdimenziós tömbök Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 21./0. lVektorok létrehozása futásidőben, dinamikusan.
Utasítások, elágazás- és ciklusszervezés C nyelvi utasítások
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Programozás I Függvények általános jellemzői
Programozás I. Adatállományok dr Póder Margit f. docens Rendszer és Szoftvertechnológia Tanszék.
Rendszer és Szoftvertechnológia Tanszék
További vektor, mátrix algoritmusok
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás Az adatokról C# -ban.
Megszámlálás, kiválasztás alapalgoritmusok
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Programozási nyelvek Páll Boglárka.
Készítette: Csíki Gyula
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Objektum orientált programozás
Objektum orientált programozás
Objektum orientált programozás
Programozás I. Típus algoritmusok
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
C Programozási alapok.
Programozás alapjai Csernoch Mária.
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Free pascal feladatok
Programtervezés, programozás I. 2.5 tömbök,stringek
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
Struktúrák a C nyelvben 1 Akkor használjuk, ha az egy egyedre jellemző különböző típusú adatokat együtt akarjuk tárolni. Lényegében típusdeklaráció. A.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Informatikai gyakorlatok 11. évfolyam
Informatikai gyakorlatok 11. évfolyam
Programozási nyelvek típusossága.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
A CLIPS keretrendszer
Változók.
A struct, az union és az enum típus
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Könyvtári függvények I. Input / output kezelés függvényei
Konverziós operátorok
Az objektum-orientáltság
Típusok, változók, konstansok
Előadás másolata:

Típusok, változók, konstansok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./0. A C programozási nyelv A C nyelv kialakulása Típusok, változók, konstansok Változók definiálásának egyszerű esetei Saját típus definiálása Konstansok megadása Egy egyszerű C program A C nyelv jellegzetességei A C program összetevőinek felépítése Be- és kiviteli függvények egyszerű alakja Deklarációk Blokk Függvénydefiníció Adatbeolvasás formátumellenőrzéssel Egyetlen karakter beolvasása megjelenítés nélkül A C program felépítése Cím, érték, mutató fogalma

Nevezetes mérföldkövek Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./1. A C nyelv kialakulása Nevezetes mérföldkövek BCPL nyelv, Martin Richards, 1963 B nyelv, Ken Thompson, 1970  UNIX megírására C nyelv, Dennis M. Ritchie, 1971  hatékonyabb verzió "The C programming language" referenciamű, B.W.Kernighan és D.M.Ritchie ANSI C szabvány, 1989, Amerikai Szabványügyi Hivatal

Egy egyszerű C program #include <conio.h> /* clrscr miatt */ Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./2. Egy egyszerű C program #include <conio.h> /* clrscr miatt */ #include <stdio.h> /* printf, scanf miatt */ #define PI 3.1415926 main() { float r, kerulet, terulet; clrscr(); printf( "Körjellemzök számítása\n\n" ); printf( "A kör sugara (méter) = " ); scanf( "%f" , &r ); kerulet = 2*r*PI; terulet = r*r*PI; printf( "\nA kerület= %6.3f méter\n", kerulet ); printf( "A terület= %6.3f négyzetméter\n", terulet ); }

A C nyelv jellegzetességei Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./3. A C nyelv jellegzetességei Általános célú, magasszintű nyelv Tömör, gyors programok írására alkalmas Gépfüggetlensége, hordozhatósága jó Különféle hardverplatformokon létezik Rendszerprogramozásra alkalmas Az eljárásokat típus nélküli (void) függvényekkel valósítja meg Alprogram nem definiálható alprogramon belül, csak deklarálható Erősen épít a mutatók használatára, speciális pointeraritmetikát alkalmaz

A C nyelv jellegzetességei . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./4. A C nyelv jellegzetességei . . Lehetőséget nyújt makro-k (automatikus szöveghelyettesítés) használatára Sztring típus helyett karaktervektorokat alkalmaz Gazdag függvénykönyvtár készlettel rendelkezik PC-ken többféle memóriamodell szerinti fordítás közül választható a leggazdaságosabb Lehetővé teszi egyes változóknak a processzor regisztereihez rendelését A fordításkori optimalizálás gazdag lehetőségét nyújtja A kisbetűket és nagybetűket megkülönbözteti.

A C program összetevőinek felépítése Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./5. A C program összetevőinek felépítése Deklarációk (bármely sor elmaradhat, vagy többször ismétlődhet) #include <headerfájl-név.h> #define <konstans, vagy függvénymakró> typedef <típus> <újtípusnév>; /* új típus definiálása */ <típus> <változóazonosító>; /* változódefiniálás */ <típus> <függvénynév(paraméterek)>; /* fv deklaráció */ Blokk { <deklarációk> /* lokálisak, blokkon belül érvényesek */ <utasítások> /* bármely utasítás lehet blokk */ }

A C program összetevőinek felépítése . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./6. A C program összetevőinek felépítése . . Függvénydefiníció <típus> <függvénynév(paraméterek)> <blokk> A C program felépítése Megjegyzés: más felépítés is lehet <deklarációk> /*globálisak, programon belül érvényesek */ main() /* a fő függvény */ <blokk> /* a fő függvény blokkja */ <függvénydefiníciók> /* a deklarált fv-ek teljes megadása*/

Típusok, változók, konstansok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./7. Típusok, változók, konstansok Típusnév Értéktartomány Formátumsztring (scanf és printf) char '\0',..,'!',..,'0','1',..,'A',..,'a',..,'\xFF' "%c" signed char -128..127 "%d" unsigned char 0..255 "%u" int -32768..32767 "%d" unsigned int 0..65535 "%u" short int -32768..32767 "%d" unsigned short int 0..65535 "%u" long int -2147483648..2147483647 "%ld" unsigned long int 0..4294967295 "%lu" enum felsorolásnak megfelelő float (3.4E-38..3.8E38) "%f" v. "%e" double (1.7E-308..1.7E308) "%lf" v. "%le" long double     (3.4E-4932..1.1E4932) "%Lf" v. "%Le" mutató tömb struct union egész egész jellegű lebegőpontos egyszerű összetett

Változók definiálásának egyszerű esetei Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./8. Változók definiálásának egyszerű esetei <típus> <változó1>, <változó2>,...; <típus> <vált1> = <kezdőért1>, <vált2> = <kezdőért2>,...; Pl.: int i, j, k ; float valos = 4.27, beta = 90, delta = 1E-03; Saját típus definiálása typedef <típus> <új_típus_neve>; Pl.: typedef unsigned long int rekordszamtip ;

Karakteres konstansértékek Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./9. Konstansok megadása Karakteres konstansértékek általános karakterek: pl.: 'c' speciális karakterek: pl.: '\0' sztringvégjel '\a' sípolás '\n' új sorba lépés '\'' aposztróf ( ' ) '\\' \ jel '\r' sorelejére lépés '\xhh' hh hexadecimális kódú karakter.

Konstansértékű azonosítók Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./10. Konstansértékű azonosítók Változóból a const típusminősítő eléírásával const <típuselőírás> <változónév> = <kezdőérték>; Pl.: const float eps = 0.003; A #define előfordító direktívával #define <azonosító> <helyettesítő szöveg> Pl.: #define PI 3.14159265 #define TRUE 1 #define FALSE 0 #define SZOVEG "Folytatás ? "

Be- és kiviteli függvények egyszerű alakja Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./11. Be- és kiviteli függvények egyszerű alakja Adatbeolvasás formátumellenőrzéssel scanf(<formátumsztring>, &vált1, &vált2,...); A függvény a beolvasott adatot a formátumsztringben megadott típusú adatként értelmezi és konvertálja a változó típusára, majd elhelyezi a változó címére. A függvény visszatérési értéke a sike- resen beolvasott értékek száma (int), amelyet nem kötelező fel-használni. Az értékek elhelyezéséhez a változók címét kell meg- adni a & operátorral. Pl.: scanf( "%d" , &egeszvaltozo ); scanf( "%f" , &valosvaltozo ); scanf( "%u" , &elojelnelkuli_egesz );

Be- és kiviteli függvények egyszerű alakja . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./12. Be- és kiviteli függvények egyszerű alakja . . Egyetlen karakter beolvasása megjelenítés nélkül karakterváltozó = getch(); Pl.: char bill ; bill = getch(); Adatkiírás formázott módon printf(<formátumsztring>, kifejezés1, kifejezés2,...); A kiíratás formátumsztringje tájékoztató szövegből és % jellel kezdődő konverziós előírásból állhat.

% A konverziós előírás felépítése Jelző: balraigazítás Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./13. A konverziós előírás felépítése jelző minimális mezőszélesség pontosság méretmódosító % konverziós betű Jelző: balraigazítás + + előjel kiíródik + előjel helyett szóköz Méretmódosító betű: h short int, ha a konverziós betű: d, u l long int, ha a konverziós betű: d, u l double, ha a konverziós betű: f, e, E L long double, ha a konverziós betű: f, e, E L long int, ha a konverziós betű: d, u

% A konverziós előírás felépítése . . Konverziós betű: Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./14. A konverziós előírás felépítése . . jelző minimális mezőszélesség pontosság méretmódosító % konverziós betű Konverziós betű: c a számnak megfelelő ASCII kódú karakter d előjeles egész u előjel nélküli egész f float, vagy double számot lebegőpontosként, e, E float, vagy double számot exponenciális alakban ír ki p mutató értékét adja szegmens:offset alakban s sztring karaktereit írja ki.

Példák a konverziós előírás használatára Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./15. Példák a konverziós előírás használatára Pl.: printf( "betü: %c " , 65 );  betü: A printf( "egész= %7d\n" , -125 );  egész= -125 printf( "Eredmény= %8.2f" , 62.872 );  Eredmény= 62.87 printf( "exp.alak= %+8.2e" , 62.87 );  exp.alak= +6.29e+01 printf( "Totál= %12lu" , 123456789 );  Totál= 123456789

Cím, érték, mutató fogalma Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./16. Cím, érték, mutató fogalma A memória egymást követő tárolóhelyek sorozata. Egy tárolóhelynek van sorszáma, amit címnek nevezünk és van tartalma, amit az adott címen tárolt értéknek nevezünk. Mivel a címek számértékek és nehe-zen megjegyezhetők, ezért helyettesítjük azokat nevekkel, ezek a változók. Egy változó címe alatt az általa helyettesített címértéket értjük, értéke alatt pedig az adott címen tárolt értéket. Amennyiben a cím tárolására akarunk változót, azaz egy másik címen található tárolóhelyet létrehozni, ezzel tulajdonképpen egy mutatót (pointert) hozunk létre, melynek számunkra az értéke fontos. A po-interváltozóban tárolt érték az a cím, amelyen az eredeti változónk található a memóriában.

Cím, érték, mutató fogalma . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 14./17. Cím, érték, mutató fogalma . . mut1 8944 valt1 17 79 43 7776 8946 8945 A mut1 pointerváltozónak értékül adhatjuk a valt1 változó címét a & operátor segítségével: mut1 = &valt1 ; ami után vált1 tartalmát, értékét olvashatjuk, írhatjuk közvetett módon a * (indirekció) operátorral, mivel: valt1 == *mut1 . Azaz valt1 definiálása nélkül is tudjuk mut1 segítségével írni, olvasni a 8944-es című tárolóhely tartalmát, sőt egyszerűen mut1 tartalmának megváltoztatásával hozzáférhetünk pl. a 8945, vagy a 8946 tárolóhe-lyek tartalmához is.