Programozás I. gyakorlat

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

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

Vezérlési szerkezetek

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

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

Vezérlési szerkezetek. Szelekció Ciklusok

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

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

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 I. gyakorlat

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

Programozás I gyakorlat

Programozás I gyakorlat

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

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

Megoldott programozási feladatok standard C-ben

Programozás I. házi feladat

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

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.

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

Szoftvertervezés és -fejlesztés I.

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

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

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

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

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

A C# programozási nyelv alapjai

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

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

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

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

Megoldott programozási feladatok standard C-ben

Objektumorientált Programozás III.

Webprogramozás szakkör

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

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

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)

3 A C programozási nyelv szintaktikai egységei

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

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

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

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

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

I. Specifikáció készítés. II. Algoritmus készítés

INFORMATIKA tétel 2019

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

Informatika E FAKT , = ±

INFORMATIKA javítókulcs 2016

C programozás. 1 óra Bevezetés

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

2.3. A C nyelv utasításai

Algoritmizálás + kódolás C++ nyelven és Pascalban

Java programozási nyelv

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

int tokeletes(int szam) { int i,oszto=0; for(i=1; i<szam; i++) { if(szam %i == 0) { oszto+=i; }

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

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

Programozas 1. Strukturak, mutatok

5. Gyakorlat. struct diak {

Problémaosztályok algoritmusok. Ciklusok

1. Alapok. Programozás II

Mintavételes szabályozás mikrovezérlő segítségével

BASH SCRIPT SHELL JEGYZETEK

BEKÉ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. #!

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

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

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Algoritmizálási feladatok

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 C nyelven (13. ELŐADÁS) Sapientia EMTE

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

Bevezetés a C++ programozási nyelvbe

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

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Óbudai Egyetem. C programozási nyelv

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

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

6. A Pascal nyelv utasításai

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

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

Feladatgyűjtemény a C programozási nyelvhez

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

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

Emlékeztetők. Számítástechnika 10.

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

Programozási segédlet

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

2018, Funkcionális programozás

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

A C programozási nyelv I. Bevezetés

Bevezetés az informatikába

Algoritmusok pszeudókód... 1

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

Szelekció. Döntéshozatal

Adatbázis rendszerek Gy: Algoritmusok C-ben

Átírás:

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 <stdio.h> int main() { int a = 20, b = 40; printf("%d\n", a > b); printf("%d\n", a < b); printf("%d\n", a == b); printf("%d\n", a!= b); printf("%d\n", a >= b); printf("%d\n", a <= b); return 0; }

Kifejezések Mit ír ki az alábbi program? #include <stdio.h> int main() { int a = 20, b = 40; printf("%d\n", a > b a < 30); printf("%d\n", a < b && b > 50); printf("%d\n", a = b); return 0; }

Kifejezések Vizsgáltassuk meg, hogy b értéke a és c között van-e! #include <stdio.h> int main() { int a = 10, b = 20, c = 30; printf("%d\n", a < b < c ); a = -30; b = -20; c = -10; printf("%d\n", a < b < c ); return 0; }

Kifejezések Helyesen: #include <stdio.h> int main() { int a = 10, b = 20, c = 30; printf("%d\n", (a < b) && (b < c) ); a = -30; b = -20; c = -10; printf("%d\n", (a < b) && (b < c) ); return 0; }

Elágazás Írjon programot osztályozó programot, amely bekéri egy dolgozat pontszámát, és kiírja az érdemjegyet! Ponthatárok: 0 20 : 1 21 36 : 2 37 40 : 3 41 60 : 4 60 100: 5 Nem megfelelő érték esetén írjon ki hibaüzenetet!

Elágazás #include <stdio.h> int main() { int eredmeny; printf("kerem az eredmenyt: "); scanf("%d", &eredmeny); if (eredmeny < 0) printf("nem irhat be negativ szamot!\n"); if (eredmeny > 100) printf("ennyire csak nem lett jo!\n"); if (eredmeny >= 0 && eredmeny <= 20) printf("elegtelen\n");

Elágazás } if (eredmeny >= 21 && eredmeny <= 36) printf("elegseges\n"); if (eredmeny >= 37 && eredmeny <= 40) printf("kozepes\n"); if (eredmeny >= 41 && eredmeny <= 60) printf("jo\n"); if (eredmeny >= 61 && eredmeny <= 100) printf("jeles\n"); return 0;

Ciklus Fejlesszük tovább a programot! Hibás érték esetén kérje be újra a számot! Segítség: Legalább egyszer be kell kérni az eredményt...

Ciklus #include <stdio.h> int main() { int eredmeny; do { printf("kerem az eredmenyt: "); scanf("%d", &eredmeny); if (eredmeny < 0) printf("nem irhat be negativ szamot!\n"); if (eredmeny > 100) printf("ennyire csak nem lett jo!\n"); if (eredmeny >= 0 && eredmeny <= 20) printf("elegtelen\n");

Ciklus } if (eredmeny >= 21 && eredmeny <= 36) printf("elegseges\n"); if (eredmeny >= 37 && eredmeny <= 40) printf("kozepes\n"); if (eredmeny >= 41 && eredmeny <= 60) printf("jo\n"); if (eredmeny >= 61 && eredmeny <= 100) printf("jeles\n"); } while ( eredmeny < 0 eredmeny > 100 ); return 0;

