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
[email protected]
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:
Tar Péter
\n
új sor
\t
tabulátor
(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)
# include int int return
< s t d i o . h>
main ( ) {
a =0 ,
p r i n t f ( "A
b =5; ket
szam :%d , %d \ n " , a , b ) ;
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
száma,
f g
lebeg®pontos típusoknál a tizedespont után kiírt jegyek é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 int
< s t d i o . h>
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 :
%.3 g \ n " , x ) ;
p r i n t f ( "G :
%.16G\ n " , x ) ;
return
}
Tar Péter
(PE-MIK-DCS)
0;
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