C változók. Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! int main() {

Hasonló dokumentumok
Vezérlési szerkezetek

Vezérlési szerkezetek. Szelekció Ciklusok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás I. gyakorlat

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Megoldott programozási feladatok standard C-ben

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

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 9.Gy: Struktúra 2.

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

5. gyakorlat. Konstansok Tömbök Stringek

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

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

11. 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.

Informatika terméktervezőknek

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás I. gyakorlat

Programozás II. 2. Dr. Iványi Péter

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

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

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája:

Bevezetés a programozásba I.

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

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Webprogramozás szakkör

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

Programozás I gyakorlat

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

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

A C# programozási nyelv alapjai

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

1. Írjunk programot mely beolvas két számot és ellenőrzi hogy mindkét szám zérus-e:

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. Függvények. Függvények(2)

Programozás I gyakorlat

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

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

Stack Vezérlés szerkezet Adat 2.

Programozás C és C++ -ban

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Programozás 1. Dr. Iványi Péter

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

3 A C programozási nyelv szintaktikai egységei

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

7. gyakorlat Sorozatok, Fájlkezelés

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

S z á m í t ó g é p e s a l a p i s m e r e t e k

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

Szoftvertervezés és -fejlesztés I.

Bevezetés a C++ programozási nyelvbe

Internet programozása. 3. előadás

6. A Pascal nyelv utasításai

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

Java II. I A Java programozási nyelv alapelemei

Adminisztrációs feladatok Strukturált programok A C programnyelv elemei

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

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

Bevezetés a programozásba I.

Programozás 5. Dr. Iványi Péter

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

2.3. A C nyelv utasításai

C programozás. 1 óra Bevezetés

3. ZH-ban a minimum pontszám 15

1. Alapok. #!/bin/bash

INFORMATIKA tétel 2019

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

Programozás I. 5. Előadás: Függvények

B I T M A N B I v: T M A N

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

Algoritmusok pszeudókód... 1

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

értékel függvény: rátermettségi függvény (tness function)

Programozás C++ -ban 2007/1

Adatbázis rendszerek Gy: Algoritmusok C-ben

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

Programozás 3. Dr. Iványi Péter

Java II. I A Java programozási nyelv alapelemei

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

INFORMATIKA javítókulcs 2016

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.

Algoritmusok pszeudókód... 1

Programozás 6. Dr. Iványi Péter

OOP: Java 1.Gy: Java alapok

main int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Tartalomjegyzék Algoritmusok - pszeudókód

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

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

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Átírás:

C változók Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! float valos; char karakter; int egesz1, egesz2; /* Tobb valtozo ugyan olyan tipusu lehet, ezek deklaraciojat csoportosthatjuk. */

C valtozok, ertekadas Feladat: Inicializald a valos erteket 3.14 -re, a karaktert a nagy A karakterre, es muvelettel adj erteket a ket egesz valtozonak is. float valos = 3.14; /* A pont a hatarolo karakter */ char karakter = 'A'; /* Egy darab karaktert a ' jelek koze rakunk */ int egesz1, egesz2; egesz1 = 3; /* Az ertekadas jele az = es ez egy muvelet */ egesz2 = 5;

C deklaracio Feladat: Probald ki, mi tortenik, ha ket deklaracio koze mondjuk egy ertekadas muveletet szursz! float valos; valos = 3.14; char karakter; karakter = 'A'; int egesz1=3, egesz=5; C-ben a deklaracio a blokk elejen kell, hogy legyen! Meg kell kulonboztetni az inicializalast az ertekadastol! Az inicializalas a deklaracio (elhagyhato) resze, az ertekadas viszont mar muvelet!

C deklaracios hiba I. Feladat: Irj egy programot, amelyben van plusz ket blokk. Mindegyik deklaraljon egy-egy sajat valtozot. Probald ki, hol tudsz a programban ezekre hivatkozni! (blokkhiba.c) int elso; elso = 3; { int masodik; Elso = 6; masodik = 5; { int harmadik; Elso = 9; masodik = 10; harmadik = 8; masodik = 15; harmadik = 16; Feladat: Nezzuk meg, mely sorokban voltak hibak! Javitsuk ezeket!

C input/output Az input/output fuggvenykonyvtar hasznalatahoz be kell toltenunk az stdio.h-t, a fajl elejen lehetoleg: Linuxon az osszes fejlec fajl az /usr/include alatt van. A gcc-nek tovabbi fejlec konyvtarakat adhatunk meg a -I kapcsoloval. Pl. ha azt szeretnenk tudni, hogy az fscanf fuggveny melyik fejlec fajlban talalhato (mert mondjuk eppen ezt szeretnenk include-olni), akkor kiadhatjuk a: grep fscanf /usr/include/ -R -w parancsot.

Input/Output muveletek Kiiras stdout-ra printf(formatum, parameterek); Beolvasas stdin-rol scanf(formatum, parameterek);

printf(formátum, paraméterek) formatum Konstans szovegek Beagyazott formatum tag-ek, melyek a soron kovetkezo parameterrel lesznek helyettesitve. A parameterek szamanak legalabb annyinak kell lenni, mint a beagyazott tag-ek szama. A formatum prototipusa: %[flags][width][.precision][length]specifier A prototipus bővebb leirasa itt: http://www.cplusplus.com/reference/clibrary/cstdio/printf

Printf Feladat: Irasd ki az 'X' karaktert, a 2007 egesz es a 3.1415 valos szamokat, illetve a "Szoveg kiiratasa sztringet. Mindegyiket uj sorba! printf("szöveg kiíratása\n"); printf("%c\n", 'X'); printf("%d\n", 2007); printf("%f\n", 3.1415); printf("%s", "Szöveg másként\n");

Scanf(formátum, paraméterek) formatum Beolvasas formazott inputbol. Beagyazott formatum tag-ek, melyek a soron kovetkező parameternek lesznek ertekul adva. A parameterek szamanak legalabb annyinak kell lenni, mint a beagyazott tag-ek szama. A formatum prototipusa: %[*][width][modifiers]type http://www.cplusplus.com/reference/clibrary/cstdi o/scanf/

Scanf Feladat: Olvass be egy egesz, egy valos es egy karakter erteket, majd irasd ki oket! int egesz; float valos; char karakter; printf("kérek egy egész számot: "); scanf("%d", &egesz); printf("kérek egy valós számot: "); scanf("%f", &valos); printf("kérek egy karaktert: "); scanf("%c", &karakter); printf("az eltárolt egész szám: %d\n", egesz); printf("az eltárolt valós szám: %f\n", valos); printf("az eltárolt karakter: %c\n", karakter);

C beolvasas kiiratas Fontos, hogy ha beolvasunk, akkor a & jel ott legyen a valtozo neve elott, mert a scanf egy memoriacmet var, es kulonben a valtozo erteket venne memoriacmnek, nem pedig a valtozo memoriacmet. Kivetel: char*, azaz sztring tpus, mert arra eleve memoriacmmel (pontosabban pointerrel, azaz mutatoval) hivatkozunk. Erdemes a megfelelo tpusu ertekekhez a megfelelo %-os formatumot hasznalni. Persze ennek ellenere is mukodhet a programunk, es neha van is ertelme (pl. ha egy karaktert a decimalis ASCII kodja alapjan akarunk bekerni).

Konverzios karakterek vs. tipusok Feladat: Deklaralj es inicializalj egy egesz, egy valos es egy karakter valtozot. Irasd ki mindharom erteket egeszkent, valoskent es karakterkent is! int egesz = 13; float valos = 0.1234567890123456789; char karakter = 'A'; printf("egész egészként kiírva: %d\n", egesz); // 13 printf("valós egészként kiírva: %d\n", valos); // 1069521629 printf("karakter egészként kiírva: %d\n", karakter); // 65 printf("egész valósként kiírva: %f\n", egesz); // 0.000000 printf("valós valósként kiírva: %f\n", valos); // 0.123457 printf("karakter valósként kiírva: %f\n", karakter); // 0.000000 printf("egész karakterként kiírva: %c\n", egesz); // printf("valós karakterként kiírva: %c\n", valos); // Ý printf("karakter karakterként kiírva: %c\n", karakter); // A

Tobbszoros beolvasás Feladat: Olvass be kozvetlenul egymas utan egy karakter, egy egesz es meg egy karakter erteket! A hasznalt valtozokat inicializald! int egesz = 0; char k1 = 'X', k2 = 'Y'; printf("beolvasás (karakter egész karakter): "); scanf("%c%d%c", &k1, &egesz, &k2); printf("egesz = %d; k1 = '%c'; k2 = '%c';\n", egesz, k1, k2);

Fuggvenyek Egyszeru fuggveny alakja: visszateresi_ertek_tipusa fuggveny_neve (p1_tipusp1_nev,...) { fuggveny_torzs; return visszateresi_ertek; Ha a visszateresi_ertek_tipusa void, akkor a return elmaradhat. Hívása: fuggveny_neve(p1, p2,...);

Fuggvenyek Feladat: Írj egy függvényt, aminek nincs paramétere, és visszaadja e értékét 4 tizedesjegy pontossággal (2.7182). Írasd ki ezt! float e() { return 2.7182; printf("e = %f\n", e());

C globalis es lokalis valtozok I Tekintsuk az alabbi programot! (globals.c) int globalis = 0; int fuggveny(int parameter) { int lokalis = 0; lokalis += parameter; globalis += parameter; return lokalis;

C globalis es lokalis valtozok I int i; scanf("%d", &i); printf("lokalis == %d\nglobalis == %d\n", fuggveny(i), globalis); scanf("%d", &i); printf("lokalis == %d\nglobalis == %d\n", fuggveny(i),globalis); scanf("%d", &i); printf("lokalis == %d\nglobalis == %d\n", fuggveny(i),globalis); Feladat: Probaljuk ki, fordul-e a program, ha a main fuggvenyben megprobaljuk felhasznalni a lokalis valtozot! Feladat: Mi tortenik, ha a globalis-t csak a fuggveny utan deklaraljuk?

C fuggveny feladatok I int muvelet(int, int); int a, b; printf("kerek ket egesz szamot: "); scanf("%d %d", &a, &b); printf("az eredmeny: %d\n", muvelet(a, b));

C fuggveny feladatok II. Feladat: Egesztsd ki a muvelet fuggveny denciojaval ugy, hogy a program altal kirt eredmeny: a ket szam osszege legyen! a ket szam kulonbsege legyen (elsobol a masodik)! a ket szam szorzata legyen! a ket szam egeszosztas szerinti hanyadosa legyen (elso per masodik)! a ket szam egeszosztasanak maradeka legyen (elso per masodik)!

Feladatok Irj egy programot, ami kirja, hogy Hello Vilag!! kirja egy altalad valasztott vers elso versszakat! kirja egy altalad valasztott vers elso negy versszakat, a versszakokat egy-egy ures sorral elvalasztva! beker egy egesz szamot, majd kirja azt! beker egy valos szamot, majd kirja azt!

Feladatok beker ket egesz szamot, majd kirja az osszeguket! beker ket egesz szamot, majd kirja a kulonbseguket (elsobol a masodik)! beker ket egesz szamot, majd kirja a szorzatukat! beker ket egesz szamot, majd kirja az egeszosztas szerinti hanyadosukat (elso per masodik)! beker ket egesz szamot, majd kirja az egeszosztas maradekat (elso per masodik)! beker ket valos szamot, majd kirja az osszeguket! beker ket valos szamot, majd kirja a kulonbseguket (elsobol a masodik)! beker ket valos szamot, majd kirja a szorzatukat!

C operatorok (nem teljes lista) == Egyenlo! = Nem egyenlo < Kisebb > Nagyobb <= Kisebb, vagy egyenlo >= Nagyobb, vagy egyenlo! Tagadas Logikai vagy && Logikai es A 0 szamot hamisnak, a nem nulla szamokat igaznak tekintjuk.

Egy szam paritasanak eldontese Feladat: Keszts egy programot, ami beker egy egesz szamot es kirja, hogy az adott szam paros vagy paratlan-e. (paros.c) int x; printf("kerek egy egesz szamot:"); scanf("%d", &x); if (x % 2 == 0) printf("a megadott szam paros.\n"); else printf("a megadott szam paratlan.\n");

Oszthatosag Feladat: Modostsuk most a programot ugy, hogy ket egesz szamot kerjen be a program majd rja ki, hogy az elso szam oszthato-e a masodikkal (osztoja.c)! int x, y; printf("kerek egy egesz szamot:"); scanf("%d", &x); printf("kerek egy masik egesz szamot:"); scanf("%d", &y); if (x % y!= 0) { printf("%d nem osztoja %d-nek.", y, x); else { printf("%d osztoja %d-nek.", y, x); Probaljuk ki, mi tortenik, ha a masodik szam 0!

Oszthatosag int x, y; printf("kerek egy egesz szamot:"); scanf("%d", &x); printf("kerek egy masik egesz szamot:"); scanf("%d", &y); if (y == 0) { printf("nullaval nem osztunk!\n"); else { if (x % y!= 0) { printf("%d nem osztoja %d-nek.", y, x); else { printf("%d osztoja %d-nek.", y, x);

Oszthatosag, IF nelkul Feladat: Irjuk meg if nelkul a fenti programot! (esvagy.c) int x, y; printf("kerek egy egesz szamot:"); scanf("%d", &x); printf("kerek egy masik egesz szamot:"); scanf("%d", &y); (y!= 0) printf("nullaval nem osztunk!\n"); (y!= 0) && (x % y == 0) && printf("%d osztoja %d-nek.", y, x); (y!= 0) && (x % y!= 0) && printf("%d nem osztoja %d-nek.", y, x);

Paritas, felteteles kifejezessel Feladat: Irjuk ki egyetlen printf segtsegevel, hogy egy szam paros vagy paratlan-e! (paros cond.c) int x; printf("kerek egy egesz szamot: "); scanf("%d", &x); printf("a szam %s.\n", (x % 2 == 0)? "paros" : "paratlan"); Hazi feladat: Irjuk ki egyetlen printf hasznalataval, hogy egy szam osztoja-e egy masiknak!

paritas eldontese, egymasba agyazott felteteles kifejezessel A felteteles kifejezeseket egymasba is agyazhatjuk. int main () { int x; printf("kerek egy egesz szamot: "); scanf("%d", &x); printf("kerek egy masik szamot: "); scanf("%d", &y); printf("osztoja-e %d-nek %d?. %s\n", x, y,. (y == 0)? "A kerdes ertelmetlen!" : ((x % y == 0)? "Igen, osztoja." : "Nem, nem osztoja. ));

C felteteles elagazas(switch) Feladat: rjunk egy fuggvenyt, ami egy x egesz szamot kap parameterkent es kirja, hogy a het x. napja milyen nap. void hetnapja_if (short int x) { if (x==1) { printf("hetfo\n"); else if (x==2) { printf("kedd\n"); else if (x==3) { printf("szerda\n"); else if (x==4) { printf("csutortok\n"); else if (x==5) { printf("pentek\n"); else if (x==6) { printf("szombat\n"); else if (x==7) { printf("vasarnap\n");

Feladat: rjuk meg ugyanezt a fuggvenyet switch hasznalataval! void hetnapja_switch (short int x) { switch (x) { case 1: printf("hetfo\n"); break; case 2: printf("kedd\n"); break; case 3: printf("szerda\n"); break; case 4: printf("csutortok\n"); break; case 5: printf("pentek\n"); break;

C felteteles elagazas(switch) Kerdes: Hogyan kellene modostani a fuggvenyt akkor, ha szamok helyett a napok kezdobetuit szeretnenk hasznalni? Kerdes: Mukodne-e ugyanez akkor, ha egesz v. karakter tpusu valtozo helyett pl. float vagy double tpusu valtozo lenne a switch felteteleben? Feladat: Modositsd a parameter tpusat unsigned int-rol float-ra, keszts egy main fgvt, ami meghvja a hetnapja_switch(4.0)-t! Feladat: Nezzuk meg mi tortenik, akkor ha elhagyjuk a csutortok es a pentek napok utan a break utastast. a korabban elkesztett main fuggvenyunkben hivjuk most meg a hetnapja_switch fuggvenyt a 4,5 es 6 parameterekkel!

C ciklus(while) Feladat: rjunk egy programot, ami kirja 1-tol 10-ig szamokat! (while1.c) int i = 1; while (i <= 10) { printf("%d\n", i++);

C ciklus(while) Feladat: Irjunk olyan prgramot, ami addig ker be szamokat a billentyuzetrol, amg a beirt szam nem 0! (0 az adott vegjel) int x; printf("kerek egy szamot (kilepeshez: 0):");. scanf("%d", &x); while (x!= 0) { printf("kerek egy szamot (kilepeshez: 0):");. scanf("%d", &x);

C ciklus(while) Feladat: Modostsuk a programot ugy, hogy vegeredmenykent rja ki a beirt szamok osszeget! (while3.c) int x; int osszeg = 0; printf("kerek egy szamot (kilepeshez: 0):"); scanf("%d", &x); while (x!= 0) { osszeg += x; printf("kerek egy szamot (kilepeshez: 0):"); scanf("%d", &x); printf("a szamok osszege: %d\n", osszeg);

C ciklus(while) Feladat: Modostsuk a programot ugy, hogy vegeredmenykent rja ki a beirt szamok osszeget! (while4.c) int x; int osszeg = 0; while (1) { printf("kerek egy szamot (kilepeshez: 0):"); scanf("%d", &x); if (x == 0) { break; else { osszeg += x;

C ciklus(do-while) Feladat: Irjunk egy olyan programot do-while ciklus segtsegevel, ami 0 vegjelig keri be szamokat, majd kiirja azok osszeget. A ciklusban ne szerepeljen a break utastas! (dowhile.c) int x; int osszeg = 0; do { printf("kerek egy szamot (kilepeshez: 0):"); scanf("%d", &x); osszeg += x; while (x!= 0); printf("a szamok osszege: %d\n", osszeg);

For ciklus Feladat: Irjunk egy programot, ami osszeszorozza 1-10-ig a szamokat! (for1.c) int i; int szorzat; for (i=1, szorzat=1; i <= 10; ++i) { szorzat *= i; printf("a szamok szorzata: %d\n", szorzat);

For ciklus Feladat: Hogyan nezne ki ugyanez a program while ciklussal? (for2.c) int i; int szorzat; i = 1; szorzat = 1; while (i <= 10) { szorzat *= i; ++i; printf("a szamok szorzata: %d\n", szorzat);

For ciklus Feladat: Modostsuk a for ciklust ugy, hogy csak minden 3- mal oszthato szamot szorozzon ossze! (for3.c) int i; int szorzat; for (i = 3, szorzat = 1; i <= 10; i += 3) szorzat *= i; printf("a szamok szorzata: %d\n", szorzat);

For ciklus Feladat: Probaljuk ki mit csinal az alabbi for ciklus: int i, j, out; for (i = 1, j = 100, out = 0; i <= 10; i++, j--) out += i * j; Feladat: Modostsuk a ciklusmagot ugy, hogy egy printf segtsegevel kirjuk az i,j es out aktualis erteket!

Feladatok Tovabbi feladatok a /pub/progalap/gyakorlat/gyak05/ alatt.