Programozás I. segédlet

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Programozás I. segédlet"

Átírás

1 Programozás I. segédlet

2 Tartalomjegyzék Előszó Bevezetés Adattípusok, értékadás, egyenlőségek Kiíratás Elágazás For ciklus While, do while ciklusok Logikai kapcsolatok Adatbekérés, ASCII tábla Tömbök Függvények, eljárások Sztring Típuskonvertálás Sorbarendezés, maximum-minimum kiválasztás Inputellenőrzés

3 Előszó Ebben a segédletben csak a legszükségesebb információkat fogjátok megtalálni, ami elegendő a Programozás I. vizsga teljesítéséhez. Bízom benne, hogy a segédletben található anyagok a tanulásban a segítségetekre lesznek. A segédletben megtalálható szubrutinokat eléritek a MaCsoDev.hu oldalon. Changelog: V1 - Initial release - Bool logika kiegészítés V1.2 - For ciklus kiegészítés - Feladatok - While, do while ciklusok - Tömbök V1.3 - Műveletek kiegészítés - Adatbekérés, ASCII tábla - Typo - Anyagrész sorrend csere V1.4 - Stílus - Kiegészítések - Hivatkozások - Függvények - Tömbök kiegészítés V1.5 - Bevezetés style - Typo - Sztring - Sztringkezelés V1.6 - Előszó link kiegészítés - Typo - Table style - strlen javítás V Inputellenőrzés - Typo V1.7 - Képfeliratok - Logikai kapcsolatok - Inputellenőrzés kiegészítés V1.8 - Sorbarendezés, maximum-minimum kiválasztás - Typo V Stílus javítás - Inputellenőrzés feladat javítás V Néhány rész átfogalmazása, érthetőbbé tétele V Oldalszámok - Tartalomjegyzék - Table color fix - Átfogalmazás V2 (Első kiadás) - Adattípusok, értékadás, egyenlőségek táblázat kiegészítés - Egységes világos téma - Bekezdés térközök - Feladatok és kérdések képhez igazítása Ez a Mű a Creative Commons Nevezd meg! - Ne add el! 4.0 Nemzetközi Licenc feltételeinek megfelelően felhasználható. 2

4 1. Bevezetés Aki már tanult programozni valamilyen szinten, az már az alapokat tudni fogja, csak a szintaktikát kell összerakni. Aki viszont most kezdi, annak az alapoktól kell megtanulnia a programozást. Ahhoz, hogy nekiálljunk, kell egy fejlesztői környezet, amiben megírjuk a programunkat, és le is tudjuk fordítani azt. Ilyen fejlesztői környezet például a Microsoft Visual Studio vagy a CodeBlocks. Ha ezeket beszereztük, akkor bele is kezdhetünk az első programunk megírásába. Hogyan néz ki egy C program? 1. Így néz ki egy C program A C program (jobb esetben és általában) fejfájlok bekapcsolásával kezdődik, amit a következőképpen tehetünk meg: #include <fejfajlneve.h> A fejfajlneve.h helyett természetesen mást kell írni, még pedig azon fejfájlok neveit, amelyekre szükségünk lesz a programhoz. Például ha ki akarunk írni valamit a képernyőre, akkor szükségünk lesz az stdio.h fejfájlra, ami nagyon sok előre megírt feladatot el tud végezni, nekünk már csak használnunk kell (STDIO=Standard Input Output/szabvány ki- és bemenet). A fejfájlok után következik a main függvény. Ez lesz a programunk fő része, egy keret, ami közé fogjuk majd a programunkat írni. A program lefutásakor a main függvényben található utasítások fognak végrehajtódni. A függvényeket (így a main függvényt is) a következőképpen kell használni: int main() vagy float osztas(float szam1, float szam2) vagy char atvalt(int szam) A függvény (vagy eljárás) azonosítója annak neve lesz, ezzel fogjuk majd meghívni őket (példában szereplő azonosítók: main, osztas, atvalt). Az azonosítók előtt szereplő kifejezés az adott függvény/eljárás visszatérési értéke lesz. Függvények és eljárások írásáról, visszatérési értékről a Függvények témakörben lesz szó. Az azonosító (main, osztas, atvalt) után következik két kerek zárójel, amely paraméterlistának hívunk. Itt fogjuk megadni, hogy pontosan milyen adatok kellenek ahhoz, hogy a függvényünk megoldja az általunk megoldani kívánt feladatot (erről is később lesz szó). A függvények után egy { jelpár kell, ami közé fogjuk majd írni, hogy a függvénynek pontosan mit is kell majd csinálnia. A program megírása közben használtuk a printf() utasítást, ami nem más, mint az stdio.h fejfájl egy része, egy beépített függvény, ami a képernyőre írja nekünk azt, amit megadunk neki paraméterben. A printf() használata csak akkor lehetséges, ha a programunk legelején bekapcsoltuk az stdio.h fejfájlt. Hasonlóképpen fogunk dolgozni a többi beépített fejfájlokkal és azok függvényeivel. 3

5 2. Adattípusok, értékadás, egyenlőségek Az előző részben megírtuk első programunkat. A továbbiakban függvények és eljárások hívásával, ismétlődések szervezésével, változók beállításával fogunk foglalkozni, melynek célja, hogy az adott adatokat a (vizsga)feladatnak megfelelően fel tudjuk dolgozni. A következő lépés tehát a változók használatának megtanulása. A változót tekintsük egy kis fióknak, amibe tetszőlegesen rakhatunk egy adott értéket. Azonban nem rakhatunk mindenféle értéket ugyanabba a fiókba. Egy adott fiókba csak egy általunk megszabott típusú értéket rakhatunk. A változóknak több fajtája van, az elemi primitív változók a következőek: - int: integer, vagyis egész számokat tudunk benne tárolni, 2 32 nagyságú tartomány - char: karaktereket tudunk benne tárolni. Valójában ez is csak egész számokat tárol, az ASCII táblában szereplő betű kódját tárolja csak (használatáról: Adatbekérés, ASCII tábla) - float (vagy double): lebegőpontos számokat tudunk benne tárolni, vagyis olyan számokat, amik nem egészek. Ezekkel az elemi változókban fogjuk tárolni és onnan kiolvasni az adatokat.hogyan is használjuk ezeket a változókat? A main függvény után van az a hely a kódban, ahol lehetőségünk van változókat felvenni, deklarálni (nem a main függvény kiváltsága ez, külön függvényeknél is a függvény legelején kell felvenni a változókat). A változókat mindig úgy vesszük fel, hogy először a típusát írjuk be, majd annak adunk egy nevet. A fenti felsorolás mintája alapján vegyünk fel egy int típusú szam azonosítójú változót! Ez a szam változó nekünk most egy számot fog tárolni, amit vagy megadunk neki most a felvételnél, vagy majd később adunk neki értéket. Ha deklarálásnál adunk neki értéket, akkor azt a példán keresztül nézve így tehetjük meg: int szam=12;. Figyeljük meg, hogy mit is csináltunk: felvettünk egy int típusú változót, aminek a szam nevet adtuk, majd ebbe a szam nevű változóba beleraktuk a 12-es számot. A parancs(ok) végét pontosvesszővel zárjuk a C-ben. Láthattuk, hogy egy darab egyenlőségjel használatával értéket tudunk belerakni egy változóba. De akkor hogyan hasonlíthatunk össze két változót, ha az egyenlőség jel már foglalt? Hogyan adunk össze két értéket, osztunk, szorzunk stb, egyszóval: mik a használható jelek és szimbólumok ezekre? = értékadás / és * osztás és szorzás == egyenlőség! logikai tagadás + és - összeadás és kivonás!= egyenlőtlenség ++ és -- inkrementálás és dekrementálás, vagyis a változó értékének növelése && és logikai ÉS és logikai VAGY vagy csökkentése 1-gyel % maradékos osztás (a maradékot adja vissza) < és <= kisebb/kisebb vagy egyenlő 4

