11. fejezet: Tömbök gyakorlati használata példákkal

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

Maximum kiválasztás tömbben

Gyakorló feladatok az 1. nagy zárthelyire

6. fejezet: Ciklusok

BME MOGI Gépészeti informatika 1.

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.

Bevezetés a programozásba I.

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

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

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

9.fejezet: Függvények és külső eljárások

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

7. Strukturált típusok

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

1. Jelölje meg az összes igaz állítást a következők közül!

Gyakorló feladatok Gyakorló feladatok

1. Alapok. Programozás II

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Smalltalk 2. Készítette: Szabó Éva

Bevezetés a programozásba I.

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

A C# programozási nyelv alapjai

5. Gyakorlat. struct diak {

117. AA Megoldó Alfréd AA 117.

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

Készítette: Nagy Tibor István

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

Informatika terméktervezőknek

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

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

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

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

INFORMATIKA javítókulcs 2016

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

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

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

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

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

3. ZH-ban a minimum pontszám 15

8. gyakorlat Pointerek, dinamikus memóriakezelés

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

Programozás I. gyakorlat

BME MOGI Gépészeti informatika 6.

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

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

Webprogramozás szakkör

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

Java II. I A Java programozási nyelv alapelemei

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

Karakter- és sztringkezelő függvények, matematikai függvények

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

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

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

Bevezetés a programozásba I.

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

A C programozási nyelv III. Pointerek és tömbök.

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

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

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Bevezetés a programozásba. 9. Előadás: Rekordok

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

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

A C programozási nyelv III. Pointerek és tömbök.

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

Alkalmazott modul: Programozás

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.

Felvételi tematika INFORMATIKA

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Bevezetés a programozásba I.

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

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

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

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba I.

10. gyakorlat Struktúrák, uniók, típusdefiníciók

Szoftvertervezés és -fejlesztés I.

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

3. Gyakorlat Ismerkedés a Java nyelvvel

Programozás C és C++ -ban

Bevezetés a programozásba. 8. Előadás: Függvények 2.

BME MOGI Gépészeti informatika 13.

Algoritmizálási feladatok

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

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

Java II. I A Java programozási nyelv alapelemei

Vezérlési szerkezetek

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

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

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Tamás Ferenc: Nevezetes szögek szögfüggvényei

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

BME MOGI Gépészeti informatika 5.

C++ programozási nyelv Konstruktorok-destruktorok

3. Osztályok II. Programozás II

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

Átírás:

11. fejezet: Tömbök gyakorlati használata példákkal Már láttunk gyakorlatban vektorokat és mátrixokat (avagy tömböket). Némi ismétlésként tekintsük át őket! Deklaráció: típus név [elemszám]; Minta: int akarmi [5]; // Ez egy 5-elemű, 1-dimenziójú tömböt deklarál, melynek minden eleme egész (int) lesz. Az elemeket akár a deklaráció alkalmával is feltölthetjük. Például: int akarmi [] = 16, 2, 77, 40, 12071 ; Nem szabad elfelejteni, hogy az egyes elemekre hivatkozni a következőképpen lehet: akarmi[0] // Ez lesz 16 akarmi[1] // Ez lesz 2... Gyakorlati példában vegyünk fel két tömböt! Az egyikbe rakjuk bele az első 5 Árpád-házi király nevét, majd a másodikba az uralkodásuk idejét (től-ig). // Árpád-házi királyok #define ELVALASZT " ----- " // Deklarációs rész - értékadással string kiraly [5] = "Szent Istvan", "Orseolo Peter", "Aba Samuel", "Orseolo Peter", "I. Andras"; int uralk[6][1]; uralk[0][0]=1000; uralk[0][1]=1038; uralk[1][0]=1038; uralk[1][1]=1041; uralk[2][0]=1041; uralk[2][1]=1044; uralk[3][0]=1044; uralk[3][1]=1046; uralk[4][0]=1046; uralk[4][1]=1060; // Kiiratási rész cout <<"Elso 5 Arpad-hazi kiralyunkn"; for (int i=0;i<5;i++) cout << kiraly[i] <<ELVALASZT; //Király nevének kiírása cout << uralk[i][0] <<" - " <<uralk[i][1] <<"n"; //Uralkodási évének kiírása 1 / 14

Egyes C++ nyelvjárásokban megengedett a többszörös értékadás, tehát két változónak is ugyanazt az értéket adhatjuk, de ez sajnos itt nem lehetséges! Ettől függetlenül érdemes megnézni a többszörös értékadás ötletét, mivel így megkíméltük magunkat attól, hogy több ugyanolyan értéket egymás után többször is be kelljen gépelnünk. Kicsi kitérőként tanuljunk meg képernyőt törölni! Ehhez egy új beépülő kell, majd jöhet maga a parancs is: #include <cstdlib> // Ez lesz az új beépülő modul. //Ez pedig maga a képernyőtörlés. Most ezt a királyos programot bővítsük annyival, hogy minden uralkodó után írassuk ki, hogy hány évig uralkodott. Ez persze csak a kiíratási részt érinti. Most csak a kiíratási részt másolom ide: // Kiíratási rész cout <<"Elso 5 Arpad-hazi kiralyunkn"; for (int i=0;i<5;i++) cout << kiraly[i] <<ELVALASZT; //Király nevének kiírása cout << uralk[i][0] <<" - " <<uralk[i][1] <<"n"; //Uralkodási évének kiírása cout <<ELVALASZT <<"Uralkodas hossza: " <<uralk[i][1]-uralk[i][0] <<" ev.nn"; Még egy csavart tegyünk bele! Ugyanis kellene az is, hogy ki uralkodott a leghosszabb ideig. Ehhez be kell vezetni még pár változót, hogy munkánkat megkönnyebbítsük. Íme az (egyik lehetséges) eredmény: // Árpád-házi királyok #include <cstdlib> #define ELVALASZT " ----- " 2 / 14

// Deklarációs rész - értékadással string kiraly [5] = "Szent Istvan", "Orseolo Peter", "Aba Samuel", "Orseolo Peter", "I. Andras"; int uralk[6][1]; int hossz[6]; uralk[0][0]=1000; uralk[0][1]=1038; uralk[1][0]=1038; uralk[1][1]=1041; uralk[2][0]=1041; uralk[2][1]=1044; uralk[3][0]=1044; uralk[3][1]=1046; uralk[4][0]=1046; uralk[4][1]=1060; // Kiiratási rész cout <<"Elso 5 Arpad-hazi kiralyunkn"; int legtobb; // Ez legyen a leghosszabb ideig uralkodó indexe // Ennyi ideig uralkodott int leghosszabb = 0; for (int i=0;i<5;i++) cout << kiraly[i] <<ELVALASZT; //Király nevének kiírása cout << uralk[i][0] <<" - " <<uralk[i][1] <<"nn"; //Uralkodási évének kiírása hossz[i] = uralk[i][1]-uralk[i][0]; //Uralkodás hosszának kiszámítása cout <<ELVALASZT <<"Uralkodas hossza: " <<hossz[i] <<" ev.n"; if (hossz[i]>leghosszabb) // cout <<"n Ez hosszabb lesz!"; //Csak a tesztelés miatt maradt benne! legtobb = i; leghosszabb = hossz[i]; cout <<"nn Legtovabb uralkodott: " <<kiraly[legtobb]; cout <<"n Uralkodas hossza: " <<leghosszabb; Ami még a vektorokhoz tartozik, azok a karakteres vektorok. Lássunk erre is egy példát! Deklaráljuk a következő tömböt: char jenny [20]; Ez ugye egy 20-elemű vektor, melynek minden egyes tagja 1-1 karakter. Fel lehet tölteni például a következővel: Hello, ahol az egyes elemek értéke a következő lesz: 3 / 14

jenny[0]="h" jenny[1]="e" jenny[2]="l" jenny[3]="l" jenny[4]="o" jenny[5]=" " Ez utóbbi lesz a szöveget lezáró jel, ami a rendszernek fontos. Lényeges, hogy bár mi " "-át látunk, ami látszólag 2 db karakternyi helyet foglal, de a rendszer ezt egyetlennek érzi! Az előző deklarációt így is meg lehet oldani: char jenny[] = 'H', 'e', 'l', 'l', 'o', ' ' ; Viszont ez esetben a tömb vége a mutatójánál lesz, azaz 5-nél, nem pedig 20-nál. Tudom, hogy ez egy meglehetősen bonyolult, de lesz még egyszerűbb is! Íme: char jenny [] = "Hello"; Lássunk egy gyakorlati példát is! Kérjük be a felhasználó családnevét, majd egy sima üdvözlet után írjuk vissza: // Karakteres tömbök használata #include <cstdlib> char kerdes[] = "Kerem a csaladi nevet: "; char udv[] = "Hello, "; char nev [80]; cout << kerdes; cin >> nev; cout << udv << nev << "!"; Vegyük észre, hogy a kiírásnál, illetve a cin-nel történő bekérésnél nem kell a zárójeleket használni!érdemes észrevenni, hogy a rendszer igen gördülékenyen működik, ha valakinek csak egy családi neve van, mint általában. De mi van, ha a teljes nevét kérjük, ami több, mint egy tagú. Ilyenkor sajnos csak a családnevet kapjuk vissza. A probléma onnan ered, hogy a cout és (nekünk most főleg) a cin automatikusan minden egyes szó mögé tesz egy " " jelet, amivel lezárja az aktuális szót. Ezzel a kiírásunkat, sajnos agyoncsapja. Helyette egy apró trükköt kell alkalmazni, mégpedig egy új beépülőt is be kell vetni, ami egy új bekérési lehetőséget ad. // Karakteres tömbök használata 2. #include <cstdlib> // Ez a képernyőtörlés miatt kell #include <string> // Ez az új beépülő 4 / 14

char kerdes[] = "Ke'rem a teljes neve't: "; char udvozlet[] = "Hello, "; string teljesnev; // Immár szöveget kérünk, nem karaktereket cout << kerdes; getline(cin,teljesnev); // Ez az új szöveg-bekérési eljárás cout << udvozlet << teljesnev << "!"; 12. fejezet: További gyakorló feladatok Ezt a részt azoknak szántam, akik még nem biztosak a tudásukban és szeretnének még gyakorolni. Tanári tapasztalataim azt mutatják, hogy eddig a pontig viszonylag könnyű eljutni egy közepes képességű csoporttal, esetleg egy gyengével is. A csoportnak itt viszont nagyon erősen javasolt pár tudásukat megerősítő feladatot feladni. Ezek jönnek most! (Megjegyzés: a feladatok többsége némi matematikai tudást is igényel.) 12.1. Kérje be egy háromszög három oldalát. Jelezze, ha az adatokból nem szerkeszthető háromszög. Ha szerkeszthető, akkor számolja ki a kerületét és a területét! Itt először is be kell kérni a három oldalt. Ez már nem okozhat gondot! (Azért ne feledkezzünk meg a megfelelő kiírásról sem.) #include <cstdlib> // Ez a képernyőtörlés miatt kell #include <math.h> // Ez a gyökvonáshoz kell 5 / 14

double a,b,c; // Adatbekérés cout << "Feladat: Egy haromszog 3 oldalat bekerve dontse el, hogy szerkesztheto-e, majd ha igen, akkor szamolja ki a haromszog teruletet es keruletet!nn"; cout << "Kerem az 1. oldalt! "; cin >> a; cout << "nkerem a 2. oldalt! "; cin >> b; cout << "nkerem a 3. oldalt! "; cin >> c; cout << " A haromszog oldalai: " << a << VESSZO << b << VESSZO << c <<"n"; // Szerkeszthetőség bekérése bool szerkhet = false; // Ez azt jelzi, hogy szerkeszthető-e a háromszög if ((a+b>c) and (a+c>b) and (b+c>a)) szerkhet = true; if (szerkhet==false) cout << "na haromszog nem szerkesztheto!"; else cout << "na haromszog szerkesztheto!"; // Kerület és terület kiszámítása double ker, s, szamit, ter; ker = a+b+c; cout << "na haromszog kerulete: " << ker; s = ker / 2; szamit = s*(s-a)*(s-b)*(s-c); ter = sqrt(szamit); cout <<"na haromszog terulete: " << ter; 12.2. Egy kis cégnek 10 dolgozója van. Kérje be ezek havi bruttó fizetését. Számolja ki az átlagát, majd minden egyes fizetésről döntse el, hogy átlag alatti vagy feletti, esetleg megegyezik vele. #include <cstdlib> // Ez a képernyőtörlés miatt kell 6 / 14

int fizu [10]; // Adatbekérés cout << "Feladat: 2.) Egy kis cégnek 10 dolgozója van. Kérje be ezek havi bruttó fizetését. Számolja ki az átlagát, majd minden egyes fizetésről döntse el, hogy átlag alatti vagy feletti, esetleg megegyezik vele.nn"; for (int i=1; i<11; i++) cout <<"nkerem a(z) " <<i <<". dolgozo fizeteset:"; cin >> fizu[i]; cout <<"nntehat a fizetesek: "; for (int i=1; i<11; i++) cout <<fizu[i] << VESSZO; //Számítások int osszeg = 0; for (int i=1;i<11;i++) osszeg = osszeg + fizu[i]; double atlag; atlag = osszeg / 10; cout <<"nfizetesek atlaga: " <<atlag; for (int i=1;i<11;i++) cout <<"n" <<i <<". fizetes: " << fizu[i] <<" "; if (fizu[i]<atlag) cout << " alacsony"; if (fizu[i]>atlag) cout <<" magas"; if (fizu[i]==atlag) cout <<" atlagos"; A fenti megoldásban egyetlen kivetnivaló akad: a végén, amikor a fizetéseket összehasonlítjuk az átlaggal, akkor azt lehetne egyetlen feltétellel is megoldani... 12.3. A program olvasson be pozitív egész számokat addig, amíg 0-t nem kap. Írja ki a beolvasott értékek mennyiségét, átlagát és az átlagtól való eltérések átlagát! 7 / 14

#include <cstdlib> // Ez a képernyőtörlés miatt kell #define maxx 200 // Maximum ennyi számot tárolunk. int beker, szamol; int tomb[maxx]; // Adatbekérés cout << "Feladat: 3.) A program olvasson be pozitív egész számokat addig, amíg 0-t nem kap. Írja ki a beolvasott értékek mennyiségét, átlagát és az átlagtól való eltérések átlagát!nn"; szamol = 0; do szamol++; cout <<"Kerem a kovetkezo szamot! "; cin >> beker; tomb[szamol]=beker; while (beker!= 0); // Adatok visszaírása cout <<"na bevitt szamok: n"; for (int i=1; i<szamol;i++) cout <<tomb[i] << VESSZO; // Adatok feldolgozása double atlag, osszeg = 0; for (int i=1;i<szamol;i++) osszeg = osszeg + tomb[i]; atlag = osszeg / szamol; cout <<"na bevitt szamok atlaga: " <<atlag; A megoldásban egyetlen egy trehányságot sikerült elkövetni: van a kiírásnál egy felesleges 8 / 14

vessző. Nos, ezt a problémát az olvasóra bízom! 12.4. Írja ki a program az első 20 olyan számot, amely nem osztható sem 2-vel, sem 3-mal, sem 5-tel! #include <cstdlib> // Ez a képernyőtörlés miatt kell cout <<"Feladat: 4.) Írja ki a program az első 20 olyan számot, amely nem osztható sem 2-vel, sem 3-mal, sem 5-tel!"; //Számolási rész int sz[20], szamol = 1; int szam = 6; //Ezzel a számmal fogok próbálkozni, hogy megfelel-e. do if ((szam % 2 == 0) or (szam % 3 == 0) or (szam % 5 == 0)) // cout <<"n" <<szam <<"Ez rossz!"; // Csak a tesztverzióban kellett! else // cout <<"n" <<szam <<"Ez viszont megfelel!"; //Csak a tesztverzióban kellett! sz[szamol] = szam; // Itt elraktározom a következő számot szamol++; // Az indexet is növelem eggyel szam++; // Veszem a következő számot while (szamol<20); //Kiírási rész cout <<"na megtalalt szamok:n"; for (int i=1; i<20;i++) cout <<sz[i]; if (i<19) cout << VESSZO; //Ezzel a megoldással sikerül elkerülni az utolsó vessző okozta problémát! 9 / 14

Érdemes észrevenni, hogy ebben a verzióban maradt némi felesleges kiírás még a teszt-verzióból. Ezt érdemes megszokni, mivel így a program a későbbiekben is jól érthető lesz és könnyebb felfogni a működését... 12.5. Egy sorozat képzési szabálya a következő: a soron következő elem legyen az előző kettő összegénél eggyel nagyobb. Írassa ki a sorozat első 20 elemét, ha az első két elem egyaránt 1. #include <cstdlib> cout <<"Feladat: 5.) Egy sorozat képzési szabálya a következő: a soron következő elem legyen az előző kettő összegénél eggyel nagyobb. Írassa ki a sorozat első 20 elemét, ha az első két elem egyaránt 1."; int sor[20]; //Számolási rész sor[1] = 1; sor[2] = 1; for (int i=3; i<21; i++) sor[i]= sor[i-1]+sor[i-2]+1; //Kiíratás cout <<"na sorozat elemei: n"; for (int i=1; i<21; i++) cout <<sor [i]; if (i!= 20) cout << VESSZO; 12.6. Kérjen be egy pozitív számot. Írassa ki a szám négyzetét, négyzetgyökét, szinuszát és 10 alapú logaritmusát! #include <cstdlib> 10 / 14

#include <math.h> // Ez a matematikai függvények miatt kell // Bekérés double szam; cout <<"Feladat: 6.) Kérjen be egy pozitív számot. Írassa ki a szám négyzetét, négyzetgyökét, szinuszát és 10 alapú logaritmusát!"; do cout <<"nkerek egy pozitiv szamot!"; cin >> szam; if (szam<=0) cout <<"nhibas szamot adott meg! Kerem ujra!n"; while (szam<=0); //Kiíratások és számolások cout <<"nna beadott szam: " <<szam; cout <<"nnegyzete : " <<szam*szam; cout <<"ngyoke : " <<sqrt(szam); cout <<"nszinusza : " <<sin(szam); cout <<"nlogaritmusa: " <<log10(szam); 12.7. Kérje be egy gömb sugarát, majd írassa ki a gömb térfogatát és felszínét! Ez egy egyszerű matematikai művelet lesz! #include <cstdlib> #include <math.h> // Ez a matematikai függvények miatt kell #define PI 3.1415 11 / 14

// Bekérés double r; //Ez a gömb sugara cout <<"Feladat: 7.) Kérje be egy gömb sugarát, majd írassa ki a gömb térfogatát és felszínét!"; do cout <<"nkerek egy pozitiv szamot!"; cin >> r; if (r<=0) cout <<"nhibas szamot adott meg! Kerem ujra!n"; while (r<=0); //Kiíratások és számolások cout <<"nna beadott szam: " <<r; cout <<"na gomb terfogata: " <<4*r*r*r*PI/3; cout <<"na gomb felszine : " <<4*r*r*PI; 12.8.) Kérje be egy kocka oldalát, majd írassa ki a felszínét, térfogatát, a köré és a beleírt gömb sugarait! Az előzőhöz hasonlóan ez is csak egy matematikai műveletsor lesz. #include <cstdlib> #include <math.h> // Ez a matematikai függvények miatt kell // Bekérés double a; //Ez a kocka oldala cout <<"Feladat: 8.) Kérje be egy kocka oldalát, majd írassa ki a felszínét, térfogatát, a köré és a beleírt gömb sugarait!"; do cout <<"nkerek egy pozitiv szamot!"; cin >> a; if (a<=0) cout <<"nhibas szamot adott meg! Kerem ujra!n"; while (a<=0); 12 / 14

//Kiíratások és számolások cout <<"na beadott szam : " <<a; cout <<"na kocka terfogata : " <<a*a*a; cout <<"na kocka felszine : " <<6*a*a; cout <<"na beirt gomb sugara : " <<a/2; cout <<"na koreirt gomb sugara: " <<sqrt(3)*a/2; 12.9.) Kérjen be két különböző pozitív egész számot, majd írassa ki a köztük lévő egészeket, azok összegét és szorzatát! Itt egy külső eljárást is használunk cserére, ha az szükséges. #include <cstdlib> void csere(int& x, int& y) double z; z = x; x = y; y = z; //Egyszerű csere // Bekérés int a,b; //Ez a két szám cout <<"Feladat: 9.) Kérjen be két különböző pozitív egész számot, majd írassa ki a köztük lévő egészeket, azok összegét és szorzatát!"; do cout <<"nkerek egy pozitiv egesz szamot!"; cin >> a; if (a<=0) cout <<"nhibas szamot adott meg! Kerem ujra!n"; while (a<=0); do 13 / 14

cout <<"nkerek egy pozitiv egesz szamot!"; cin >> b; if (b<=0) cout <<"nhibas szamot adott meg! Kerem ujra!n"; while ((b<=0) and (a!=b)); //Kiíratások és számolások if (b<a) csere(a,b); // A csere rutint előre meg kell írni! cout <<"nkisebb : " <<a; cout <<"nnagyobb: " <<b; cout <<"nkoztuk levo egeszek: "; int osszeg = 0, szorzat = 1; for (int i=a+1; i<b;i++) cout <<i; if (i<b-1) cout <<VESSZO; osszeg = osszeg + i; szorzat = szorzat * i; cout <<"nosszeguk : " <<osszeg; cout <<"nszorzatuk: " <<szorzat; Folytatása következik! 14 / 14