Maximum kiválasztás tömbben

Hasonló dokumentumok
5. Gyakorlat. struct diak {

1. Alapok. Programozás II

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

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

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

117. AA Megoldó Alfréd AA 117.

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

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

Bevezetés a programozásba I.

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

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Informatika terméktervezőknek

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

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

Programozási alapismeretek 3. előadás

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

A C++ Standard Template Library rövid összefoglalás

Bevezetés a programozásba I.

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

Programozási alapismeretek 2009/2010

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1

Programozási alapismeretek 1. előadás

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök

Pénzügyi algoritmusok

Bevezetés a programozásba I.

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

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök. Adatfolyamok Hibalehetőségek

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Bevezetés a programozásba. 11. Előadás: Esettanulmány

Programozás Minta programterv a 1. házi feladathoz 1.

OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 1

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

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

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

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

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

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

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

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

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

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

Programozás II gyakorlat. 8. Operátor túlterhelés

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

Pénzügyi algoritmusok

Alkalmazott modul: Programozás 2. fejezet. C++ alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

4. Öröklődés. Programozás II

0.1. Mi az a standard be- és kimenet? A két mintafeladat leírása

Körkörös listák. fej. utolsó. utolsó. fej

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

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

INFORMATIKA tétel 2017

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

Java II. I A Java programozási nyelv alapelemei

Programozás II gyakorlat. 6. Polimorfizmus

Java II. I A Java programozási nyelv alapelemei

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Programozás II gyakorlat. 4. Öröklődés

infix kifejezés a+b ab+ +ab postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab Készítette: Szabóné Nacsa Rozália

Stack Vezérlés szerkezet Adat 2.

INFORMATIKA tétel 2018

Alkalmazott modul: Programozás. C++ alapismeretek. C++ alapismeretek Történet

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

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

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

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

Bevezetés a programozásba. 6. Előadás: C++ bevezető

128. AA Megoldó Alfréd AA 128.

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

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

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

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

Programozási tételek és C++

3. Osztályok II. Programozás II

Apple Swift kurzus 3. gyakorlat

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

- 1 - Konstansok használata. Döntsük el, van-e fordítási idejű hiba az alábbi programrészletekben! a) const char * str="zh"; str[0]++;

500. AA Megoldó Alfréd AA 500.

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.

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

INFORMATIKAI ALAPISMERETEK

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

INFORMATIKA tétel 2019

Bevezetés a C++ programozásba

Programozási segédlet

A JavaScript főbb tulajdonságai

INFORMATIKAI ALAPISMERETEK

500. DD Megoldó Alfréd DD 500.

Bevezetés a programozásba 2

félstatikus adatszerkezetek: verem, várakozási sor, hasítótábla dinamikus adatszerkezetek: lineáris lista, fa, hálózat

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Objektum elvű alkalmazások fejlesztése. Öröklődés. Készítette: Sike Sándor Gregorics Tibor

Felhasználó által definiált adattípus

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.

Átírás:

ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while ciklus Adjunk meg egy tömbben egész számokat, keressük meg a tömb valamely maximális elemét, és az eredményt írjuk ki a szabványos outputra. Készítsünk többféle megoldást attól függően, hogy a tömböt hogyan hozzuk létre! Adatok előkészítése Absztrakt megoldó program Megoldás vázlata Itt biztosítjuk, hogy a feladat elvégzéséhez szükséges adatok megfelelő formában álljanak rendelkezésünkre. A számítások elvégzéséhez felhasználunk egy maximum kiválasztást. Maximális elemek Eredmény megjelenítése Itt írjuk ki a maximális elem értékét és azt, hogy ez a tömb hányadik eleme. Megoldás terve A = vect(z) Z Z v max ind B = vect(z) Bemenő változók: v : vect(z) v Q = ( v=v v.dom>0) Kimenő változók : max, ind : Z R=( Q max = Előfeltétel: v.dom > 0 v.hib v[ind] = max (v[i]) i=v.lob max, ind, i := v.lov, v.lob, v.lob+1 ind [v.lob..v.hib] ) i v.hib #include <iostream> using namespace std; int main() { // Adatok beolvasása és ellenőrzése // Absztrakt program C++ program kerete max, ind:= v[i], i max < v[i] i:=i+1 SKIP // Eredmény kiírása várakozás return 0; a program végén char ch; ch; cin cin >> >> ch; ch; 1

