Feladatgyűjtemény a C programozási nyelvhez
|
|
- Veronika Rácz
- 8 évvel ezelőtt
- Látták:
Átírás
1 Feladatgyűjtemény a C programozási nyelvhez Smidla József november 7.
2 2
3 Tartalomjegyzék I. Nyelvi alapok 5 1. Kimenet, bemenet 7 2. Változók, operátorok Vezérlési szerkezetek Programozási tételek Csere Lineáris keresés Eldöntés Megszámlálás Minimum kiválasztás Rendezés Feladatok Függvények Függvényhívások Rekurzió Feladatok Mutatók Struktúrák File kezelés A standard könyvtár Az előfeldolgozó 57 II. Fejlettebb technikák Láncolt listák Fák Bitműveletek Memóriakezelés 67 3
4 4 TARTALOMJEGYZÉK 14.Parancssori paraméterek 69
5 I. rész Nyelvi alapok 5
6
7 1. fejezet Kimenet, bemenet A következő feladatokat úgy oldja meg, hogy az alábbi programot egészítse ki: 1 #include <s t d i o. h> 2 3 int main ( ) { 4 int i 1 = 10, i 2 = 8, i 3 = 3 ; 5 double d = ; 6 f loat f = ; 7 char ch = M ; 8 char s t r [ ] = " ez egy szoveg " ; 9 10 // Ide i r j a a megoldast! return 0 ; 13 } Az alábbi feladatok mindegyikében látható 1-1 példa kimenet olyan formában, hogy az egyes karaktereket (például a szóközöket) jól láthatóan elkülöníthessük egymástól. Ott, ahol tabulátort kell használni, az átláthatóság kedvéért a példában 3 szóköz található, a valóságban ez több is lehet feladat Írassa ki az i1 változó értékét minimum 5 karakter széles mezőben, jobbra igazítva: feladat Írassa ki az i1 változó értékét minimum 5 karakter széles mezőben, balra igazítva: feladat Írassa ki az i1 változó értékét minimum i2 karakter széles mezőben, jobbra igazítva: 1 0 7
8 8 1. Kimenet, bemenet feladat Írassa ki az i1 változó értékét minimum 5 karakter széles mezőben, jobbra igazítva, a mező üres karaktereinek helyén 0 legyen: feladat Írassa ki az i1 változó értékét, ha a szám pozitív, akkor legyen előtte egy szóköz: feladat Írassa ki a d változó értékét minimum 8 karakter széles mezőben, 3 tizedesjegy pontossággal: feladat Írassa ki a d változó értékét minimum i1 karakter széles mezőben, 3 tizedesjegy pontossággal: feladat Írassa ki a d változó értékét minimum 8 karakter széles mezőben, i1 tizedesjegy pontossággal: feladat Írassa ki a d/2.0 értékét minimum 8 karakter széles mezőben, 3 tizedesjegy pontossággal: feladat Írassa ki a d változó értékét minimum i3 karakter széles mezőben, i1 tizedesjegy pontossággal: feladat Írassa ki az f változó értékét minimum 8 karakter széles mezőben, 3 tizedesjegy pontossággal: feladat Írassa ki az f változó értékét minimum i1 karakter széles mezőben, 3 tizedesjegy pontossággal: feladat Írassa ki az f változó értékét minimum 8 karakter széles mezőben, i1 tizedesjegy pontossággal: feladat Írassa ki az f/4.0 értékét minimum 8 karakter széles mezőben, 3 tizedesjegy pontossággal: feladat Írassa ki az f változó értékét minimum i3 karakter széles mezőben, i1 tizedesjegy pontossaggal:
9 feladat Írassa ki, hogy a 40 hány százaléka a 90-nek, a kimenetben jelenjen meg a % jel is: % feladat Írassa ki a d változó értékét minimum 7 karakter széles mezőben, normál alakban: e feladat Írassa ki az i1 változó értékét oktálisan: 1 2 a feladat Írassa ki az i1 változó értékét hexadecimálisan: feladat Írassa ki az i1 változó értékét oktálisan, 6 karakter széles mezőben, a mező üres helyein legyen 0: feladat Írassa ki az i1 változó értékét hexadecimálisan, 6 karakter széles mezőben, a mező üres helyein legyen 0: a feladat Írassa ki az i1 változó értékét oktálisan, 6 karakter széles mezőben, a szám 0-val kezdődjön, jelezve, hogy oktális számot írunk ki: feladat Írassa ki az i1 változó értékét hexadecimálisan, 6 karakter széles mezőben, a mező üres helyein legyen 0, a kiírt érték pedig 0x-el kezdődjön, jelezve, hogy hexadecimális számot írunk ki: 0 x a feladat Írassa ki az str stringet: e z e g y s z o v e g feladat Írassa ki az str stringet -k között: e z e g y s z o v e g feladat Írassa ki az str stringet "-k között: " e z e g y s z o v e g " feladat Írassa ki az str stringet \ -k között: \ e z e g y s z o v e g \ feladat Írassa ki az str stringet, majd az utolsó előtti karakter helyére írasson ki 1-et : e z e g y s z o v 1 g feladat Írassa ki az str stringet, majd az elejét írja felül i1 értékével : 1 0 e g y s z o v e g
10 10 1. Kimenet, bemenet feladat Írassa ki az str stringet, majd utána egy tabulátornyi távolságra i1 értékét 4 széles mezőbe, a mező üres helyeire 0-kat rakva: e z e g y s z o v e g M feladat Írassa ki a ch karaktert: feladat Írassa ki a ch karakter ASCII kódját decimálisan: feladat Írassa ki a ch karakter ASCII kódját hexadecimálisan, az A-F betűket kisbetűsen: 4 d feladat Írassa ki a ch karakter ASCII kódját hexadecimálisan, az A-F betűket nagybetűsen: 4 D feladat Írassa ki a ch karakter ASCII kódját hexadecimálisan, az A-F betűket kisbetűsen, a kiírt érték 0x-el kezdődjön: 0 x 4 d feladat Írassa ki a ch karakter ASCII kódját hexadecimálisan, az A-F betűket nagybetűsen, a kiírt érték 0X-el kezdődjön: 0 X 4 D feladat Írassa ki a ch karakter ASCII kódját hexadecimálisan, az A-F betűket nagybetűsen, a kiírt érték 0x-el kezdődjön: 0 x 4 D feladat Írassa ki a d értékét 2 tizedesjegy pontossággal, de úgy, hogy a tizedespont helyett vessző legyen: 6 6 6, feladat Írassa ki az i1, i2 és i3 értékét, az egyes számok között legyen 1-1 tabulátornyi távolság: feladat Írassa ki az str string legfeljebb első 7 karakterét "-k közé: " e z e g y " feladat Írassa ki az str string legfeljebb első i1-2 karakterét -k közé: e z e g y s feladat Írassa ki az str string legfeljebb első 5 karakterét egy 8 széles mezőbe, a mezőt határolják " karakterek: " e z e g "
11 feladat Írassa ki az str string legfeljebb első 5 karakterét egy 8 széles mezőbe, balra igazítva, a mezőt határolják " karakterek: " e z e g " feladat Írassa ki az str string legfeljebb első i2 karakterét egy 8 széles mezőbe, a mezőt határolják " karakterek: " e z e g y s " feladat Írassa ki az str string legfeljebb első i2 karakterét egy i2 + i3 széles mezőbe, balra igazítva, a mezőt határolják " karakterek: " e z e g y s " feladat Írassa ki az első sorba a " karaktert, majd a következőbe egy tabulatorral beljebb a -t és végül a harmadik sor elejére a \ -t: " \ feladat Írassa ki a d értékét úgy, hogy a tizedesjegyeket cserélje ki az i1 értékére: feladat Rajzoltasson ki a képernyőre egy 3*3-as mátrixot, amely minimum 5 karakter széles mezőben 1 tizedes pontossággal lebegőpontos számokat tartalmaz: feladat Írassa ki az -i1 értékét, mintha előjel nélküli változó lenne: feladat Írassa ki az i1*10000 értékét, majd a következő sorba mintha short int típusú lenne: feladat Írassa ki a d*i1 értékét egy i1 széles mezőbe, 2 tizedesjegy pontossággal, a mezőt határolják " karakterek, a tizedespont helyén legyen pontosvessző, ha a szám pozitív, akkor is jelenjen meg az előjel, a mező üres helyeire kerüljenek 0 karakterek: " ; 6 6 "
12 12 1. Kimenet, bemenet A következő feladatokat úgy oldja meg, hogy az alábbi programot egészítse ki: 1 #include <s t d i o. h> 2 3 int main ( ) { 4 int a = 0, b = 0, c = 0, d = 0 ; 5 char ch1, ch2 ; 6 7 // Ide i r j a a megoldast! 8 9 return 0 ; 10 } feladat A getchar segítségével olvasson be egy karaktert a billentyűzetről a ch1 változóba, majd írja ki a képernyőre a beolvasott karaktert: Kerek egy karaktert: t A beolvasott karakter: t feladat A getchar segítségével olvasson be a billentyűzetről 2 karaktert ( ch1, ch2), majd írja ki őket a képernyőre: Kerem az elso karaktert: r Kerem a masodik karaktert: t A beolvasott karakterek: r es t feladat Olvassa be az a változó értékét billentyűzetről scanf segítségével, majd a beolvasott értéket írja ki a képernyőre: Kerek egy szamot: 53 A beolvasott szam: feladat Olvasson be a billentyűzetről egyetlen scanf segítségével kettő számot az a és b változókba, majd írja ki a két számot a képernyőre: Kerek ketto szamot :34 54 A szamok: 34, feladat Olvasson be a billentyűzetről 4 számot, egymástól 1-1 ponttal elválasztva, az a, b, c és d változókba, majd írja ki a beolvasott számokat a képernyőre: Kerek negy szamot, ponttal elvalasztva: A szamok: 1, 2, 3, 4
13 2. fejezet Változók, operátorok Az alábbi feladatokat az alábbi kódot néhány scanf-el és egyetlen printf-el kiegészítve, és a printf paramétereként megadott összetett kifejezéssel oldja meg! 1 #include <s t d i o. h> 2 #include <s t d l i b. h> 3 4 int main ( ) { 5 int a, b, c ; 6 char ch1, ch2 ; 7 8 // Ide i r j a a megoldast! 9 10 return 0 ; 11 } feladat Írja ki a képernyőre, hogy az első szám nagyobb-e mint a második: Kerem az elso szamot: 5 Kerem a masodik szamot: 5 Az elso szam nagyobb-e mint a masodik: nem Kerem az elso szamot: 10 Kerem a masodik szamot: 5 Az elso szam nagyobb-e mint a masodik: igen feladat Írja ki a képernyőre a 2 szám közül a legnagyobb értékét: Kerem az elso szamot: 5 Kerem a masodik szamot: 15 A legnagyobb szam: feladat Írja ki a képernyőre a 3 szám közül a legnagyobb értékét: 13
14 14 2. Változók, operátorok Kerem az elso szamot: 5 Kerem a masodik szamot: 15 Kerem a harmadik szamot: 10 A legnagyobb szam: feladat Írja ki a képernyőre a 3 szám közül a legkisebb értékét: Kerem az elso szamot: 5 Kerem a masodik szamot: 15 Kerem a harmadik szamot: 10 A legkisebb szam: feladat Írja ki a képernyőre a két legnagyobb szám értékét: Kerem az elso szamot: 25 Kerem a masodik szamot: 15 Kerem a harmadik szamot: 30 A ket legnagyobb szam: 25, feladat Írja ki a képernyőre a legkisebb és legnagyobb szám összegét: Kerem az elso szamot: 25 Kerem a masodik szamot: 15 Kerem a harmadik szamot: 30 Az osszeg: feladat Írja ki, hogy az első szám negatív-e: Kerem az elso szamot: 25 A szam nem negativ Kerem az elso szamot: 0 A szam nem negativ Kerem az elso szamot: -5 A szam negativ feladat Írja ki, hogy az első szám negatív-e, majd növelje meg az első szám értékét a kiíratás után, most a növelés ellenőrzésére használhat egy második printf hívást is: Kerem az elso szamot: 25 A szam nem negativ Az elso szam erteke az elozo kiiratas utan: 26 Kerem az elso szamot: 0 A szam nem negativ Az elso szam erteke az elozo kiiratas utan: 1
15 15 Kerem az elso szamot: -5 A szam negativ Az elso szam erteke az elozo kiiratas utan: feladat Írja ki a képernyőre, hogy igaz-e az, hogy az első szám kettővel nagyobb, mint a második: Kerem az elso szamot: 7 Kerem a masodik szamot: 5 Igen, az elso 2-vel nagyobb, mint a masodik Kerem az elso szamot: 7 Kerem a masodik szamot: 6 Nem, az elso nem 2-vel nagyobb, mint a masodik feladat Írja ki a képernyőre, hogy igaz-e az, hogy az első szám kettővel nagyobb, mint a második, vagy a harmadik 3-al kisebb, mint az első: Kerem az elso szamot: 7 Kerem a masodik szamot: 5 Kerem a harmadik szamot: 6 A harom szam megfelel a feltetelnek Kerem az elso szamot: 7 Kerem a masodik szamot: 6 Kerem a harmadik szamot: 4 A harom szam megfelel a feltetelnek Kerem az elso szamot: 7 Kerem a masodik szamot: 6 Kerem a harmadik szamot: 5 A harom szam nem felel meg a feltetelnek feladat Írja ki a képernyőre, hogy igaz-e az, hogy az első szám a másodiknál nagyobb, és a harmadiknál kisebb: feladat Írja ki a képernyőre, hogy igaz-e az, hogy az első és a második szám különbsége 5-nél nagyobb: feladat Írja ki a képernyőre, hogy igaz-e az, hogy az első és a második szám különbsége 5-nél nagyobb, vagy 5-el egyenlő: feladat Írja ki a képernyőre, hogy igaz-e az, hogy az első szám osztható a másodikkal, de a harmadikkal nem:
16 16 2. Változók, operátorok feladat Írja ki a képernyőre, hogy igaz-e az, hogy az első szám osztható a másodikkal, és a harmadikkal osztva a maradék 4 lesz: feladat Írja ki a képernyőre, hogy igaz-e az, hogy az első szám osztható a másodikkal, és a harmadikkal osztva a maradék nagyobb-e mint 5, és a három szám összege 50 és 100 között van-e: feladat Írja ki a képernyőre, hogy igaz-e az, hogy ha az első számot bitenként balra 2-vel, majd a másodikat jobbra 3-al eltoljuk, és a két számot összeadjuk, akkor az eredmény osztható-e a harmadik számmal: feladat Írja ki a 3 szám közül a legkisebb szám értékét a képernyőre, majd a kiírás után nőjön egyel a változó értéke: feladat Írja ki a képernyőre, hogy igaz-e az, hogy a ch1 karakter az angol ABC kisbetűi közül valamelyik: feladat Írja ki a képernyőre, hogy igaz-e az, hogy a ch1 karakter számjegy-e: feladat Írja ki a képernyőre, hogy igaz-e az, hogy a ch1 karakter szerepelhet-e egy lebegőpontos szám kiírása közben (tehát számjegyen kívül lehet., -, +, e vagy E karakter is): feladat Ha a ch1 karakter az angol ABC kisbetűi közül valamelyik, akkor írassa ki a képernyőre a nagybetűs változatát, egyébként pedig az eredeti betűt: feladat Ha a ch1 karakter az angol ABC nagybetűi közül valamelyik, akkor írassa ki a képernyőre a kisbetűs változatát, ha a ch1 kisbetű, akkor a nagybetűs megfelelőjét írja ki
17 feladat Bővítse ki az előző programot úgy, hogy ha a ch1 nem tartozik az angol ABC betűi közé, akkor írjon ki hibaüzenetet: feladat Írassa ki az első szám ellentetjét: feladat Írassa ki az első és második szám összegének ellentetjét: feladat Írassa ki, hogy igaz-e az, hogy az első két szám négyzetösszege nagyobb-e mint a harmadik szám: feladat Írja ki, hogy a beolvasott ch1 változó 5. bitjének mi az értéke (a bitek sorszámozását 0-ról kezdjük): Gepeljen be egy karaktert: A Az 5. bit erteke: 0 Gepeljen be egy karaktert: a Az 5. bit erteke: feladat Bővítse ki az előző programot úgy, hogy a ch1 változó összes bitjét kiírja a képernyőre: Gepeljen be egy karaktert: A A bitminta: Gepeljen be egy karaktert: a A bitminta: feladat Invertálja a ch1 változó bitjeit: Gepeljen be egy karaktert: A A bitminta invertalas elott: A bitminta invertalas utan: Gepeljen be egy karaktert: m A bitminta invertalas elott: A bitminta invertalas utan: feladat Állítsa be a ch1 változó 4. bitjet 1-re: Gepeljen be egy karaktert: A A bitminta a modositas elott: A bitminta a modositas utan:
18 18 2. Változók, operátorok feladat Állítsa be a ch1 változó 6. bitjet 0-ra: Gepeljen be egy karaktert: A A bitminta a modositas elott: A bitminta a modositas utan: feladat Állítsa be a ch1 változó 2. 5 és 6. bitjét 1-re: Gepeljen be egy karaktert: A A bitminta a modositas elott: A bitminta a modositas utan: feladat Állítsa be a ch1 változó 0., 1. és 3. bitjét 0-ra: Gepeljen be egy karaktert: m A bitminta a modositas elott: A bitminta a modositas utan: feladat A ch1 változó minden bitjét tolja el balra 1-el, és a legkisebb helyiértékű bitje legyen 0: Gepeljen be egy karaktert: m A bitminta a modositas elott: A bitminta a modositas utan: feladat A ch1 változó minden bitjét tolja el balra 1-el, és a legkisebb helyiértekű bitje legyen 1: Gepeljen be egy karaktert: m A bitminta a modositas elott: A bitminta a modositas utan: feladat Állapítsa meg, hogy a ch1 és ch2 változónak vannak-e olyan azonos helyiértékű bitpárjai, amelyek értékei rendre megegyeznek: Gepelje be az elso karaktert: m Gepelje be a masodik karaktert: a Az elso karakter bitmintaja: A masodik karakter bitmintaja: Vannak egyezo bitek feladat Írassa ki, hogy hány bitet foglal el egy int típusú változó az adott architektúrán: feladat Írassa ki, hogy a short vagy az int típusú változó foglal-e több bájtot:
19 feladat Előfordulhat-e az az ANSI C szabvány szerint, hogy a float, double és long double típusú változók mérete azonos? feladat Ekvivalens-e egymással a következő két kifejezés? 1 x = y x = x y feladat Mi lesz az értéke a következő kifejezésnek, és miért? 1 4 < 5 < feladat Mi lesz az értéke az a, b, és c változóknak az alábbi kódrészlet végrehajtása után, és miért? 1 int a = 2 ; 2 int b = 0 ; 3 int c = 1; 4 a b++ && c ; feladat Mi lesz az értéke az a, b, és c változóknak az alábbi kódrészlet végrehajtása után, és miért? 1 int a = 1; 2 int b = 0 ; 3 int c = 1; 4 a++ b++ && c ; feladat Mi lesz az értéke az a, b, és c változóknak az alábbi kódrészlet végrehajtása után, és miért? 1 int a = 1; 2 int b = 0 ; 3 int c = 1; 4 ++a && b++ && c ; feladat Lehet-e abból probléma, ha egy unsigned int típusú változót konvertálunk signed long-ra, ha igen, milyen probléma, és miért? feladat Lehet-e abból probléma, ha egy double típusú változót konvertálunk float-ra, ha igen, milyen probléma, és miért? feladat Lehet-e abból probléma, ha egy long int típusú változót konvertálunk double-ra, ha igen, milyen probléma, és miért? feladat Lehet-e abból probléma, ha egy double típusú változót konvertálunk long int-re, ha igen, milyen probléma, és miért?
20 20 2. Változók, operátorok
21 3. fejezet Vezérlési szerkezetek 3.1. Programozási tételek Csere Van két változónk, (A és B), és azok értékét szeretnénk felcserélni. Az egyik lehetséges módszer az, hogy használunk egy segédváltozót. Ebbe elmentjük az A változó értékét: SEGED = A Mivel A értékét így elmentettük, felülírhatjuk B értékével: A = B Majd B értékét felülírjuk A eredeti értékével, amit most a SEGED-ben tárolunk: B = SEGED Lineáris keresés Eldöntés Megszámlálás Minimum kiválasztás Rendezés 3.2. Feladatok A következő feladatokat az alábbi forráskódot kiegészítve oldja meg. A példa kimenetekben az első bekért szám az i1, a második az i2 és a harmadik pedig az i3 változó. Bizonyos feladatokat úgy is meg lehetne oldani, hogy egy képlettel kiszámítjuk az eredményt (például egy intervallumon belül az egész számok összege), ám most gyakorlás céljából tekintsünk el ezektől a képletektől, és ezek nélkül oldjuk meg a feladatokat. Minden algoritmusnál gondoljuk végig a szélsőséges eseteket is! 21
22 22 3. Vezérlési szerkezetek 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 int i1, i2, i 3 ; 6 p r i n t f ( Gepeljen be 3 szamot : ) ; 7 s c a n f ( %d %d %d, &i1, &i2, &i 3 ) ; 8 9 // Ide i r j a a megoldast! return 0 ; 12 } feladat Rajzoljon ki a képernyőre egy i1 sorból és i2 oszlopból álló * karakterekkel kitöltött téglalapot: Gepeljen be 2 szamot: 1 1 * Gepeljen be 2 szamot: 3 4 **** **** **** feladat Rajzoljon ki a képernyőre egy i1 sorból és i2 oszlopból álló * karakterekkel határolt téglalapot: Gepeljen be 2 szamot: 1 1 * Gepeljen be 2 szamot: 2 4 **** **** Gepeljen be 2 szamot: 3 4 **** **** **** Gepeljen be 2 szamot: 5 6 ****** ****** ****** ****** ****** feladat Rajzoljon ki a képernyőre egy i1 karakternyi magas derékszögű háromszöget:
23 3.2. FELADATOK 23 Gepeljen be 1 szamot: 1 * Gepeljen be 1 szamot: 2 * ** Gepeljen be 1 szamot: 3 * ** *** feladat Rajzoljon ki a képernyőre egy i1 karakter szélességű és magasságú X-et: Gepeljen be 1 szamot: 1 * Gepeljen be 1 szamot: 2 ** ** Gepeljen be 1 szamot: 3 * * ** * * Gepeljen be 1 szamot: 4 **** *** *** **** Gepeljen be 1 szamot: 5 ***** **** *** **** ***** feladat Adja össze a számokat i1-től i2-ig: Gepeljen be 2 szamot: Az osszeg: feladat Adjon össze minden i1. számot i2-től i3-ig: Gepeljen be 3 szamot: Az osszeg: 90
24 24 3. Vezérlési szerkezetek feladat Számolja ki i1 faktoriálisát! Egy n szám faktoriálisa az egész számok szorzata 1-től n-ig, továbbá a 0 faktoriálisa 1: Gepeljen be 1 szamot: 0 0 faktorialisa: 1 Gepeljen be 1 szamot: 1 1 faktorialisa: 1 Gepeljen be 1 szamot: 2 2 faktorialisa: 2 Gepeljen be 1 szamot: 3 3 faktorialisa: 6 Gepeljen be 1 szamot: 4 4 faktorialisa: feladat Írassa ki képernyőre a Fibonacci-sorozat első i1 elemét. A Fibonacci sorozat i. elemét jelölje F i, ahol i 0. Az első két elem értéke: F 0 = 0, F 1 = 1. Ha i 2, akkor F i = F i 1 + F i 2. Gepeljen be 1 szamot: 10 Az elso 10 Fibonacci szam: 0, 1, 1, 2, 3, 5, 8, 13, 21, feladat Vizsgálja meg, hogy az int típus legfeljebb mekkora N szám faktoriálisának tárolására alkalmas: 00 faktorialisa: 1 01 faktorialisa: 1 02 faktorialisa: 2 03 faktorialisa: 6 04 faktorialisa: faktorialisa: faktorialisa: faktorialisa: faktorialisa: faktorialisa: faktorialisa: faktorialisa: faktorialisa: faktorialisa: ez mar nagyobb, mint A legnagyobb ertek, amelynek faktorialisat egy int-ben tarolni tudjuk: feladat Írassa ki egy mértani sorozat első i1 elemét, ha az első elem i2, és a szorzó i3 :
25 3.2. FELADATOK 25 Gepeljen be 3 szamot: feladat Számolja ki az i1 i2-edik hatványát, de csak akkor, ha i2 nem negatív : Gepeljen be 2 szamot: 0 0 0ˆ0 = nem ertelmezheto Gepeljen be 2 szamot: 4 0 4ˆ0 = 1 Gepeljen be 2 szamot: 0 5 0ˆ5 = 0 Gepeljen be 2 szamot: 1 5 1ˆ5 = 1 Gepeljen be 2 szamot: 2 5 2ˆ5 = 32 Gepeljen be 2 szamot: 3 5 3ˆ5 = 243 Gepeljen be 2 szamot: 4 5 4ˆ5 = feladat Számolja ki az i1 i2-edik hatványát és kezelje azt az esetet is, amikor i2 negatív: Gepeljen be 2 szamot: 0-4 Hiba, ervenytelen adatok! Gepeljen be 2 szamot: 1-4 1ˆ-4 = 1 Gepeljen be 2 szamot: 2-4 2ˆ-4 = Gepeljen be 2 szamot: 3-4 3ˆ-4 = Gepeljen be 2 szamot: 4-4 4ˆ-4 = Gepeljen be 2 szamot: 5-4 5ˆ-4 = feladat Írja ki a képernyőre i1 osztóit :
26 26 3. Vezérlési szerkezetek Gepeljen be 1 szamot: 1 1 Gepeljen be 1 szamot: Gepeljen be 1 szamot: Gepeljen be 1 szamot: Gepeljen be 1 szamot: feladat Határozza meg, hogy i1 prímszám-e: Gepeljen be 1 szamot: 1 A(z) 1 nem primszam Gepeljen be 1 szamot: 2 A(z) 2 primszam Gepeljen be 1 szamot: 3 A(z) 3 primszam Gepeljen be 1 szamot: 4 A(z) 4 nem primszam Gepeljen be 1 szamot: A(z) nem primszam Gepeljen be 1 szamot: A(z) primszam feladat Határozza meg az i1 után következő első prímszám értékét: Gepeljen be 1 szamot: 1 A(z) 1 utani elso primszam: 2 Gepeljen be 1 szamot: 3 A(z) 3 utani elso primszam: 5 Gepeljen be 1 szamot: 100 A(z) 100 utani elso primszam: 101 Gepeljen be 1 szamot: 1232 A(z) 1232 utani elso primszam: 1237
27 3.2. FELADATOK feladat Határozza meg, hogy i1 négyzetszám-e: Gepeljen be 1 szamot: 1 A(z) 1 negyzetszam Gepeljen be 1 szamot: 2 A(z) 2 nem negyzetszam Gepeljen be 1 szamot: 4 A(z) 4 negyzetszam Gepeljen be 1 szamot: 10 A(z) 10 nem negyzetszam Gepeljen be 1 szamot: 49 A(z) 49 negyzetszam Gepeljen be 1 szamot: A(z) nem negyzetszam Gepeljen be 1 szamot: A(z) negyzetszam feladat Számolja meg, hogy i1 előtt i1-t is vizsgálva) mennyi négyzetszám van: Gepeljen be 1 szamot: 1 A(z) 1 elott 1 negyzetszam van Gepeljen be 1 szamot: 100 A(z) 100 elott 10 negyzetszam van Gepeljen be 1 szamot: A(z) elott 460 negyzetszam van feladat Számolja meg, hogy i1 és i2 között ( i1-t és i2-t is vizsgálva) mennyi négyzetszám van: Gepeljen be 2 szamot: 1 1 A [1, 1] intervallumban 1 negyzetszam van Gepeljen be 2 szamot: 1 10 A [1, 10] intervallumban 3 negyzetszam van Gepeljen be 2 szamot: A [1, 100] intervallumban 10 negyzetszam van Gepeljen be 2 szamot: A [232, 3242] intervallumban 41 negyzetszam van
28 28 3. Vezérlési szerkezetek feladat Olvasson be a billentyűzetről számokat 0 végjelig (tehát ha a beolvasott szám 0, akkor vége a beolvasásnak), és szamolja meg, hogy a 0-t kivéve mennyi számot olvasott be: Kerek egy szamot: 4 Kerek egy szamot: 2 Kerek egy szamot: 8 Kerek egy szamot: 5 Kerek egy szamot: 7 Kerek egy szamot: 0 5 szamot olvastam be feladat Olvasson be a billentyűzetről számokat 0 végjelig, és a végjelen kívül határozza meg a legnagyobb beolvasott elemet: Kerek egy szamot: 4 Kerek egy szamot: 2 Kerek egy szamot: 8 Kerek egy szamot: 7 Kerek egy szamot: 0 A legnagyobb beolvasott szam: 8 Kerek egy szamot: -5 Kerek egy szamot: -7 Kerek egy szamot: 0 A legnagyobb beolvasott szam: feladat Olvasson be a billentyűzetről számokat 0 végjelig, és a végjelen kívül határozza meg a legkisebb beolvasott elemet: Kerek egy szamot: 4 Kerek egy szamot: 2 Kerek egy szamot: 8 Kerek egy szamot: 7 Kerek egy szamot: 0 A legkisebb beolvasott szam: feladat Olvasson be a billentyűzetről számokat 0 végjelig, és számolja meg, hogy mennyi páros számot olvasott be: Kerek egy szamot: 4 Kerek egy szamot: 2 Kerek egy szamot: 8 Kerek egy szamot: 7 Kerek egy szamot: 0 3 paros szamot olvastam be feladat Olvasson be a billentyűzetről számokat 0 végjelig, és számolja ki a beolvasott számok átlagát, a végjelet ne vegye figyelembe:
29 3.2. FELADATOK 29 Kerek egy szamot: 4 Kerek egy szamot: 2 Kerek egy szamot: 8 Kerek egy szamot: 7 Kerek egy szamot: 0 A szamok atlaga: feladat Egy dolgozat ponthatárai a következők: 0-12 : elégtelen : elégséges : közepes : jó : jeles A program írja ki, hogy i1 pontszám esetén milyen jegy adható az adott dolgozatra: Gepeljen be 1 szamot: 1 Az erdemjegy: elegtelen Gepeljen be 1 szamot: 12 Az erdemjegy: elegtelen Gepeljen be 1 szamot: 20 Az erdemjegy: elegseges Gepeljen be 1 szamot: 32 Az erdemjegy: jeles feladat Switch - case segítségével határozza meg, hogy az i1. hónap i2. napjáig hány nap telt el az évben, ha nem szökőévben vagyunk.: Kerem a honapot: 5 Kerem a napot: 20 Az eltelt napok szama: feladat Switch - case segítségével határozza meg, hogy az i1 évben a i2. hónap i3. napjáig hány nap telt el az évben, de most vegye figyelembe azt is, ha szökőévben vagyunk: Kerem az evet: 1993 Kerem a honapot: 5 Kerem a napot: 20 Az eltelt napok szama: 140 Kerem az evet: 2000 Kerem a honapot: 5
30 30 3. Vezérlési szerkezetek Kerem a napot: 20 Az eltelt napok szama: feladat Valósítson meg egy egyszerű menüt! A program jelenítsen meg 4 választási lehetőséget, amik közül 1 és 4 közötti számok beírásával lehessen választani, és a választásnak megfelelően írjon ki egy üzenetet: Elso menupont: 1 Masodik menupont: 2 Harmadik menupont: 3 Negyedik menupont: 4 Valasszon a fenti menupontok kozul: 2 Ugyintezonk ebredeseig kerjuk varjon turelemmel feladat Bővítse ki az előző programot úgy, hogy a menüpont választás után kérdezze meg a felhasználót, hogy szeretne-e újra választani, ha igen, akkor jelenjen meg újra a menü, egyébként lepjen ki: Elso menupont: 1 Masodik menupont: 2 Harmadik menupont: 3 Negyedik menupont: 4 Valasszon a fenti menupontok kozul: 1 Sajnaljuk, de ugyintezonknek jelenleg nincs kedve az On problemajaval foglalkozni Kivan masik menupontot kivalasztani (i/n)? i Elso menupont: 1 Masodik menupont: 2 Harmadik menupont: 3 Negyedik menupont: 4 Valasszon a fenti menupontok kozul: 3 Jelenleg fontosabb dolgunk is van, mint Onnel foglalkozni Kivan masik menupontot kivalasztani (i/n)? n Forduljon hozzank maskor is bizalommal! feladat Módosítsa az előző programot úgy, hogy minden eddigi menüpontból térjen vissza a menübe, és legyen egy kilépés menüpont is : Elso menupont: 1 Masodik menupont: 2 Harmadik menupont: 3 Negyedik menupont: 4 Kilepes: 5 Valasszon a fenti menupontok kozul: 4 Probalta kikapcsolni, bekapcsolni?
31 3.2. FELADATOK 31 Elso menupont: 1 Masodik menupont: 2 Harmadik menupont: 3 Negyedik menupont: 4 Kilepes: 5 Valasszon a fenti menupontok kozul: 5 Forduljon hozzank maskor is bizalommal! feladat Fejlessze tovább az előző programot egyszerű számológép programmá: lehessen választani a négy alapművelet közül, és végezze el a kiválasztott műveletet két bekért szám között. Amennyiben osztás esetén az osztó nulla, akkor jelenítsen meg egy hibaüzenetet, majd addig kérje be az osztót, amíg a felhasználó nullától különböző értéket nem ír be: Osszeadas: 1 Kivonasz: 2 Szorzas: 3 Osztas: 4 Kilepes: 5 Valasszon egy menupontot: 2 Kerem a szamokat: = 2 Osszeadas: 1 Kivonasz: 2 Szorzas: 3 Osztas: 4 Kilepes: 5 Valasszon egy menupontot: 4 Kerem a szamokat: 5 0 Uriember nem oszt 0-val, kerek masik osztot: 0 Uriember nem oszt 0-val, kerek masik osztot: 2 5 / 2 = 2.5 Osszeadas: 1 Kivonasz: 2 Szorzas: 3 Osztas: 4 Kilepes: 5 Valasszon egy menupontot: 5 Viszlat feladat Töltsön fel egy 10 elemű int tömböt számokkal, a számokat billentyűzetről olvassa be: Kerem a(z) 1. szamot: 5 Kerem a(z) 2. szamot: 2..
32 32 3. Vezérlési szerkezetek. Kerem a(z) 10. szamot: feladat Írassa ki a fenti tömb elemeit: A beolvasott tomb: feladat Határozza meg a tömb legnagyobb és legkisebb elemét: A tomb legnagyobb eleme: 63 A tomb legkisebb eleme: feladat Cserélje meg a tömb első és második elemét: Csere elott: Csere utan: feladat Cserélje meg a tömb első és a legkisebb elemét: Csere elott: Csere utan: feladat Az előző programot bővítse ki úgy, hogy rendezze növekvő sorrendbe a tömböt: Csere elott: Legkisebb elem: 2, pozicioja: 5 1. es 5. elem csereje utan: Kovetkezo legkisebb elem: 3, pozicioja: 6 2. es 6. elem csereje utan: Kovetkezo legkisebb elem: 5, pozicioja: 5 3. es 5. elem csereje utan: Kovetkezo legkisebb elem: 5, pozicioja: 7 4. es 7. elem csereje utan: Kovetkezo legkisebb elem: 6, pozicioja: 5 5. es 5. elem csereje utan: Kovetkezo legkisebb elem: 6, pozicioja: 9 6. es 9. elem csereje utan:
33 3.2. FELADATOK Kovetkezo legkisebb elem: 7, pozicioja: 8 7. es 8. elem csereje utan: Kovetkezo legkisebb elem: 12, pozicioja: es 10. elem csereje utan: Kovetkezo legkisebb elem: 20, pozicioja: 9 9. es 9. elem csereje utan: feladat Módosítsa az előző programot úgy, hogy csökkenő sorrendbe rendezzen! feladat Egy másik tömbbe másolja át az előző feladatokban használt tömbből a páros számokat. A számok sorrendje tetszőleges lehet: Az elso tomb: A masodik tomb: feladat Határozza meg egy string hosszát (saját ciklussal, és ne az strlen-el!), segítség: a string karaktertömb \0 -val van lezárva. A string: "ez egy szoveg" Hossza: feladat Vizsgálja meg, hogy egy string palindrom-e (azaz elölről olvasva ugyanaz-e mint visszafelé), például.: gorog, keretkarakterek: String: "gorog" Ez palindrom String: "keretkarakterek" Ez palindrom String: "alma" Ez nem palindrom feladat Írjon programot, amely egy tömb elemeinek sorrendjét megfordítja: A tomb megforditas elott: A tomb megforditas utan: feladat Írjon programot, amely egy tömb elemeit a tömbön belül egyel előrébb tolja, és az eredeti első elemet az utolsó helyre illeszti be:
34 34 3. Vezérlési szerkezetek A tomb az eltolas elott: A tomb az eltolas utan: feladat Írjon programot, amely eldönti, hogy egy adott érték benne van-e egy tömbben: A tomb: Gepeljen be 1 szamot: 2 A(z) 2 benne van a tombben Gepeljen be 1 szamot: 4 A(z) 4 nincs benne a tombben feladat Gondolja végig, hogy az előző feladatban hány lépésre van szükség a legjobb esetben a legrosszabb esetben átlagosan feladat Írjon olyan algoritmust, amely egy rendezett tömbben keres egy adott értéket, kihasználva a tömb rendezettségét feladat Az előző algoritmusban hány lépésre van szükség a legjobb esetben a legrosszabb esetben feladat Írjon programot, amely két azonos elemszámú tömbről eldönti, hogy az azonos indexű elemeik mind megegyeznek-e: Az egyik tomb: A masik tomb: A ket tomb megegyezik Az egyik tomb: A masik tomb: A ket tomb nem egyezik meg Az egyik tomb:
35 3.2. FELADATOK 35 A masik tomb: A ket tomb nem egyezik meg feladat Írjon programot, amely két azonos elemszámú tömb esetén megszámolja, hogy mennyi azonos indexű elemük egyezik meg: Az egyik tomb: A masik tomb: elem egyezik meg feladat Írjon programot, amely eldönti, hogy egy adott A és B tömb eseten az A tömb elemei mind benne vannak-e B tömbben úgy, hogy az elemek sorrendje bármilyen lehet a tömbökön belül. Az ismétlődő elemek azonosnak tekinthetők: A tomb: B tomb: A tomb elemei nincsenek benne mind a B-ben B tomb elemei mind benne vannak az A-ban feladat Írjon programot, amely kiszámolja egy tömb elemeinek átlagát, szórását, a legnagyobb és legkisebb elem különbségét: A tomb elemei: Atlag: 12.6 Szoras: Legnagyobb es legkisebb elem kulonbsege: feladat Írjon programot, amely meghatározza egy tömb leggyakoribb elemeit: A tomb elemei: A tomb leggyakoribb elemei: 6 A tomb elemei: A tomb leggyakoribb elemei: 2 6
36 36 3. Vezérlési szerkezetek
37 4. fejezet Függvények 4.1. Függvényhívások Az alábbiakban ismertetjük, hogy a C programok függvényhívásai milyen mechanizmus szerint játszódnak le. Ennek ismerete azért szükséges, hogy értsük azt, hogy a függvények paraméterei, lokális változói hová kerülnek, hogy kezeli azokat a program. Továbbá, ezen információk birtokában bizonyos végzetes hibák elkerülésére is tudatosan felkészülhetünk. Kezdetben vizsgáljuk meg az alábbi programot: 1 #include <s t d i o. h> 2 3 void fv ( ) { 4 p r i n t f ( fv \n ) ; 5 } 6 7 int main ( ) { 8 p r i n t f ( main\n ) ; 9 fv ( ) ; 10 return 0 ; 11 } A program a main függvény első utasításával indul (8-as sor). Amint elérkezik az fv() sorhoz, a vezérlés átugrik az fv függvény első sorára (4- es sor). Miután az fv függvény utolsó utasítása is végrehajtódott, a vezérlés visszalép a main függvénybe, mégpedig oda, ahol annak a futása megszakadt (9-es sor). A kérdés az, hogy a program honnan tudja, hogy az fv függvény befejezése után a main függvénybe kell visszalépni, mégpedig a kód 9. sorára? Először arra gondolhatunk, hogy a C fordító biztos olyan gépi kódot fordított a forráskódból, hogy a vezérlés az fv utolsó sora után mindig a main függvény megfelelő sorába ugorjon. Ám tekintsük meg a következő programot: 37
38 38 4. Függvények 1 #include <s t d i o. h> 2 3 void fv1 ( ) { 4 p r i n t f ( fv1 \n ) ; 5 } 6 7 void fv2 ( ) { 8 p r i n t f ( fv2 \n ) ; 9 fv1 ( ) ; 10 p r i n t f ( fv1 hivas utan, de az fv2 ben\n ) ; 11 } int main ( ) { 14 p r i n t f ( main\n ) ; 15 fv2 ( ) ; 16 p r i n t f ( fv2 hivas utan, de a main ben\n ) ; 17 fv1 ( ) ; 18 p r i n t f ( fv1 hivas utan, de a main ben\n ) ; 19 return 0 ; 20 } Ennek a programnak a kimenete a következő: main fv2 fv1 fv1 hivas utan, de az fv2-ben fv2 hivas utan, de a main-ben fv1 fv1 hivas utan, de a main-ben Tehát először meghívjuk az fv2 függvényt, az pedig meghívja az fv1-et. Az fv1 végrehajtása után a program újra az fv2-ben folytatódik, mégpedig a forráskód 10. sorában. Viszont az fv1-et külön meghívjuk a main-ből is, ekkor viszont az fv1 lefutása után már a forráskód 18. sorában folytatódik a végrehajtás. Nem igaz tehát, hogy a fordító beégeti, hogy egy függvény végrehajtása után hol kell folytatódnia a vezérlésnek. Tehát valami módon meg kell jegyezni, hogy egy függvényhívás végrehajtása után hol kell folytatódnia a programnak. Erre használhatunk egy listát, amire minden függvényhívás előtt feljegyezzük, hogy ha végrehajtottuk a függvényt, akkor hol kell folytatódnia a programnak. Erre a listára írjuk fel a forráskód megfelelő sorainak a számát! Lássuk, hogy működik ez az előző program esetében: Kezdetben a vezérlés a kód 14. során áll. Miután ezt végrehajtottuk, rátérünk a következő utasításra, ami egy függvényhívás (tulajdonképpen az előző sor is az volt, de erre még visszatérünk). A 15. sor szerint el kell indítani az fv2 függvényt. Ezen a ponton tudjuk, hogy ha ez a függvény lefutott, akkor a 16. sorban kell folytatni a programot. Ezért feljegyezzük a 16. sort:
39 4.1. FÜGGVÉNYHÍVÁSOK sor Elindítjuk hát az fv2 függvényt, ráugrunk a 8. sorra. Ezt végrehajtjuk, majd következik a 9. sor, ahol meghívjuk az fv1 függvényt. Itt tudjuk, hogy az fv1 végrehajtása után a kód 10. sorában kell folytatni a végrehajtást, ezért ezt is felírjuk a listánkra: 10. sor 16. sor Átugrunk a kód 4. sorára, végrehajtjuk, majd ezzel befejeztük az fv1 függvényt. Ekkor megnézzük, hogy melyik a legutolsó sorszám a listánkon. Jelen esetben ez a 10. sor, ezért ide ugrunk, majd a legutóbbi bejegyzést töröljük a listáról: 16. sor Miután végeztünk a 10. sorral is, befejezzük az fv2 végrehajtását, ezért újra megnézzük, hogy melyik a legutolsó sorszám a listán. Ez a 16. sor, tehát ide ugrunk, és ezt a bejegyzést is töröljük a listáról: A 16. sor után jön a 17. ami egy újabb függvényhívás, itt most az fv1-et kell elindítani. Tudjuk, hogy miután végeztünk ezzel a függvénnyel, a kód 18. sorában kell majd folytatni a programot, ezért ezt a sorszámot felírjuk a listára:
40 40 4. Függvények 18. sor Így, miután az fv1 lefutott, megnézzük a lista legutolsó bejegyzését, ez a 18. sor. Ugrunk a 18. sorra, majd töröljük a listát. A C programokban (és szinte minden más nyelven írt programokban is) használnak ilyen listát a függvényhívások vezérlésére. Az ilyen listákat szakszóval veremnek, vagy angolul stack-nek hívjuk. A továbbiakban a verem szót fogjuk használni. A verem bizonyos elemeket, jelen esetben számokat tárol. A verem teteje mindig az a pozíció, ahová a legutolsó elemet beszúrtuk, és új elem hozzáadásakor csak a verem tetejére pakolhatunk. Azaz, amit utoljára beszúrtunk, azt vehetjük ki elsőnek (last in, first out, azaz LIFO elv). Azt az értéket, ami jelzi, hogy az aktuális függvény végrehajtása után melyik utasításon kell folytatni a programot, visszatérési címnek nevezzük. A cím szó onnan ered, hogy a program utasításai annak végrehajtásakor a memóriában találhatóak, így minden utasítás más és más memória címen helyezkedik el, a verembe pedig ilyen címeket szúrunk be. A verem azonban nem csak visszatérési címek tárolására alkalmas. Tekintsük az alábbi programot: 1 #include <s t d i o. h> 2 3 void fv ( int p1, int p2 ) { 4 int l = 0 ; 5 l = p1 + p2 ; 6 p1 = 1 0 ; 7 p r i n t f ( %d\n, l ) ; 8 } 9 10 int main ( ) { 11 int a = 2, b = 5 ; 12 fv ( a, b ) ; 13 return 0 ; 14 } Ez a program tartalmaz változókat is. A main függvényben vannak az a, b, az fv-ben pedig a p1, p2 és l változók. A main függvényből nem láthatjuk az fv-ben lévő változókat, mivel ezek lokális változók: Ha a main-ben hivatkoznánk a p1-re, akkor a fordító hibajelzés után leállna. Hasonlóan, az fv-ből sem láthatóak a main változói. Amennyiben a main-ben létrehozunk egy p1 nevű változót, az semmilyen zavart nem fog okozni az fv működésében, mivel itt kettő, egymástól teljesen elkülönülő p1 változó létezne a programban. Ez azért hasznos, mert egy nagyobb programban, ahol akár több ezer függvény is lehet, nem kell arra ügyelni, hogy mikor melyik függvényben milyen változó neveket használunk. Ellenkező esetben nagyobb programok fejlesztése hamar gyötrelmes tortúrává válna.
41 4.1. FÜGGVÉNYHÍVÁSOK 41 Ezek a lokális változók szintén a veremben helyezkednek el. A következőben bemutatjuk, hogy hogyan fut le a fenti program, mégpedig úgy, hogy a verem tartalmának változását is nyomon követjük. Mint minden C program, ez is a main függvénnyel kezdődik. Itt létrejön az a és b változó, így azokat belerakjuk a verembe: b = 5 a = 2 A következő lépésben meghívjuk az fv függvényt. Előtte azonban jegyezzük fel, hogy annak lefutása után a 13. sorban kell folytatni a végrehajtást, ezért ezt jegyezzük fel a veremben: 13. sor b = 5 a = 2 Az fv függvénynek vannak paraméterei is: Az a és b értékét átadjuk az fv-nek, hogy azokat felhasználhassa a futása során. A paraméterek értékeit szintén a verembe szúrjuk be, először a b, majd az a értékét: sor b = 5 a = 2 Ezek után a vezérlés átugrik az fv függvényre. A függvény tudja, hogy neki 2 paramétere van, és ismeri azok típusait is. Azt is tudja, hogy ha neki 2 paramétere van, akkor azok a verem tetején találhatóak meg, ezért a p1-et és a p2-t megfelelteti a verem tetején lévő értékeknek: p1 = 2 p2 = sor b = 5 a = 2
42 42 4. Függvények A következő lépés a függvény végrehajtása. Az első utasítás szerint létre kell hozni még egy lokális változót, az l-t, tehát ezt is beszúrjuk a verembe: l = 0 p1 = 2 p2 = sor b = 5 a = 2 Az 5. sor értelmében az l értékét megváltoztatjuk, tehát a verem első sorában tárolt érték megváltozik: l = 7 p1 = 2 p2 = sor b = 5 a = 2 A 6. sor hatására a p1 értékét változtatjuk meg: l = 7 p1 = 10 p2 = sor b = 5 a = 2 Itt jól látszik, hogy a p1 és a változók semmilyen kapcsolatban nem állnak egymással, a eredeti értéke változatlan marad. A 7. sor elvégzése után az fv-t befejezzük, a függvény lokális változóira a továbbiakban nincs szükség, ezért azok megsemmisülnek: 13. sor b = 5 a = 2 Mivel a függvény végrehajtását befejezzük, ezért vissza kell térni a main függvénybe, ezért kiolvassuk a veremből, hogy hányadik kódsornál kell folytatni a programot. Ez a 13. sor, tehát ide ugrunk, és a visszatérési címet töröljük a veremből:
43 4.2. REKURZIÓ 43 b = 5 a = 2 Természetesen a fenti programban a printf is egy függvény, tehát annak meghívásakor a fenti mechanizmus játszódik le, tehát a verembe újabb visszatérési cím és újabb lokális változók kerülnek, ám a printf lefutása után ezek törlődnek is a veremből úgy, ahogy az fv esetében azt láttuk. Ám a verem használatának köszönhetően ez egyáltalán nem fogja megzavarni a programunk működését, hiszen így a printf úgy fut le, hogy utána a vermen nem látunk változást. A fenti forráskód 12. sorában látható függvény paramétereket aktuális paramétereknek, míg a 3. sorban lévő paraméter listát formális paramétereknek hívjuk. A formális paraméterek a példaprogram 12. sorában kapták meg konkrét értékeiket az aktuális paraméterektől. Kicsit mélyebben Aki járatos a verem működésében és az assembly programozásban, most bizonyára azt mondja, hogy a verem működésének fenti ismertetése pontatlan, nem minden ilyen sorrendben zajlik le. Ez teljesen igaz, a fenti leírásban azért nem követtük a valóságot teljes szigorúsággal, hogy az ismertetett működési mechanizmust könnyebben bemutathassuk, és az Olvasó könnyebben megértse a lényeget. Az alábbiakban a teljesség kedvéért leírjuk a fenti mechanizmus valódi működését a 32 bites Intel processzorok esetében, majd utána kitérünk arra, hogy a 64 bites processzorok működése mennyiben tér el ettől. TODO: ezt a részt befejezni Rekurzió 4.3. Feladatok
44 44 4. Függvények
45 5. fejezet Mutatók A következő feladatokat úgy oldja meg, hogy az alábbi programot egészítse ki: 1 #include <s t d i o. h> 2 #include <s t d l i b. h> 3 4 int main ( ) { 5 int a = 1, b = 2, c = 3 ; 6 7 return 0 ; 8 } feladat Írassa ki az a, b és c változók címeit: Az a cime: 0xbfc56a08 A b cime: 0xbfc56a04 A c cime: 0xbfc56a feladat Tárolja el az a változó címét egy külön pa nevű változóban: A pa erteke: 0xbfc56a feladat Változtassa meg az a változó értékét a pa változón keresztül: Az a erteke a valtoztatas elott: 1 Az a erteke a valtoztatas utan: feladat Tárolja el a pa címét is egy ppa nevű változóban: A ppa erteke, azaz pa cime: 0xbfc569fc 45
46 46 5. Mutatók feladat Változtassa meg az a változó értékét a ppa változón keresztül: Az a erteke a valtoztatas elott: 10 Az a erteke a valtoztatas utan: feladat A ppa-n keresztül állítsa át a pa változót úgy, hogy b-re mutasson: A A pa erteke a valtoztatas elott: 0xbfc56a08 A pa erteke a valtoztatas utan: 0xbfc56a04 A b cime: 0xbfc56a feladat A ppa-n keresztül változtassa meg b értékét: A b erteke a valtoztatas elott: 2 A b erteke a valtoztatas utan: feladat Foglaljon le dinamikusan egy 10 elemű int tömböt! feladat Szabadítsa fel az előbb lefoglalt tömböt! feladat Lefoglalás után töltse fel a tömböt értékekkel! feladat A lefoglalást, felszabadítást és feltöltést tegye külön függvénybe, de úgy, hogy a függvények visszatérési típusa void legyen! feladat Rendezze a lefoglalt és feltöltött tömb elemeit növekvő sorrendbe! feladat Írjon függvényt, amely az előbbi tömbből kigyűjti a páros számokat egy másik dinamikus tömbbe. Csak akkora legyen az új tömb, amennyi páros szám van az elsőben! feladat Foglaljon le két dinamikus tömböt, töltse fel őket, majd hozzon létre egy harmadik dinamikus tömböt, és az tartalmazza a két előző tömb elemeit! Csak akkora legyen a harmadik tömb, amekkora szükséges! feladat Az előző programot írja át úgy, hogy a harmadik tömb egyszer tartalmazzon minden elemet, és továbbra is akkora legyen a tömb, amennyi elem kerül bele! feladat Az előző programot bővítse ki úgy, hogy az elemek rendezve kerüljenek a harmadik tömbbe! feladat Írjon programot, amely n db dinamikus tömböt tárol, az első tömb 2, a második 4, azaz az i. tömb 2*i darab elemet tartalmazzon! Töltse is fel a tömböket!
47 feladat Az előző programot módosítsa úgy, hogy a lefoglalás, feltöltés és felszabadítás külön void visszatérési típusú függvényekkel történjen! feladat Írjon programot, amely dinamikusan létrehoz egy n*m-es mátrixot, föltölti értékekkel, kiírja és felszabadítja feladat Az előző programot módosítsa úgy, hogy a lefoglalás, feltöltés és felszabadítás külön void visszatérési típusú függvényekkel történjen! feladat Írjon programot, amely létrehoz kettő n méretű vektort, és összeadja őket, az eredmény egy újabb n méretű vektorba kerül feladat Írjon programot, amely létrehoz kettő n méretű vektort, és skalárisan összeszorozza őket feladat Írjon programot, amely létrehoz egy n*m-es dinamikus mátrixot, és egy m elemű oszlopvektort, feltölti őket, majd összeszorozza a mátrixot és a vektort. Az eredményt egy külön dinamikus vektorba írja, majd az eredményt jelenítse meg a képernyőn feladat Írjon programot, amely egy n*m és egy m*k méretű dinamikus mátrixot hoz létre, feltölti őket értékekkel, majd összeszorozza a két mátrixot. Az eredmény egy új, dinamikusan létrehozott mátrixba kerüljön feladat Írjon programot, amely egy n*n-es mátrixot hoz létre dinamikusan, majd létrehoz ebből egy (n-1)*(n-1)-es mátrixot, amely ugyanaz, mint az eredeti mátrix, de az i. sor és j. oszlop nélkül. Az i és j értékét billentyűzetről kérje be a program feladat Írjon programot, amely egy dinamikusan létrehozott n*m-es mátrix transzponáltját hozza létre, az eredmény mátrix is dinamikusan legyen létrehozva feladat Írjon programot, amely 2 n*m-es, dinamikusan létrehozott mátrix összegeit számolja ki, az eredmény mátrix is dinamikusan legyen létrehozva feladat Írjon függvényt, amely egy 2*2-es mátrix determinánsát számolja ki feladat Írjon programot, amely kiszámolja egy dinamikusan létrehozott n*n-es mátrix adjungált mátrixát (a feladathoz érdemes felhasználni az előző feladatok megoldásait), az eredmény egy ujabb dinamikus mátrixba kerüljön feladat Írjon programot, amely, ha lehetséges, kiszámolja egy dinamikusan létrehozott n*n-es mátrix inverzét, és az eredmény egy újabb dinamikus mátrixba kerüljön. A program ezek után ellenőrizze le a számolás helyességét, azaz vizsgálja meg, hogy az eredeti és az inverz szorzata valóban egységmátrixot ad-e.
48 48 5. Mutatók feladat Írjon programot, létrehoz egy 3 dimenziós, feltölti értékekkel, majd felszabadítja feladat Az előző programot módosítsa úgy, hogy a lefoglalás, feltöltés és felszabadítás külön void visszatérési típusú függvényekkel történjen! feladat Az előző programot bővítse ki úgy, hogy a program keresse meg a legkisebb elemét, és írassa ki annak indexét. Amennyiben ez az elem többször fordul elő, akkor elég csak az elsőt megkeresni feladat Az előző programot bővítse ki úgy, hogy a program keresse meg a legkisebb elemet, és számolja meg, hogy mennyi ilyen elem van, és ezt írassa ki a képernyőre feladat Bővítse ki az előző programot úgy, hogy a legkisebb elemek indexeit gyűjtse ki egy 3*n méretű dinamikus tömbbe, ahol n a legkisebb elemek mennyisége. * feladat Írjon programot, amely dinamikusan egy tetszőleges dimenzió számú tömböt hoz létre, feltölti értékekkel, megjeleníti a képernyőn, majd felszabadítja. A program olvassa be billentyűzetről a dimenziók számát, majd a dimenziók méreteit. Az alábbi feladatok megoldásához ne használja a string.h header fájlt! feladat Írjon programot, amely dinamikusan létrehoz, majd feltölt két stringet, kiírja, majd felszabadítja őket feladat Az előző programot bővítse ki úgy, hogy az egyik stringről készítsen másolatot, a másolat szintén egy dinamikusan létrehozott karaktertömb legyen feladat Az előző programot bővítse ki úgy, hogy a két stringet összefűzi, az eredményt egy harmadik, dinamikusan lefoglalt stringbe teszi feladat Írjon függvényt, amely két dinamikusan létrehozott stringről megállapítja, hogy egyenlőek-e feladat Írjon függvényt, amely két dinamikusan létrehozott stringről megállapítja, hogy melyik van előrébb az ABC-ben, a stringek csak az angol ABC kisbetűit tartalmazzák feladat Írjon függvényt, amely két dinamikusan létrehozott stringről megállapítja, hogy melyik van előrébb az ABC-ben, a stringek csak az angol ABC kis- és nagybetűit tartalmazzák, az egyes betűk kis és nagybetűs változatai azonosnak tekinthetőek, azaz az alma szó egyenrangú az AlMa szóval feladat Írjon függvényt, amely kap egy stringet, és egy i egész számot. A függvény megkeresi az i. szót a kapott stringben, lefoglal egy új dinamikus karaktertömböt, és abba kiírja a kert szót, majd visszatér az új stringgel. Ha nem létezik az i. szó, akkor a függvény NULL-al tér vissza.
1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb
1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb #include main() { int a, b; printf( "a=" ); scanf( "%d", &a ); printf( "b=" ); scanf( "%d", &b ); if( a< b ) { inttmp = a; a =
Részletesebben1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.
Számítás:. Olvassuk be két pont koordinátáit: (, y) és (2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki. 2. Olvassuk be két darab két dimenziós vektor komponenseit: (a, ay) és (b, by). Határozzuk
RészletesebbenProgramozás I. gyakorlat
Programozás I. gyakorlat 2. gyakorlat Kifejezések, vezérlési szerkezetek, struktúrák Kifejezések Mit ír ki az alábbi program? #include int main() { int a = 20, b = 40; printf("%d\n", a > b);
RészletesebbenProgramozási segédlet
Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen
RészletesebbenProgramozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek
Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő
RészletesebbenMegjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:
1. Tétel Az állomány két sort tartalmaz. Az első sorában egy nem nulla természetes szám van, n-el jelöljük (5
RészletesebbenProgramozás I. házi feladat
Programozás I. házi feladat 2013. 6. hét, 1. rész A feladatsor 4 feladatot tartalmaz, amelyeket egy közös forráskódban kell megvalósítani. Annak érdekében, hogy a tesztelő egymástól függetlenül tudja tesztelni
Részletesebben1. Alapok. Programozás II
1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph
RészletesebbenFelvételi tematika INFORMATIKA
Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.
RészletesebbenProgramozás I gyakorlat
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
RészletesebbenGyakorló feladatok az 1. nagy zárthelyire
Gyakorló feladatok az 1. nagy zárthelyire 2012. október 7. 1. Egyszerű, bevezető feladatok 1. Kérjen be a felhasználótól egy sugarat. Írja ki az adott sugarú kör kerületét illetve területét! (Elegendő
RészletesebbenProgramozás I. gyakorlat
Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt
RészletesebbenC memóriakezelés. Mutató típusú változót egy típus és a változó neve elé írt csillag karakterrel hozhatjuk létre.
C memóriakezelés Ez a kis segédanyag az adatszerkezetek órán használt eszközök megértését hivatott elősegíteni. A teljesség igénye nélkül kerül bemutatásra a mutató típus és a dinamikus memóriakezelés.
Részletesebben8. gyakorlat Pointerek, dinamikus memóriakezelés
8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.
Részletesebben10. gyakorlat Tömb, mint függvény argumentum
10. gyakorlat Tömb, mint függvény argumentum 1. feladat: A 6. gyakorlat 1. feladatát oldja meg a strukturált programtervezési alapelv betartásával, azaz minden végrehajtandó funkciót külön függvényben
Részletesebben7/8. gyakorlat Karaktertömbök és sztringkezelés
7/8. gyakorlat Karaktertömbök és sztringkezelés 1. feladat: Karaktertömb kezelése Egy beolvasott karaktert lineáris kereső eljárással keressen meg az angol ábécében (az ábécé betűit tárolja inicializált
Részletesebben1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3
Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás
Részletesebben3. Osztályok II. Programozás II
3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt
RészletesebbenBASH SCRIPT SHELL JEGYZETEK
BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...
RészletesebbenProgramozás alapjai 9.Gy: Struktúra 2.
Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).
RészletesebbenBánsághi Anna 2014 Bánsághi Anna 1 of 68
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
RészletesebbenProgramozás I. - 11. gyakorlat
Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar
RészletesebbenA C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
RészletesebbenA C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
RészletesebbenProgramozás alapjai gyakorlat. 2. gyakorlat C alapok
Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel
Részletesebben3 A C programozási nyelv szintaktikai egységei
3 A C programozási nyelv szintaktikai egységei 3.1 Azonosítók Betűk és számjegyek sorozata, betűvel vagy _ (aláhúzás) karakterrel kell kezdődnie. A nagy- és kisbetűk különbözőek. Az azonosítók tetszőleges
RészletesebbenInformációk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása
1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június
Részletesebben// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió
BME MOGI Gépészeti informatika 3. 1. feladat Végezze el a következő feladatokat! Kérjen be számokat 0 végjelig, és határozza meg az átlagukat! A feladat megoldásához írja meg a következő metódusokat! a.
RészletesebbenProgramozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,
RészletesebbenÍrjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!
Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt! valós adatokat növekvő sorrendbe rendezi és egy sorba kiírja
RészletesebbenC programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
RészletesebbenVezérlési szerkezetek. Szelekció Ciklusok
Vezérlési szerkezetek Szelekció Ciklusok Szelekciós vezérlés A program egy feltétel teljesülése alapján választja ki, hogy mely műveleteket hajtsa végre. Alakja: if ( feltétel ) { műveletek, ha feltétel
Részletesebben10. gyakorlat Struktúrák, uniók, típusdefiníciók
10. gyakorlat Struktúrák, uniók, típusdefiníciók Házi - (f0218) Olvass be 5 darab maximum 99 karakter hosszú szót úgy, hogy mindegyiknek pontosan annyi helyet foglalsz, amennyi kell! A sztringeket írasd
RészletesebbenProgramozás I gyakorlat
Programozás I. - 2. gyakorlat Változók, kiiratás, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24, 2007 1 tar@dcs.vein.hu
RészletesebbenI. Specifikáció készítés. II. Algoritmus készítés
Tartalomjegyzék I. Specifikáció készítés...2 II. Algoritmus készítés...2 Egyszerű programok...6 Beolvasásos feladatok...10 Elágazások...10 Ciklusok...1 Vegyes feladatok...1 1 I. Specifikáció készítés A
RészletesebbenProgramozás I gyakorlat. 10. Stringek, mutatók
Programozás I gyakorlat 10. Stringek, mutatók Karakter típus A char típusú változókat karakerként is kiírhatjuk: #include char c = 'A'; printf("%c\n", c); c = 80; printf("%c\n", c); printf("%c\n",
RészletesebbenMit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,
RészletesebbenMutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában
Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. április 4. Számok rendezése Feladat: Fejlesszük tovább úgy a buborék rendez algoritmust bemutató példát, hogy a felhasználó adhassa meg a
RészletesebbenINFORMATIKA javítókulcs 2016
INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.
RészletesebbenVezérlési szerkezetek
Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását
RészletesebbenTömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása
Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző
RészletesebbenProgramozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)
Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
Részletesebben5. gyakorlat. Konstansok Tömbök Stringek
5. gyakorlat Konstansok Tömbök Stringek Konstansok A C nyelvben a konstansok preprocesszor makrókkal vannak megvalósítva. Konstansdefiniálás alakja: #define NÉV érték Az érték bármi lehet, később a fordítás
RészletesebbenBevezetés a programozásba I.
Elágazás Bevezetés a programozásba I. 2. gyakorlat, tömbök Surányi Márton PPKE-ITK 2010.09.14. Elágazás Elágazás Eddigi programjaink egyszer ek voltak, egy beolvasás (BE: a), esetleg valami m velet (a
RészletesebbenProgramozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért
RészletesebbenKeresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala
RészletesebbenGyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék
Gyakorló feladatok Számrendszerek: Feladat: Ábrázold kettes számrendszerbe a 639 10, 16-os számrendszerbe a 311 10, 8-as számrendszerbe a 483 10 számot! /2 Maradék /16 Maradék /8 Maradék 639 1 311 7 483
RészletesebbenProgramozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)
Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index
RészletesebbenProgramozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása
Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása 1. feladat: Eldönteni egy számról, hogy pozitív, negatív vagy 0. Próbálja megoldani a feladatot switch szerkezettel is. Mikor használható
RészletesebbenVáltozók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):
Python Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása alatt
RészletesebbenProgramozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja
RészletesebbenTartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.
Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
RészletesebbenProgramozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. szeptember 27. Háromszög szerkeszthet ségének ellen rzése ANSI C (C89) megvalósítás #i n c l u d e i n t main ( v
RészletesebbenWebprogramozás szakkör
Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás
RészletesebbenRekurzív algoritmusok
Rekurzív algoritmusok 11. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. november 14. Sergyán (OE NIK) AAO 11 2011. november 14. 1 / 32 Rekurzív
RészletesebbenBevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
Részletesebben2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).
1. fejezet AWK 1.1. Szűrési feladatok 1. Készítsen awk szkriptet, ami kiírja egy állomány leghosszabb szavát. 2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét,
RészletesebbenMűveletek mátrixokkal. Kalkulus. 2018/2019 ősz
2018/2019 ősz Elérhetőségek Előadó: (safaro@math.bme.hu) Fogadóóra: hétfő 9-10 (H épület 3. emelet 310-es ajtó) A pontos tárgykövetelmények a www.math.bme.hu/~safaro/kalkulus oldalon találhatóak. A mátrix
RészletesebbenAdatbázis és szoftverfejlesztés elmélet. Programozási tételek
Adatbázis és szoftverfejlesztés elmélet Témakör 8. 1. Egy sorozathoz egy érték hozzárendelése Az összegzés tétele Összefoglalás Programozási tételek Adott egy számsorozat. Számoljuk és írassuk ki az elemek
RészletesebbenOperációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik
RészletesebbenProgramozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,
Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás OE-NIK, 2013 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk
RészletesebbenProgramozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
RészletesebbenHORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport
10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)
RészletesebbenBrósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.
Számelmélet I. DEFINÍCIÓ: (Osztó, többszörös) Ha egy a szám felírható egy b szám és egy másik egész szám szorzataként, akkor a b számot az a osztójának, az a számot a b többszörösének nevezzük. Megjegyzés:
RészletesebbenELEMI PROGRAMOZÁSI TÉTELEK
ELEMI PROGRAMOZÁSI TÉTELEK 1. FELADATMEGOLDÁS PROGRAMOZÁSI TÉTELEKKEL 1.1 A programozási tétel fogalma A programozási tételek típusalgoritmusok, amelyek alkalmazásával garantáltan helyes megoldást adhatunk
Részletesebben11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.
11. gyakorlat Sturktúrák használata I. Új típus új műveletekkel 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. typedef struct datum { int ev; int ho; int nap;
Részletesebben1. Alapok. #!/bin/bash
1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk
RészletesebbenA programozás alapjai 1 Rekurzió
A programozás alapjai Rekurzió. előadás Híradástechnikai Tanszék - preorder (gyökér bal gyerek jobb gyerek) mentés - visszaállítás - inorder (bal gyerek gyökér jobb gyerek) rendezés 4 5 6 4 6 7 5 7 - posztorder
Részletesebben6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok
6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 1. feladat: Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR). Írjon C programokat az alábbi kérdések
RészletesebbenAlkalmazott modul: Programozás
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás Feladatgyűjtemény Összeállította: Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Frissítve: 2015.
RészletesebbenProgramozás alapjai. 5. előadás
5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk
RészletesebbenProgramozási Nyelvek: C++
Programozási Nyelvek: C++ Gyakorló feladatkönyv Umann Kristóf #include "CppStudent.h" int main() { CppStudent *reader = new CppStudent(); reader->readbook(); while(!reader->doesunderstand()) { reader->exercise();
RészletesebbenAdatbázis rendszerek Gy: Algoritmusok C-ben
Adatbázis rendszerek 1. 1. Gy: Algoritmusok C-ben 53/1 B ITv: MAN 2015.09.08 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás Gyorsrendezés 53/2 Összegzés
Részletesebben5. Gyakorlat. struct diak {
Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus
RészletesebbenBME MOGI Gépészeti informatika 5.
BME MOGI Gépészeti informatika 5. 1. feladat Készítsen alkalmazást, mely feltölt egy egydimenziós tömböt adott tartományba eső, véletlenszerűen generált egész értékekkel! Határozza meg a legkisebb és a
RészletesebbenRekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
Részletesebben2018, Funkcionális programozás
Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a
RészletesebbenProgramozás alapjai 2.Gy: A C nyelv alapjai P R O
Programozás alapjai 2.Gy: A C nyelv alapjai. P R O A L A G 1/32 B ITv: MAN 2018.10.02 Code::Blocks Indítsa el mindenki! 2/32 1 Code::Blocks Új projekt 2 3 4 5 3/32 Code::Blocks Forráskód Kód fordítása:
RészletesebbenProgramozás alapjai 8.Gy: Program struktúra
Programozás alapjai 8.Gy: Program struktúra Elvarázsolt matekóra P R O A L A G 32/1 B ITv: MAN 2018.11.02 Programozás történelem Kezdetben egy program egyetlen kódsorozat volt (ún. monolitikus program)
RészletesebbenMintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
Részletesebben7. gyakorlat Sorozatok, Fájlkezelés
7. gyakorlat Sorozatok, Fájlkezelés Házi ellenőrzés - f0124 Írj programot, amelyben a felhasználónak egy, a program által meghatározott számot kell kitalálnia! A felhasználó tippjét a program vagy elfogadja,
Részletesebben1. Jelölje meg az összes igaz állítást a következők közül!
1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.
RészletesebbenA 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai 1. feladat: Repülők (20 pont) INFORMATIKA II. (programozás) kategória Ismerünk városok közötti repülőjáratokat.
RészletesebbenProgramozás I. zárthelyi dolgozat
Programozás I. zárthelyi dolgozat 2013. november 11. 2-es szint: Laptopot szeretnénk vásárolni, ezért írunk egy programot, amelynek megadjuk a lehetséges laptopok adatait. A laptopok árát, memória méretét
RészletesebbenBevezetés a programozásba I.
Bevezetés a programozásba I. 3. gyakorlat Tömbök, programozási tételek Surányi Márton PPKE-ITK 2010.09.21. ZH! PlanG-ból papír alapú zárthelyit írunk el reláthatólag október 5-én! Tömbök Tömbök Eddig egy-egy
RészletesebbenSzövegek C++ -ban, a string osztály
Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string
RészletesebbenEgyszerű programozási tételek
Egyszerű programozási tételek 2. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 15. Sergyán (OE NIK) AAO 02 2011. szeptember 15.
RészletesebbenAlgoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:
Részletesebben7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.
7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,
Részletesebben/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;
1. Írjunk programot, amely függvény alkalmazásával meghatározza n a értékét, (a az n-edik gyök alatt), az általunk megadott pontossággal, iterációval. Az iteráció képlete a következő: ahol : n-1 x uj =
RészletesebbenBEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!
BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA #A script bekér egy nevet és egy kort, majd kiírja a képernyőre echo -n "Adja meg a nevét: " read NEV echo -n "Adja meg az életkorát: " read KOR echo "Az Ön neve: $NEV, kora:
RészletesebbenProgramozás I gyakorlat
Programozás I. - 9. gyakorlat Sztringkezelés, mutatók Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 2, 2009 1 tar@dcs.vein.hu Tar
RészletesebbenII. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK
Mérési Utasítás Linux/Unix jogosultságok és fájlok kezelése Linux fájlrendszerek és jogosultságok Linux alatt, az egyes fájlokhoz való hozzáférések szabályozása érdekében a fájlokhoz tulajdonost, csoportot
RészletesebbenTájékoztató. Használható segédeszköz: -
A 12/2013. (III. 29.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosítószáma és megnevezése 54 481 06 Informatikai rendszerüzemeltető Tájékoztató A vizsgázó az első lapra írja
RészletesebbenGyakorló feladatok. Az alaputasítások olyanok, mint C-ben. (Részleteket ld. segedletek/02.pdf vagy bármelyik Java tutorial.)
Gyakorló feladatok Az alaputasítások olyanok, mint C-ben. (Részleteket ld. segedletek/02.pdf vagy bármelyik Java tutorial.) 1. Adott egy pozitív egész számokból álló tömb. Hozzunk létre egy másik tömböt,
RészletesebbenProgramozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás
Programozás alapjai 6. gyakorlat Futásidő, rekurzió, feladatmegoldás Háziellenőrzés Egészítsd ki úgy a simplemaths.c programot, hogy megfelelően működjön. A program feladata az inputon soronként megadott
RészletesebbenProgramozas 1. Strukturak, mutatok
Programozas 1 Strukturak, mutatok Strukturak Tömb: több egyforma típusú változó együttese Struktúra: több különböző típusú de logikailag egybetartozó változó együttese, amelyet az egyszerű kezelhetőség
RészletesebbenFelvételi vizsga mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív
Részletesebben