6 3. Kiíratás Még egy két dolgot tisztába kell tenni, mielőtt látható eredményt érünk el. Elsőként nézzük meg, hogy hogyan is tudjuk rávenni a programot, hogy írja ki a változót (számot, karaktert), amit akarunk. A képernyőre való kiíratásra a printf() beépített függvényt használjuk. A függvény meghívása után meg kell adnunk paraméterben, hogy mit is szeretnénk kiíratni. Persze ez nem ilyen egyszerű, nézzük meg egy példán keresztül kicsit részletesebben, hogy hogyan is zajlik ez. 2. Működésre bírt printf függvény Az első sor az egy tipikus meghívás a C-ben. Ez jelen esetben azt jelenti, hogy meghívjuk a printf() függvényt, hogy végezze el a dolgát azokkal az adatokkal, amit mi megadtunk. Az első sorban nyílván nem adtunk meg semmit, így picit finomítanunk kell rajta. A második sorban kiegészítettük két idézőjellel, így már érvényes a parancs, de lefutáskor nem fog nekünk semmit a képernyőre írni, mivel még nem írtunk bele semmit. Amit ki akarunk íratni, azt a két idézőjel közé kell írnunk; ezt mutatja a harmadik sor. A harmadik sort lefuttatva már érvényes szöveget kapnánk, viszont ahhoz, hogy a mi szam változónkat meg tudjuk jeleníteni, valamilyen módon meg kell jelölnünk azt a szövegben, erre szolgálnak a formátumspecifikátorok, formátumsztringek. Lényegében ezek használatával jelöljük azt, hogy mi ott valami mást akarunk kiíratni. Azonban magában ez még nem elég, a program nem fogja kitalálni, hogy mit akarunk oda. Éppen ezért (ahogyan az 5. sorban látható) még a printf() függvény zárójelein belül, de az idézőjelek mögé rakunk egy vesszőt, és felsoroljuk azokat a változókat, amiket meg kívánunk jeleníteni. Az egyes változókhoz a következő formátumjelölők használhatóak: %d int változó %f float, double változó %c char változó %s sztring Ezeken a jelöléseken kívül van pár karakter, amik láthatatlanok, ezek az úgynevezett fehér karakterek. Ilyenek például az új sor (\n), a tabulátor (\t) vagy a szóköz. Ezeket használjuk ugyanúgy, mint egy normális karaktert. Például ha két sorban akarjuk kiírni azt a két szót hogy Hello és világ, akkor a parancs a következőképpen néz ki: printf( Hello\nvilág );. Ekkor a Hello után egy sortörést szúr be a program, így a világ szó már új sorban kezdődik. 5