Ciklus Fejlessze tovább a programot úgy, hogy először megkérdezi, hány tanuló van, és bekéri az összes eredményt! Segítség: Ha tudjuk előre hányszor kell a ciklusmagot végrehajtani, érdemes számlálós ciklust használni.

int main() { int eredmeny; int i, mennyi; printf("mennyi diak van? "); scanf("%d", &mennyi); for (i = 0; i < mennyi; i++) { do { printf("kerem az eredmenyt: ");... } while ( eredmeny < 0 eredmeny > 100 ); } return 0; } Ciklus #include <stdio.h>

switch - case #include <stdio.h> int main() { int a = 40; switch (a) { case 0: printf("a"); case 40: printf("b"); case 60: printf("c"); } return 0; }

switch (a) { case 0: printf("a"); break; case 40: printf("b"); break; case 60: printf("c"); break; } switch - case

Struktúrák Eddig elemi adattípusokat használtunk: int, short, long double, float char Lehetőség van összetett adattípusok létrehozására is.

Struktúrák Írjunk programot, amely egy személy néhány adatát (életkor, magasság, fizetés) tárolja. Eddigi tudásunk alapján is megoldható a feladat...

int main() { int kor, fizetes, magassag; printf("kora: "); scanf("%d", &kor); printf("fizetes: "); scanf("%d", &fizetes); printf("magassag: "); scanf("%d", &magassag); printf("a kora: %d\n", kor); printf("a fizetese: %d Ft\n", fizetes); printf("a magassaga: %d cm", magassag); return 0; } #include <stdio.h> Struktúrák

Struktúrák Definiáljunk egy új adattípust, amely 3 elemi adattípusú értéket tárol: struct Szemely { int kor, fizetes, magassag; }; struct Szemely { int kor, fizetes, magassag; } bela;

Struktúrák struct Szemely valaki; printf("kora: "); scanf("%d", &valaki.kor); printf("fizetes: "); scanf("%d", &valaki.fizetes); printf("magassag: "); scanf("%d", &valaki.magassag); printf("a kora: %d\n", valaki.kor); printf("a fizetese: %d Ft\n", valaki.fizetes); printf("a magassaga: %d cm", valaki.magassag);

Struktúrák struct Szemely valaki; struct Szemely masvalaki = { 20, 100, 200 }; printf("kora: "); scanf("%d", &valaki.kor); printf("fizetes: "); scanf("%d", &valaki.fizetes); printf("magassag: "); scanf("%d", &valaki.magassag); valaki = masvalaki; printf("a kora: %d\n", valaki.kor); printf("a fizetese: %d Ft\n", valaki.fizetes); printf("a magassaga: %d cm", valaki.magassag);

Nagyobb feladat A korábbi zh eredményeket bekérő programot bővítsék ki: Hozzanak létre struktúrát, amely egy tanuló életkorát, eddigi tanulmányi átlagát és a legújabb dolgozatának pontszámát tárolja Minden tanuló esetében a két új adatot is kérje be a program Minden tanuló után kérdezze meg a program, hogy van-e még tanuló, a felhasználó az 'i' vagy 'n' karakterekkel válaszolhat (igen esetén újabb tanuló adatainak bekérése következik)

