Programozás I. - 2. gyakorlat Változók, típusok, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer - És Számítástudományi Tanszék Utolsó frissítés: September 21, 2009 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 1 / 14
1 Változók 2 Típusok 3 Kiiratás, a printf függvény 4 Feladatok Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 2 / 14
Mi a változó? A programjaink adatait változókban tároljuk. Minden változónak van neve típusa mérete memóriacíme (helye a memóriában) értéke opcionálisan típusmódosítója Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 3 / 14
Változó típusok Egyszer adattípusok char Egy karakter char* Karaktersorozat short Rövid egész int Egész szám long Hosszú egész oat Rövid valós double Valós szám long double Hosszú valós A logikai adatokra C-ben nincs külön típus, a 0 érték hamisat, minden egyéb pedig igazat jelent. Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 4 / 14
Tömbök Deníció Olyan objektumok halmaza, melyek azonos típusúak, és a memóriában folytonosan helyezkednek el. Tömbök deklarálása int* valt Egy el re deniálatlan méret tömb. int valt[5] Öt egész számtárolására alkalmas tömb. int valt[]={1,2,3} Három egész elem tömb Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 5 / 14
Sztringek Deníció A sztring olyan karaktertömb, amelyben a karakterek sorozatát a 0 érték karakter zárja. Néhány példa deklarálásra char s[]="ez egy sztring"; char s[5]={'a','l','m','a'}; char s[5]={'k','o','r','t','e'}; - hiba! Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 6 / 14
A printf használata printf("hello World! \ n"); A printf függvény a standard outputra való kiiratásra alkalmas. printf("kiiratando szoveg: %s", sztring1);... A képerny n megjelenítend szöveg, amely speciális karaktereket és kifejezéseket tartalmazhat. sztring1 A behelyettesítend változó neve. Példa speciális karakterekre: \n új sor \t tabulátor Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 7 / 14
Változók kiíratása printf segítségével A változók beillesztésére szolgáló kifejezés mindig % jellel kezd dik. Néhány példa, hogy melyik típus esetén melyik kifejezésre van szükség: %i,%d El jeles decimális %u El jel nélküli decimális %o El jel nélküli oktális %x El jel nélküli hexadecimális %f Lebeg pontos %c Karakter %s Karaktersorozat Teljes leírás user@host:~$ man 3 printf Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 8 / 14
printf példa Forrás (printf.c) # i n c l u d e < s t d i o. h> i n t main ( ) { i n t a =0, b=5; p r i n t f ( "A k e t szam:%d, %d\n", a, b ) ; return 0 ; } Kimenet user@host:~$./printf A ket szam: 0, 5 user@host:~$ Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 9 / 14
A printf formázási lehet ségei - I. Flagek - Balra igazít + El jel kiírása minden esetben space Pozitív számok elé egy szóközt tesz # Mindig kiírja a tizedespontot, az oktális számok elé 0-t a hexadecimálisok elé 0x-et tesz 0 Nullákkal feltölti a szám elejét ' Az ezres szeparátort állítja be - rendszerfügg Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 10 / 14
A printf formázási lehet ségei - II. Szélesség Az, a ag-ek után írt szám, amely meghatározza a kiírandó változó minimális hosszát. Pontosság Egész számoknál a minimálisan kiírt számjegyek száma e, E és f lebeg pontos típusoknál a tizedespont után kiírt jegyek száma, g és G esetén pedig a minimális hasznos jegyek száma Sztringnél a kiírandó szöveg maximális hossza. Ez csonkolást okozhat. Helyettesítés A szélesség és a pontosság mez k lehetnek paraméterek, ekkor a * karaktert használjuk helyettesítésre Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 11 / 14
Lebeg pontos számok kiiratása - I. Forrás (printpi.c) #include <s t d i o. h> i n t main ( ) { double x =3.1415926535; p r i n t f ( " e : %e \n", x ) ; p r i n t f ( "E : %E\n", x ) ; p r i n t f ( " f : %f \n", x ) ; p r i n t f ( "g : %.3g\n", x ) ; p r i n t f ( "G : %.16G\n", x ) ; return 0 ; } Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 12 / 14
Lebeg pontos számok kiiratása - II. A kimenet e: 3.141593e+00 E: 3.141593E+00 f: 3.141593 g: 3.14 G: 3.1415926535 Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 13 / 14
Feladat 1 Írj egy programot, amely pontosan megjeleníti a képerny n a www.dcs.vein.hu/ tar/ oldalon található, a gyakorlathoz tartozó példakimenetet. A program használja ki a printf formázási lehet ségeit! Tar Péter (PE-MIK-DCS) Programozás I. - 2. gyakorlat September 21, 2009 14 / 14