7 4. Elágazás Ha egy műveletet csak bizonyos feltétel(ek) teljesülésekor szeretnénk hogy lefusson, akkor elágazást használunk. A következő kulcsszavak használatával tudunk elágazást létrehozni: if (FELTÉTEL){ } else if (FELTÉTEL) { } else { } elágazás kezdete (FELTÉTEL az aktuális összehasonlítandó érték //HA (FELTÉTEL) AKKOR // Ha (általában) kettőnél több ágat szeretnénk, akkor az else if -et kell használni //KÜLÖNBEN HA (FELTÉTEL) AKKOR // ha az első ág nem teljesül, akkor az itt megadott utasítások hajtódnak végre.//különben // Ezeket tökéletesen le lehet fordítani angolról magyar nyelvre, és vica versa. Vegyük például a következő feladatot: ha a szam változó egyenlő 12-vel, akkor írjuk ki a szam változót, különben írjuk ki hogy a szam változó nem egyenlő 12-vel: 3. Egy könnyű példa az elágazásra Természetesen ebben az esetben a kimenet az első ágban szereplő mondat lesz, tehát a program ki fogja írni a szam értékét. Ha az egyik ág (ebben a példában az első) feltétele teljesül, akkor a program már nem fogja vizsgálni a többi ágat. Ezért van az, hogy csak az első sort írta ki, és nem mindkettőt. Természetesen nem csak egyenlőséget írhatunk, használhatjuk az összes hasonlító műveletet, ami az Adattípusok, értékadás, egyenlőségek fejezetben szerepel. Az említett példánál maradva meg kell jegyezni, hogy a feltétel után nincs kapcsos zárójelpár írva. Ez azért van, mert ha csak egy művelet van, amit végre kívánunk hajtani az elágazásban, akkor ez a kapcsos zárójelpár elhagyható. A feltételek vizsgálata a Logikai kapcsolatok című fejezetben van részletezve. 6

8 5. For ciklus Ahhoz, hogy ismételten elvégzett műveleteket tudjunk leprogramozni, ismernünk kell ciklusokat. A ciklusok olyan folyamatok, amelyben a meghatározott feladatok ismételten futnak le egy megadott feltétel és lépték szerint. Tehát ha van valami művelet, vagy olyan műveletek összessége, melyek ismétlődően visszatérnek, akkor azokat legcélszerűbb egy ciklusba szervezni. A for ciklust a következők szerint tudjuk használni: for(értékadások;feltétel;léptetés) { } Figyeljük meg, hogy a ciklus zárójelén belül lévőket három részre osztottuk, ezeket pontosvesszővel választottuk el! Értékadásnál az egyes változóknak adott értékeket vesszővel kell elválasztani. Ide vegyünk fel egy külön int változót (általában i, j, k névvel szoktuk nevezni őket), ez lesz a ciklusváltozónk, amit majd léptetünk, ezzel biztosítva a folyamatosságot. A feltétel nem változott, ugyanaz, mint az elágazásoknál, vagy akárhol máshol. A léptetés az Adattípusok, értékadás, egyenlőségek című fejezetben lévő táblázatban az inkrementáló operátorokkal is lehetséges. Nézzünk rá egy konkrét példát; írassuk ki a számokat 1-től egészen 10-ig! 4. Egy for ciklus szervezése Természetesen a ciklus belsejében (úgynevezett ciklusmagban) bármilyen műveletet beírhatunk, így lehetnek ott matematikai műveletek, elágazások, újabb ciklusok. Az értékadásnál több változónak is adhatunk egyszerre értéket, hasonlóképpen több feltétel és több léptetés is megadható egyidőben. Feladatok: - Írjunk olyan programot, amely 2 hatványait kiírja egészen addig, amíg az érték kisebb vagy egyenlő, mint 1024! Ha az érték éppen 512, akkor a program az aktuális érték helyett írja ki azt, hogy Ketto a kilencediken. - Írjunk olyan programot, amelynek ciklusváltozója 10-től egészen -10-ig megy. o Módosítsuk a feladatot: csak akkor írassuk ki az aktuális értéket, ha az negatív! o Az előző programot írjuk át úgy, hogy az aktuális érték mindig ellenkező előjellel kerüljön kiíratásra. (A ciklus léptetéséhez nem nyúlhatunk!) - Írjunk olyan programot, amely egy általunk előre meghatározott számot X-szer eloszt 2-vel egymás után. X és szam változó értékét deklaráláskor adjuk meg. Minden osztás eredményét írjuk ki 2 tizedesjegy pontossággal! 7

9 6. While, do while ciklusok A for ciklushoz hasonlóan még két másik ciklusunk is van, amiket választhatunk. Természetesen a feladat logikájától függ, hogy éppen melyik lenne a legcélravezetőbb választás. A while ciklust elöltesztelő ciklusnak, a do while ciklust hátultesztelő ciklusnak nevezik, nézzük is meg mindjárt, hogy miért. Elöljáróban érdemes annyit tudni róluk, hogy a for ciklussal ellentétben itt csak egy feltétel kell a ciklusunk lefutásához. Éppen ezért a változók kezdeti értékeiről és az esetleges léptetésekről nekünk kell gondoskodnunk. while(feltétel) { } elöltesztelő ciklus //AMÍG (FELTÉTEL) ADDIG { } do { }while(feltétel); hátultesztelő ciklus //CSINÁLD { } AMÍG (FELTÉTEL) Nézzünk rá egy egyszerű példát: 5. Példa a do while ciklusra Gyakorlatilag a két ciklus szerkezete hasonló egymáséhoz, egymás megfordítottjainak tekinthetjük őket, és nagyban hasonlítanak a for ciklusra is, kivéve az előbb tárgyalt léptetést és értékadást. Az értékadást el tudjuk végezni ciklus elején/ciklusban (Ha nincs használva feltételben, feladatfüggő), a léptetésről (általában) a ciklus végén szoktunk gondoskodni. Kérdések: - Milyen számok kerülnek kiíratásra a while ciklusban? - Mi lehet az előnye a hátultesztelő ciklusnak, ha a cél egy adat bekérése? - Meddig kérünk be karaktereket a hátultesztelő ciklusban 8

10 7. Logikai kapcsolatok Az előző pár fejezetben megismerkedhettünk a logikai műveletekkel (Adattípusok, értékadás, egyenlőségek), amiket különféle ciklusszervezésekkor, elágazásokkor használtunk. Ez arra jó, hogy egy érték vagy kifejezés megvizsgálásával eldönthessük, hogy kell-e az általunk megadott műveletet futtatnunk vagy sem. A feltételek vagy igazak, vagy hamisak. Hamis érték a nulla, igaz érték minden, ami nem nulla. Így tehát ha a feltételünkben egy függvény bármilyen nem nulla számmal tér vissza, a feltétel igaznak bizonyul. Akkor is igaz lesz a feltételünk, ha az általunk leírt egyenlőség (vagy bármilyen más összehasonlítási mód) igaznak bizonyul. Ilyen esetben a feltétel értéke 1. Abban az esetben, ha a feltételben visszatérő függvény visszatérési értéke nulla, vagy ha az általunk írt feltétel hamisnak bizonyul, a feltétel értéke 0 lesz, ennek megfelelően nem kerül lefutásra az adott ág tartalma, vagy a ciklus megáll, attól függően, hogy hol használtuk a feltételt. A logikai tagadás az adott feltétel értékét változtatja az ellentettjére. Ha a feltételünk igaz volt, de ezt negáljuk (tagadjuk), akkor hamissá válik a feltételünk, annak ellenére, hogy a benne szereplő kifejezés igaz. Fordítva: ha egy hamis feltételt megtagadunk, igazzá válik. Bármilyen nem nulla szám tagadása a feltételben hamis eredményt mutat. Hogy tudunk erre példát nézni? Egyszerűen beírunk számokat feltételként, és meglátjuk, hogy mi lesz a lefutás eredménye. 6. Példa feltételekre A kimeneten látszik, hogy csak az első és a harmadik sor fut le, hiszen ezekben az elágazásokban a feltétel egy nem nulla szám. A!12 a tizenkettes szám ellentettje, bármely (nem nulla) szám ellentettje hamis eredményt ad, ezért nem futott le az adott sor. Az utolsó sor feltétele nulla, ami már önmagában hamis. Ha tehát egy változó értéke vagy egy függvény visszatérési értéke 0, akkor az adott elágazás vagy ciklus nem fut le. De mi van akkor, ha nekünk pont akkor kell, hogy lefusson, ha az érték nulla? Nagyon egyszerű a válasz: megvizsgáljuk, hogy az adott kifejezés nulla-e, azaz egy egyenlőség vizsgálattal így már a feltétel igaz lesz, hiszen nulla egyenlő nullával. 7. Így lehet hamisból igaz értéket csinálni 9

11 8. Adatbekérés, ASCII tábla Ahhoz, hogy általunk megadott adatokat tudjunk tárolni, meg kell teremtenünk a kapcsolatot köztünk és a programunk között. Erre szolgál az stdio.h fejfájl, mely tele van előre megírt függvényekkel és eljárásokkal, ezeket csak meg kell hívnunk. Ilyen függvény például a getchar() is. A getchar() függvény visszatérési értéke karakter. Így tehát ha be szeretnénk kérni egy karaktert, akkor ezt a függvényt meghívhatjuk. Ahhoz hogy bele is rakja az általunk begépelt karaktert az általunk felvett karakter változóba, egyenlővé kell vele tenni, mivel a visszatérési érték (az, amit a függvény eredményül ad nekünk) lesz az, amit mi beírtunk. Egy rövid példa egy karakter bekérésére: Kérdések: -Mi történik, ha felveszünk egy i nevű egész változót, és oda kérjük be a karaktert, valamint azt íratjuk ki? (A %c marad!) -Mi történik, ha kicseréljük a %c-t %dre? 8. Karakter bekérés és kiíratás Mint már említve volt, a char típus lényegében egy korlátolt int típus, egymás értékeit oda vissza lehet tárolni. A karaktereket egy táblázat szerint kódolták. Ez az ASCII tábla, ahol minden számhoz tartozik egy hozzárendelt karakter. Ha a bekért A karakterünket egészértékként írajuk ki (%d), akkor 65-öt fog kiírni a program (ez az ASCII kódja). Ha viszont karakterként (%c), akkor az A betűt kapjuk. Feladatok: - Szervezzünk do-while ciklust, mely addig kér be tőlünk egy karaktert, amíg az nem az X! Ha a megadott karakter X, akkor a ciklusból lépjünk ki, a program pedig írja ki az ASCII kódját! - Szervezzünk do-while ciklust, mely a 0 karakter megadásáig kér be tőlünk betűket. Elágazással próbáljuk meg a nagybetűket kicsivé, a kicsiket nagybetűvé alakítani. Az így kapott átalakított betűt írjuk ki, és azt is, hogy miből mibe alakította! 9. ASCII tábla 10

12 9. Tömbök Az Adattípusok, értékadás, egyenlőségek részben volt szó arról a hasonlatról, hogy egy változó olyan, mint egy fiók. Abban az esetben, ha több változót szeretnénk használni, akkor célszerűbb egy tömböt felvenni. Ha egy változó egy fiók volt, akkor itt egy tömb egy egész szekrény, és mi határozhatjuk meg, hogy hány kis fiókból álljon. Tömböket tudunk készíteni a már felsorolt típusokból és következőképpen kell őket deklarálni: int tomb[10]; vagy char mondat[10]; Tehát ugyanúgy van egy típusa, egy azonosítója, és ez van kiegészítve egy szögletes zárójelbe tett számmal, ami számunkra a szekrényben a fiókok számát reprezentálja (hány külön változót tud tárolni). A tömbre hivatkozákor a szögletes zárójelben lévő szám az indexszám. Innentől kezdve a használata megegyezik 10. A tömb olyan, mint egy szekrény az egyszerű változókéval, annyi különbséggel, hogy hivatkoznunk kell arra az elemre, amelyet módosítani szeretnénk, amivel dolgozni akarunk. Például: tomb[i]=7; printf( A tomb %d. eleme: %d\n,i,tomb[i]); A tömbök kis fiókjait deklaráláskor is feltölthetjük, adhatunk nekik értéket: int tomb[3] = {1,2,3}; Sőt, egyetlen érték megadásával az egész tömböt ki tudjuk nullázni: int tomb[126] = {0}; Így most a tomb nevű int típusú tömbünk összes kis fiókjába betettük a 0 értéket. Feladatok: A C nyelvben a tömbök indexelése 0-tól kezdődik! int szamok[4] elem 1.elem 2.elem 3.elem - Vegyünk fel egy 10 elemű egész típusú tömböt. Szervezzünk egy ciklust, melyben az i ciklusváltozó 1-től egészen 50-ig mehet. A tömbünkbe gyűjtsük ki az összes páratlan számot (maradékos osztás). A ciklus érjen véget, ha a 10 elemű tömbünk megtelt. (Segítség: a tömbünk indexeléséhez egy külön változó kell, amit 0-ról indítunk egészen 9-ig, és csak akkor léptetjük, ha apáratlan számnál tartunk). A ciklus lefutása után írassuk ki ezeket a számokat! - Írjunk programot, mely addig kér be tőlünk karaktereket, amíg nem üres sort adunk meg neki, vagy az összes megadott karakterek száma nem éri el a 10-et. A bekért karaktereket egy 10 elemű karaktertömbben tároljuk. A bekérések végeztével a program írja ki egy sorban az összes megadott karaktert! 11

13 10. Függvények, eljárások A függvények és eljárások a programozás szerves részét képezik. Így ebben a fejezetben belenézünk, hogy hogyan kell függvényeket írni, mi az a visszatérési érték, mi az a paraméter, és egyáltalán hogyan is működik mindez. A segédletben már többször is előfordultak függvények és eljárások (összefoglaló nevükön szubrutinok vagy metódusok), sőt, már használtunk is belőlük párat (például: getchar(), printf(), main()). Olyan műveletekre érdemes szubrutint szervezni, amikről tudjuk, hogy többször is elő fog fordulni, illetve ha szebbé szeretnénk tenni a programunkat, akkor szintén érdemes külön részegységet létrehozni erre a célra. A függvény és eljárás készítésének három lépése: 11. A szubrutinkészítés menete 1- Szubrutin szervezése a. Első a visszatérési érték, ez lehet valamilyen adattípus (Adattípusok, értékadás, egyenlőségek). Ha nem lesz mit visszaadni, akkor void (ez esetben nem függvény, hanem eljárás) b. Második a függvény (vagy eljárás) neve, azonosítója. Ez tetszőleges, de célszerű utalni vele a funkciójára c. Harmadik a paraméter. Itt kerek zárójelben meg kell adni mindent, amire a függvénynek (vagy eljárásnak) szüksége van a műveletek elvégzéséhez. Ha nem kér adatot, akkor void, ellenkező esetben mindenhol adattípussal együtt egy tetszőleges nevű változólistát írunk bele d. Negyedik lépés: írjuk meg a függvényünket (vagy eljárásunkat) tetszőlegesen. A példában csak egy kiíratás történik, természetesen lehet bármi mást is elvégezni (változókat felvenni, ciklusokat szervezni, műveleteket végezni stb.) 2- Prototípus main() függvény elé másolása. A függvényünk (vagy eljárásunk) első sorát kimásoljuk a main függvény elé, és lezárjuk. Ezzel biztosítottuk, hogy a fordító megtalálja majd a függvényünket. 3- Függvényhívás. Itt programunkban a már ismert módon meghívjuk a szubrutint, ami elvégzi a feladatát (így volt hívva a getchar(), printf() stb függvény is). Néhány szabály: - Nem void függvényeknél (eljárásoknál) a visszatérés (return) kötelező - Függvényhíváskor nem kell leírnunk se a visszatérés típusát, se a paraméterek típusát - A függvény visszatérési értéke és a változó amiben azt tároljuk meg kell, hogy egyezzen (de legalább kompatibilis legyen vele, például: int <-> double) - Ha több paraméterünk van, akkor vesszővel választjuk el őket (lásd: printf(), pow()) 12

14 Nézzünk egy élethűbb példát a függvények használatára. Szervezzünk függvényt, amely egy általunk megadott oldalhosszúságú négyzet területét adja vissza (azaz a visszatérési érték típusa biztosan nem void lesz) Ebben a programban az a nevű változóban tároltuk a négyzet egy oldalának hosszát. Ezt paraméterként átadtuk a negyzetterulet() nevű függvényünknek. A függvény átveszi, az ő saját terulet nevű változójába kiszámolja a beépített pow() függvény segítségével, majd ezt visszaadja nekünk (return). A visszatérési értéket az eredmeny változónk fogja megkapni, hiszen egyenlővé tettük a függvényünkkel. Így már csak a kiíratás maradt hátra. 12. Négyzet területét számító függvény Kérdések: - Nézzük meg, hogyan ugrál a programunkban a vezérlés egyik részről a másikra. Mi hajtódik végre, mielőtt az eredmeny változónkba érték kerülne? - Mi az összefüggés a negyzetterulet() függvény visszatérési típusa és a return terulet között? - Milyen paramétereket várhat a pow() függvény? Mi kell ahhoz, hogy ezt a beépített függvényt használhassuk? Feladatok: - Vegyünk fel egy 5 elemű egész számokat tároló tömböt, majd töltsük fel azt. Írjunk saját függvényt, mely a paraméterben megadott értéket köbre emeli, majd visszaadja. For ciklus segítségével menjünk végig a tömb elemein és írassuk ki egyenként a régi és az új értéket is! - Írjunk eljárást, mely paraméterként egy karaktert és egy egész számot vár. Az eljárás a paraméterek felhasználásával annyiszor írja ki a megadott karaktert, ahányszor azt átadtuk neki a második paraméterben. - Írjunk függvényt, mely egy karaktert vár bemenő paraméterként. Abban az esetben ha az átadott karakter betű, a visszatérési érték legyen 1, ha szám akkor 2, minden más esetben 0. A visszatérési értéket tároljuk, majd értékének megfelelően írjuk ki a képernyőre, hogy mi volt a megadott karakter! - Szervezzünk függvényt, melyben egy paraméterben megadott karaktert kell átalakítani. Ha a megadott karakter kisbetű, alakítsa át nagybetűre, ha a karakter nagybetű, alakítsa át kicsire. Egyéb karakter esetén a függvény adja vissza az eredeti karaktert. Az így kapott visszatérési értéket tároljuk megfelelő típusú változóban, és írassuk ki azt! 13

15 11. Sztring Ha megértettük a tömbök és a függvények használatát, akkor itt az ideje, hogy rátérjünk a vizsgák alappillérét jelentő sztringekre. A sztring egy karakterekből álló tömb. Ez azt jelenti, hogy több betűt, számot és írásjelet (karaktereket) egymás után tudunk rakni, amiből következik, hogy egész szavakat, mondatokat tudunk vele tárolni. Karaktereket a getchar() függvénnyel kértünk be, ennél azonban van jobb megoldás tömbökre. Írhatnánk saját függvényt is erre a célra, de erre már van egy jól bevált, a vizsgán is használható előre elkészített függvényünk, a getline(). A getline() függvénynek a visszatérési értéke a megadott karakterlánc hossza, éppen ezért a paraméterben megadott tömbbe fogja beletölteni azt, amit bekéréskor beírtunk. Mivel nem beépített függvényről van szó, így a prototípust a main elé kell másolni. A bekérés után kezelhetjük karaktertömbként is a beolvasott adatot, de van rá sok előre elkészített fügvvény, ezeket a string.h fejfájlban találjuk meg. A kiíratás a már említett módon, %s-sel lehetséges. A sztringek végét egy lezáró nulla (\0) jelzi, hogy a sztringkezelő függvények tudják, hol kell megállni. A lezáró nulla egy láthatatlan (fehér) karakter. Sajátkezű feldolgozáskor mindig a lezáró nullánál találjuk meg a lánc végét. (A getline() függvény elérhető az Előszó bekezdéspontban feltüntetett linken.) 13. Egy sor bekérése és kiíratása Kérdések: char szo[5] szo[0] szo[1] szo[2] szo[3] szo[4] A L M A \0 - Miért int a getline() visszatérési értéke? Miért nem tettük a függvényt egyenlővé egy int típusú változóval, ha tudjuk, hogy visszatér egy értékkel? - Mit jelent az int n bemenő paraméter? - Mekkora tömböt kell felvennünk egy 20 karakterből álló mondathoz? Mi a hiba a képen? Hogyan lehetne orvosolni a hibát? - Hogyan tudhatjuk meg egy bevitt karakterlánc hosszát? - Mi az a define? Miért van mindenhová MAX írva? 14

16 A sztringek kezelésére rengeteg függvény és eljárás meg van írva a string.h fejfájlban. Ezekkel a szubrutinokkal a bemenő (input) adatokat tudjuk ellenőrizni, illetve azokat a karakterláncokat, amelyek a feladat során eredményként előállnak. Lássuk, miket kell tudnunk használni: strlen strcmp strncmp strcpy strncpy A sztring hosszát adja vissza (int érték). Két sztringet hasonlít össze. Ha nincs eltérés, vagyis a két sztring megegyezik, akkor a visszatérési érték 0 (int). Két sztringet hasonlít össze, ám ezúttal csak az első n karaktert vizsgálja (paraméterként kell megadni) Sztringet másol Sztringet másol egy megadott karakterhatárig Ezen felül a sztringek bekérésére szolgáló getline() függvényünk visszatérési értéke is használható a megadott karakterlánc hosszának ellenőrzésére. Fontos tudni, hogy a lezáró nulla nélküli karakterláncokat ezekkel a függvényekkel nem tudjuk ellenőrizni, hiszen mindegyik a lezárást keresi a karakterek között. Ebből következik, hogy ha a lezáró nulla után állnak még karakterek, akkor ezeket nem veszik figyelembe a fent említett függvények. Kérdések: - Határozzuk meg az egyes függvények paramétereit. Határozzuk meg melyik paraméter mire szolgál és hogy a visszatérési érték az egyes esetekben mit jelent! - Mit ír ki a program, ha a következő karakterláncot íratjuk ki vele: abc\0def? - Melyik függvényt válasszuk, ha azt szeretnénk igazolni, hogy az általunk megadott karakterlánc első három karaktere az 123 karakterlánc? - Miért kell a getline() függvényben 1 karakterrel kevesebbet bekérni, mint amennyi a tömbünkbe beleférne? Feladatok: - getline() függvénnyel kérjünk be egy maximum 20 karakter hosszú karakterláncot (a függvényt megtaláljátok az Előszó fejezetben feltüntetett linken). Ezt a láncot egy 21 elemű tömbbe kérjük be, amit define segítségével rögzítsünk! Ellenőrizzük le a karaktersort! Írassuk ki a hoszszát, valamint hasonlítsuk össze az 123 karaktersorral! (Felvehető változóként is, de megadható sztring formátumban, például: valami ) - Vegyünk fel két karaktertömböt, majd az egyikbe kérjünk be egy sor karaktert. Az így keletkezett sztringet másoljuk át a másik tömbbe, majd írassuk ki azt! - Az előző feladaton módosítsunk úgy, hogy csak az első 5 karaktert másolja át a programunk! Hogyan lehet máshogy megoldani, ha nem függvényt használunk rá? - Készítsünk saját függvényt, ami hasonló módon működik mint a strlen, azaz számolja össze a bekért karakterlánc karaktereinek számát! 15

17 12. Típuskonvertálás Ha belegondolunk, hogy be kell kérnünk egy float vagy double számot, hogyan tennénk? Vagy ha csak egy sima int számot? Persze a getchar() függvénnyel meg tudunk adni, de azzal csak egy számjegyet tudnánk bekérni, mivel 1 karaktert vár inputként. getline() segítségével pedig lehet többet is megadni. Nézzük meg, hogyan kérhetünk be egy tetszőleges számot. Az átalakítás sztringből készít int illetve float típust. Az átalakításokért felelős függvényeket az stdlib.h fejfájl tartalmazza, tehát ennek bekapcsolásáról gondoskodnunk kell, mielőtt a függvényeket használatba vennék. A két átalakító függvény a következő: i=atoi(tomb) f=atof(tomb) Egy sztringet alakít át int típusúvá. A képletben az i egy int típusú változó, tomb a sztringünk. Egy sztringet alakít át float típusúvá. A képletben az f egy float típusú változó, tomb a sztringünk. Ezeket a függvényeket kizárólag ideális vagy ellenőrzött környezetben használhatjuk.az ideális alatt azt értjük, hogy a felhasználó biztosan nem téveszti el az inputot (tehát szám bekérésénél nem más karaktereket fog megadni). Az ellenőrzött környezetben mi magunk ellenőrizzük le, hogy a megadott lánc csak szám, illetve float esetén legfeljebb 1 pontot (és csak is pont karaktert) tartalmaz. A vizsgákon csak a második eset fog előfordulni, azaz alapból a feltételezés az, hogy rossz adatot adnak meg, hibás az input. Ebben a fejezetben ettől most eltekintünk. Most azonban nézzünk két egyszerű meghívást a két függvényre: 14. Sztring konvertálása A két példaprogram kizárólag akkor ad helyes átalakított értéket, ha a számok között nincs semmilyen egyéb karakter float esetén pedig csak a pontot fogadja el tizedesvesszőként. A helytelen adatokra a visszatérési érték nulla. Ebből láthatjuk, hogy szükség van ellenőrzésre, és esetenként átalakításokra is. Feladatok: - Írjunk programot, mely bekér 5 darab 10-nél nagyobb vagy egyenlő és 1000-nél kisebb egész számot. A program a bekéréshez a getline() függvényt használja. A bekért adatot tároljuk el egy karaktertömbben, majd ezt alakítsuk át int értékké. Az egyes értékeket tároljuk el egy egész tömbben majd a bekérés végeztével írassuk ki a tömböt! - Írjunk olyan programot, mely bekér 3 darab valós számot, és ezekből átlagot von. A megadott valós szám működjön vesszős és pontos tagolással is. 16

18 13. Sorbarendezés, maximum-minimum kiválasztás A későbbiek során sokszor lesz szükségünk egy sorba rendezett tömbre. Egy tömböt sorba rendezni igen egyszerű. Nem kell más hozzá, mint két ciklus, egy feltétel, és az indexelésekkel kapcsolatos alapfogalmak. Sokféle rendező algoritmus létezik, ami most bemutatásra kerül az talán az egyik legegyszerűbb. A képen szereplő példafeladatban egy 5 elemű egésztömbünk volt, amit előre feltöltöttünk véletlenszerű számokkal. A rendezés a következők szerint zajlott: az első ciklus 0-tól indul, és a tömb vége előtt 1-gyel áll meg, míg a második ciklus változója (j) mindig az i aktuális értékéhez képest 1-gyel nagyobb értéket vesz fel, innen indul, és a tömb végéig megy. Így az i viszonylag lassan növekszik, míg j mindig újra és újra növekedni kezd. Ezáltal ez a két ciklusváltozó remekül használható a tömbünk indexelésére, a tömbünkben lévő két érték összehasonlítására, és ezáltal a sorrend kialakítására. A két érték vizsgálatánál mindig az adott sorrend kialakításához szükséges feltételt nézzük (kisebb vagy nagyobb). Ha (a példán keresztül nézve) a tomb[j] kisebb mint a tomb[i] (azaz egy, a tömbben később szereplő érték kisebb mint az előbb szereplő), 15. Buborékrendezés akkor a kettőt kicserélve megoldottuk a problémát. A kicseréléshez szükségünk van egy átmeneti tárolóra, hiszen ha egyből felülírnánk valamelyik tömbelemet, akkor annak tartalma elveszne. Így előtte mindenképpen mentsük el az egyik tömbelemet, hogy az értékadás után az visszaállítható legyen. Ezt az eljárást alkalmazva a tömbünk elejére kerülnek a kisebb számok, míg a hátsó részbe a nagyobbak. Természetesen innen már könnyű megtalálni a minimum vagy maximum értéket, hiszen biztos, hogy az a sorbarendezett tömbünk egyik végében lesz. Van azonban olyan helyzet, amikor a tömbünk sorrendjén nem vátoztathatunk, de mégis meg kell tudnunk, melyik volt a maximum, vagy a minimum érték, és hogy mi volt az. Erre egy még egyszerűbb algoritmus áll rendelkezésünkre, nem kell más hozzá, csak egy ciklus és egy feltétel. Tegyük fel, hogy a tömb első (index szerint nulladik) eleme a legnagyobb. Ha tényleg az volt, akkor eltaláltuk, ha nem, akkor az algoritmus majd talál nagyobbat nála. A ciklus végigfut a tömbön, és ha a jelenlegi maximumnál nagyobbat talál, akkor a max változóba belerakja az aktuális maximumot. A maxi változó pedig a maximumunk helyét (indexét) fogja jelezni a tömbünkben, így bármikor hivatkozhatunk rá (például olyan kérdésnél, hogy hányadik elem volt a legkisebb a tömbben). 16. Szélsőérték kiválasztás 17

19 14. Inputellenőrzés Ha elsajátítottuk az eddigi fejezetek anyagát, akkor rátérhetünk a tárgy lelkét jelentő inputellenőrzésekre. Inputok ellenőrzésére azért van szükség, hogy a megadott adatok biztosan helyesek legyenek formailag és tartalmilag is. A feladatok nagy többsége ugyanazon sablonra épül, hasonlóképpen járunk el mindegyik esetben. Próbáljuk meg akövetkező feladatot megoldani: Feladat: - Kérjünk be legfeljebb három darab (minimum 6 maximum 15 karakterből álló) vezetéknév-keresztnév párost! Ellenőrizzük le a bemenő adatot! A következő kritériumoknak kell teljesülnie: nem szerepelhet benne szám, írásjel és a nevek kezdőbetűi nagybetűk. A túl kevés vagy túl sok karakterről, és a hibás névről tájékoztassuk a felhasználót, majd kérjünk be helyette új adatot! Az egyes nevek ellenőrzése után kérjünk be egy életkort is! Ezt is ellenőrizzük le az alábbiak alapján: minimum 18 és maximum 101 lehet az érték, nem lehet benne írásjel és számon kívül semmilyen karakter sem! Az esetleges hibákról tájékoztassuk a felhasználót, hiba esetén kérjük be újra az adatot! Ha helyes input adat került megadásra, a program írja ki a megadott nevet és a hozzá tartozó életkort. Ha a vezetéknévnek üres sort adunk meg, a program lépjen ki. Első ránézésre nehéznek tűnhet a feladat, azonban egy egyszerű szerkezet alapján és az elsajátított ismereteinkre támaszkodva könnyedén megoldhatóak ilyen és ehhez hasonló feladatok. Alapvetően az ilyen feladatok vázát a do while ciklus adja. Nem csak azért használjuk ezt, mert adatbekérésre ez a legkényelmesebb, hanem mert logikai kapcsolókat használva könnyedén kezelhetünk bármit a cikluson belül, hiszen az egyes bekérésektől a vezérlés csak akkor jut ki ha a kapcsolót átváltjuk. Ezt a kapcsolót pedig csak akkor váltjuk át, ha a megadott input megfelel nekünk, vagy ki szeretnénk lépni a bekérésből. Ilyen kapcsolóval látjuk el a három do while ciklusunk feltételét (két név bekérés plusz az életkor bekérése). Az első ciklusban a nevet kérjük be, és elágazásokkal ellenőrizzük annak megfelelőségét. Először mindig azt vizsgáljuk, hogy mik lehetnek a hibák. Ebből következik hogy az utolsó, else ágban lesz az az eset, amikor minden követelménynek megfelel az input, és a kapcsolót átválthatjuk. Hasonlóképpen járunk el a másik névnél és az évszámnál is. Ezt a három ciklust bele kell foglalnunk egy nagy do while ciklusba, hiszen három jó bekérés után vagy névnél üres sor esetén ki kell tudnunk lépni. Ez esetben érdemes ide is egy kapcsolót felvenni, amivel azt jelezzük, hogy ki kívánunk lépni az egész nagy ciklusból. 18

Programozás I. segédlet

Programozás I. segédlet Programozás I. segédlet Tartalomjegyzék Előszó... 2 1. Bevezetés... 3 2. Adattípusok, értékadás, egyenlőségek... 4 3. Kiíratás... 5 4. Elágazás... 6 5. For ciklus... 7 6. While, do while ciklusok... 8

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozá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észletesebben

1. Alapok. #!/bin/bash

1. 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észletesebben

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

Programozási segédlet

Programozá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észletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozá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észletesebben

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Vá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észletesebben

Programozá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. 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

Vezérlési szerkezetek

Vezé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észletesebben

Webprogramozás szakkör

Webprogramozá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észletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

5. gyakorlat. Konstansok Tömbök Stringek

5. 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észletesebben

Programozás I. gyakorlat

Programozá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észletesebben

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operá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észletesebben

Gyakorló feladatok az 1. nagy zárthelyire

Gyakorló 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észletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C 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észletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit 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észletesebben

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Programozá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észletesebben

Mutató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

Mutató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észletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

Részletesebben

Programozás alapjai 8.Gy: Program struktúra

Programozá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észletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

Programozás I. gyakorlat

Programozá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észletesebben

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

C programozás. 6 óra Függvények, függvényszerű makrók, globális és C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,

Részletesebben

Vezérlési szerkezetek. Szelekció Ciklusok

Vezé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észletesebben

6. fejezet: Ciklusok

6. fejezet: Ciklusok 6. fejezet: Ciklusok Mint a nyelvekben általában, itt is léteznek ciklusok. Az alapvető három ciklus-típus: elöltesztelő, hátultesztelő és számláló. Lássuk ezeket sorban! Elöltesztelő = while. A while

Részletesebben

Tö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 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észletesebben

A programozás alapjai 1 Rekurzió

A 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észletesebben

1. 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! 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észletesebben

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Javascript 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

Részletesebben

10. gyakorlat Tömb, mint függvény argumentum

10. 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észletesebben

Programozás alapjai 9.Gy: Struktúra 2.

Programozá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észletesebben

Programozá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 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észletesebben

Programozás alapjai 3.Gy: C elágazások, ciklusok P R O

Programozás alapjai 3.Gy: C elágazások, ciklusok P R O Programozás alapjai 3.Gy: C elágazások, ciklusok. P R O A L A G 1/39 B ITv: MAN 2018.10.08 Kövessük a kódot 1. 2. 3. 4. 5. 6. 7. 8. 9. void main() { int a, b, seged; printf("\nkerek ket egesz szamot: ");

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

SZÁMÍTÁSOK A TÁBLÁZATBAN

SZÁMÍTÁSOK A TÁBLÁZATBAN SZÁMÍTÁSOK A TÁBLÁZATBAN Az Excelben az egyszerű adatok bevitelén kívül számításokat is végezhetünk. Ezeket a cellákba beírt képletek segítségével oldjuk meg. A képlet: olyan egyenlet, amely a munkalapon

Részletesebben

Szoftvertervezés és -fejlesztés I.

Szoftvertervezés és -fejlesztés I. Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

Programozás I gyakorlat. 10. Stringek, mutatók

Programozá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észletesebben

BASH SCRIPT SHELL JEGYZETEK

BASH 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észletesebben

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Bá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észletesebben

Objektumorientált Programozás III.

Objektumorientált Programozás III. Objektumorientált Programozás III. Vezérlési szerkezetek ismétlés Matematikai lehetőségek Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor. Függvény pointer Több feladat közül futási időben döntöm el, hogy melyiket hajtom végre. A függvényre mutató pointer a függvény kódjának a címére mutat, azon keresztül meghívhatom a függvényt. A pointernek

Részletesebben

A C# PROGRAMOZÁSI NYELV

A C# PROGRAMOZÁSI NYELV A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char

Részletesebben

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10. Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,

Részletesebben

Python bevezető foglalkozás Python bevezető foglalkozás

Python bevezető foglalkozás Python bevezető foglalkozás Python bevezető foglalkozás program, programozás, programnyelvek a Python nyelv és az IDLE környezet változók és adattípusok konzol input és output (input(), print()) vezérlési szerkezetek (if/else, while)

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 5. gyakorlat Surányi Márton PPKE-ITK 2010.10.05. C++ A C++ egy magas szint programozási nyelv. A legels változatot Bjarne Stroutstrup dolgozta ki 1973 és 1985 között, a C nyelvb

Részletesebben

C string műveletek (string.h alkalmazása)

C string műveletek (string.h alkalmazása) C string műveletek (string.h alkalmazása) A 3. előadás ZH során a string.h-ban található függvények alkalmazásával kell különböző, string kezeléssel kapcsolatos feladatokat megoldani. Ehhez szükséges ezen

Részletesebben

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14. Informatika 1 2011 Második előadás, vezérlési szerkezetek Szabó Adrienn 2011. szeptember 14. Tartalom Algoritmusok, vezérlési szerkezetek If - else: elágazás While ciklus For ciklus Egyszerű típusok Összetett

Részletesebben

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Felvé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

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

II. 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észletesebben

7/8. gyakorlat Karaktertömbök és sztringkezelés

7/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észletesebben

az Excel for Windows programban

az Excel for Windows programban az Excel for Windows táblázatkezelőblázatkezel programban Mit nevezünk nk képletnek? A táblt blázatkezelő programok nagy előnye, hogy meggyorsítj tják és könnyebbé teszik a felhasználó számára a számítási

Részletesebben

3 A C programozási nyelv szintaktikai egységei

3 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észletesebben

Bevezetés a programozásba I.

Bevezeté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észletesebben

MATEMATIKAI FÜGGVÉNYEK

MATEMATIKAI FÜGGVÉNYEK MATEMATIKAI FÜGGVÉNYEK ABS Egy szám abszolút értékét adja eredményül. =ABS(32) eredménye 32, =ABS(-32) eredménye ugyancsak 32 DARABTELI Összeszámolja egy tartományban a megadott feltételeknek eleget tevő

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

2018, Funkcionális programozás

2018, 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észletesebben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Programozá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észletesebben

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Programozá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észletesebben

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Sándor Tamás, sandor.tamas@kvk.bmf.hu Takács Gergely, takacs.gergo@kvk.bmf.hu Lektorálta: dr. Schuster György PhD, hal@k2.jozsef.kando.hu

Részletesebben

Óbudai Egyetem. C programozási nyelv

Óbudai Egyetem. C programozási nyelv Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási nyelv II. Dr. Schuster György 2016. március 12. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C2016. programozási március 12. nyelv Utasításo

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 ) ;

/* 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észletesebben

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 3. gyakorlat PLanG: 2011.09.27. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok

Részletesebben

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA 1. Tízes (decimális) számrendszerből: a. Kettes (bináris) számrendszerbe: Vegyük a 2634 10 -es számot, és váltsuk át bináris (kettes) számrendszerbe! A legegyszerűbb módszer: írjuk fel a számot, és húzzunk

Részletesebben

Bevezetés a programozásba I.

Bevezeté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észletesebben

Programozás alapjai. 7. előadás

Programozás alapjai. 7. előadás 7. előadás Wagner György Általános Informatikai Tanszék Jótanács (1) Tipikus hiba a feladat elkészítésekor: Jótanács (2) Szintén tipikus hiba: a file-ból való törléskor, illetve a file-nak új elemmel való

Részletesebben

Javacript alapismeretek

Javacript alapismeretek Javacript alapismeretek Mi az a JavaScript, mire alkalmazzuk? A JavaScript egy olyan programozási nyelv, melyet eleinte direkt a HTML hiányosságainak pótlására fejlesztettek ki. Segítségével létrehozhatunk

Részletesebben

6. 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 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észletesebben

Szövegek C++ -ban, a string osztály

Szö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észletesebben

Bevezetés a programozásba

Bevezetés a programozásba Bevezetés a programozásba 1. Előadás Bevezetés, kifejezések http://digitus.itk.ppke.hu/~flugi/ Egyre precízebb A programozás természete Hozzál krumplit! Hozzál egy kiló krumplit! Hozzál egy kiló krumplit

Részletesebben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Bró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észletesebben

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Java Programozás 1. Gy: Java alapok. Ismétlés ++ Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk

Részletesebben

A C programozási nyelv I. Bevezetés

A 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észletesebben

A C programozási nyelv I. Bevezetés

A 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észletesebben

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók Dr. Bécsi Tamás 7. Előadás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza.

Részletesebben

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 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észletesebben

Programozás I gyakorlat

Programozá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észletesebben

Programozá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 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észletesebben

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből

Részletesebben

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract

Részletesebben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

Programozá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észletesebben

8. gyakorlat Pointerek, dinamikus memóriakezelés

8. 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észletesebben

Egész számok. pozitív egész számok: 1; 2; 3; 4;... negatív egész számok: 1; 2; 3; 4;...

Egész számok. pozitív egész számok: 1; 2; 3; 4;... negatív egész számok: 1; 2; 3; 4;... Egész számok természetes számok ( ) pozitív egész számok: 1; 2; 3; 4;... 0 negatív egész számok: 1; 2; 3; 4;... egész számok ( ) 1. Írd a következõ számokat a halmazábra megfelelõ helyére! 3; 7; +6 ; (

Részletesebben

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis I. ALAPALGORITMUSOK 1. Prímszámvizsgálat Adott egy n természetes szám. Írjunk algoritmust, amely eldönti, hogy prímszám-e vagy sem! Egy számról úgy fogjuk eldönteni, hogy prímszám-e, hogy megvizsgáljuk,

Részletesebben

Programozás II. segédlet

Programozás II. segédlet Programozás II. segédlet Csordás Martin V1.5 A segédletben megtalálható függvényeket eléritek a macsodev.hu oldalon. A segédlet BETA jellegű, folyamatos javítás és bővítés alatt áll. Changelog: V1 initial

Részletesebben

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

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 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észletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK 1. ELÁGAZÁSOK ÉS CIKLUSOK SZERVEZÉSE Az adatszerkezetek mellett a programok másik alapvető fontosságú építőkövei az ún. algoritmikus szerkezetek.

Részletesebben

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

1.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észletesebben

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Tartalom 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észletesebben