Nagyobb feladat Bővítsék ki a programot úgy, hogy számoljon átlagot, határozza meg a legnagyobb és legkisebb pontszámokat!

Feladat Írjon programot, amely megjelenít a képernyőn egy szorzótáblát! Bővítse ki a programot úgy, hogy a program kérdezze meg, hányas szorzótáblát jelenítse meg! Egészítse ki úgy, hogy azt is kérdezze meg, hogy 1-től meddig jelenítse meg a táblázatot!

Megoldás #include <stdio.h> int main() { int i; int hanyas, meddig; printf("hanyas szorzotabla? "); scanf("%d", &hanyas); printf("meddig jelenitsem meg? "); scanf("%d", &meddig); for (i = 1; i <= meddig; i++) printf("%2d * %2d = %2d\n",i,hanyas,i*hanyas); return 0; }

Feladat Írjon menüvel vezérelt számológép programot! A menüben lehessen választani a négy alapművelet, valamint a programból való kilépés között. Ha a felhasználó egy műveletet választ, akkor a program kérjen be két számot, majd végezze el a választott műveletet. Osztáskor ellenőrizze, hogy az osztó nem nulla, ha mégis, akkor kérje be az osztót újra, amíg helyes értéket nem írunk be.

Megoldás #include <stdio.h> int main() { int menu; double a, b; do { printf("osszeadas: 1\n"); printf("kivonas: 2\n"); printf("szorzas: 3\n"); printf("osztas: 4\n"); printf("kilepes: 5\n"); scanf("%d", &menu);

Megoldás if (menu >= 1 && menu <= 4) { printf("az elso szam: "); Scanf("%lf", &a); printf("a masodik szam: "); scanf("%lf", &b); } switch (menu) { case 1: printf("az osszeg: %g\n", a + b); break; case 2: printf("a kulonbseg: %g\n", a - b); break;

Megoldás case 3: printf("a szorzat: %g\n", a * b); break; case 4: while (b == 0.0) { printf("uriember nem oszt 0-val, kerek uj osztot! "); scanf("%lf", &b); } printf("a hanyados: %g\n", a / b); break; case 5:

Megoldás } printf("kilepes\n"); break; default: printf("ilyen menupont nincs!\n"); } } while (menu!= 5); return 0;

Feladat Az előző programot lássa el még több funkcióval, például: Lehessen választani decimális, oktális és hexadecimális megjelenítés között (segítség: printf()) Tudjon százalékot számolni Számoljon abszolút értéket Számoljon reciprokot Számolja ki egy szám faktoriálisát (segítség: for ciklussal) Számolja ki egy szám egész kitevős hatványát ciklussal

Néhány megoldás printf("minek a faktorialisa? "); scanf("%d", &num); fact = 1; for (i = 2; i <= num; i++) fact *= i; printf("a faktorialis: %d\n", fact); int a, b, i, p = 1; printf("hatvany alap: "); scanf("%d", &a); printf("kitevo: "); scanf("%d", &b); for (i = 1; i <= b; i++) p *= a; printf("a hatvany: %d\n", p);

Feladat Írjon egyszerű kalandjátékot, amely a következőképpen működik: A játék helyszínekből áll, minden helyszínen kiír a képernyőre egy rövid szöveget, amelyben leírja, hogy a játékos éppen hol van, mit lát, stb. A játékos egyszerű menü segítségével választhat néhány lehetőség közül, majd a választásnak megfelelően megy tovább a következő helyszínre.

Feladat Az előző programot fejlessze tovább úgy, hogy a játékosnak bizonyos tulajdonságai is legyenek (életerő, ügyesség, stb.), ezeket tárolja struktúrában. A program jegyezze meg, hogy a játékos milyen tárgyat, kulcsot stb. talált meg, és ez legyen hatással bizonyos helyszíneken a történetre (például a várkastély pincéjében egy ajtón csak akkor engedjen be a program, ha a játékos már megtalálta hozzá a kulcsot).

Folyamatábra Valósítsa meg a következő dián látható folyamatábrát a tanult vezérlési szerkezetek segítségével. A kérdéseknél a program scanf()-el olvassa be a választ, a kijelentő mondatokat pedig írja ki a képernyőre.

Folyamatábra