++i i++ i = i+1 --i i-- i = i-1 i+= a i = i+a i-= a i = i-a i*= a i = i*a i/= a i = i/a i%= a i = i%a i = j = k; j = k;i = k; Speciális értékadások j = i++; j = i; i = i+1; j = ++i; j = i = i+1; program_1 feltétel program_2 for(program_1;feltétel;program_2){ for(int i=0;i<n;++i){ for(int i=0;i<n;++i) utasítás; for ciklus ciklusváltozó Tömb deklarálása Legyen a v egy egészeket tartalmazó tömb Deklaráció, helyfoglalás, feltöltés int v[] = { 4, 7, 0, 9, 6, 7, 9, 4 ; Deklaráció, helyfoglalás int v[8]; Ide csak konstans írható Külön a deklaráció, külön a hossz megadása, külön a helyfoglalás int n = 8; Tömbök indexelése C++-ban Legyen a v egy n elemű tömb Az első elem indexe: 0 Az utoló elem indexe: n-1 Legyen a v egy n elemű tömb Index túlcsordolás?? v[-1] v[n] v[0] v[3] v.lob 0 v.hib n-1 v.lov v[0] v[n-1] Ha a vektor -1-dik vagy az az n - dik elemére hivatkozunk - SAJNOS!!!! - nincs hibajelzés, de természetesen ilyenkor akármi is is történhet. 2

Tömb kiírása Maximum kiválasztás kódolása max, ind, i := v.lov, v.lob, v.lob+1 cout << " A tömb elemei: "; for (int i=0; i<n; ++i){ cout << v[i]; if (i!= (n-1)) cout << ", "; else cout << ". " << endl; A tömb elemei: 4,7,0,9,6,7,9. i v.hib max, ind:= v[i], i max < v[i] i:=i+1 //Maximumkeresés SKIP int ind, max ; max=v[0]; ind = 0; 0; for(int i=1; i<n; ++i){ if( v[i]>max ){ ){ max = v[i]; ind = i; i; Eredmény kiírása //Eredmény megjelenítése cout << "A tömb egyik maximális eleme: " << max << "." << endl ; cout << "Ez a tömb " << ind+1 << ". eleme." << endl; konstans tömb statikus helyfoglalású tömb dinamikus helyfoglalású tömb A tömb egyik maximális eleme: 9. Ez a tömb 7. eleme. A tömb elemeinek értékét a program futása közben nem változtatjuk meg. A tömb egész const int v[] = {4, 7, 0, 9, 6, 7, 9, 4; const int n = sizeof(v)/sizeof(v[0]); futása közben nem változtatjuk meg. Konstans tömb A tömb egész int v[100]; cin >> n; // Kell még egy ellenőrzés: 0<n<=100 futása közben olvassuk be és ellenőrizzük Statikus helyfoglalású tömb A tömb elemeinek számára adott felső korlát. A tömb elemeinek beolvasása 3

A tömb egész Dinamikus helyfoglalású tömb ellenőrizzük cin >> n; // Kell még egy ellenőrzés: n>0 A tömb elemei számára lefoglal elegendő helyet... delete[] v; futása közben olvassuk be és A tömb elemeinek beolvasása A tömb számára lefoglalt terület felszabadításaa #include <iostream> using namespace std; int main() { //Adatok beolvasása cin >> n; if(n<=0){ cout << "Hibás adat!" << endl; exit(1); Teljes program //Eredmény megjelenítése cout << "A tömb egyik maximális eleme: " << max << "." << endl ; //Maximumkeresés int ind, max ; max=v[0]; ind = 0; for(int i=1; i<n; ++i){ if( v[i]>max ){ max = v[i]; ind = i; cout << "Ez a tömb " << ind+1 << ". eleme." << endl; delete[] v; return 0; Adatellenőrzés: számok do-while ciklus #include <string> int i; string str; feltétel cin >> str; i = atoi(str.c_str()); bool hiba = (i == 0 && str!= 0 ); atoi() atof() while ( feltétel ) 4

Ellenőrzött adatbevitel Program végtelenítése bool hiba; cout << endl << Kérek egy természetes számot: ; string str; cin >> str; n = atoi(str.c_str()); if(hiba = ((n==0 && str!= 0 ) n<0)) cout << Hibás adat! ; while(hiba); // Beolvasás // Főprogram // Kiíratás cout << endl << Futtassam újra? (I/N) ; char ch; cin >> ch; while(ch!= n && ch!= N ) 5