#include #include #include // Sokcélú muveletekhez #include // String muveletekhez #include // file muveletekhez #include // stringstream using namespace std; int ertek(int i) //A 6. feladathoz készített függvény { int vissza=0; //Ennyit kell fizetni if (i>=1) vissza=500; if (i>=2) vissza+=450; if (i>=3) vissza+=(i-2)*400; return vissza; } int main() { system("cls"); setlocale(LC_ALL, ""); // ez beállítja az op.rendszer által használt nyelvi környezetet, amit feltételezünk, hogy magyar printf("A 2016. májusi emelt informatika érettségi megoldása\n"); //1. feladat string sor; int i=0; //Ciklusváltozó int vege; //Ennyi darab adat van string anyag[1000]; //Feldolgozott anyagok printf("\n1. feladat: Olvassa be az adatokat!\n"); ifstream myfile; myfile.open("penztar.txt"); while ( myfile.good() ) //Egyszeru elöltesztelo ciklus a file vizsgálatához { i++; // myfile >>anyag[i]; getline(myfile, anyag[i]); } myfile.close(); printf("Beolvasva %i sor.\n",i); vege=i-1; //Le kell vonni 1-et, mivel a 0. sorral kezdődik a számlálás. //2. feladat printf("\n2. feladat: Hányszor fizettek a pénztárnál?\n"); int szamlal = 0; //Ennyiszer fizettek for (i=0; i<=vege; i++) { if (anyag[i]=="F") szamlal++; } printf("%i alkalommal fizettek a pénztárnál.\n", szamlal); //3. feladat printf("\n3. feladat: Az első vásárlónak hány darab árucikk volt a kosarában?\n"); szamlal=0; //Ennyi darab volt benne i=1; do { if (anyag[i]!="F") //Megnézzük, hogy nem fizet-e { szamlal++; //Nem fizet, tehát ez árucikk. i++; //Indexet is nvelni kell. } } while (anyag[i]!="F"); printf("\nVálasz: %i darab.\n",szamlal); //4. feladat printf("\n4. feladat: Adatok bekérése\n"); int beszam, bedb; string benev; printf("Kérem egy vásárlás sorszámát!\n"); cin >>beszam; printf("Kérem egy árucikk nevét!\n"); cin >>benev; printf("Kérek egy darabszámot!\n"); cin >>bedb; //5. feladat printf("\n5/a. feladat: A bekért árucikkből melyik vásárlásnál vettek először és melyiknél utoljára?\n"); printf("5/b. feladat: A bekért árucikkből hány darabot vettek?\n"); int x51=0,x52=0,x53=0; for (i=0; i<=vege; i++) { if (anyag[i]==benev) //Ezt kell feldolgozni! { if (x51==0) x51=i; //Először vettek az árucikkből x52=i; //Mikor vettek utoljára - ezt lehet nyugodtan növelni, mivel az utolsó lesz az érvényes. x53++; //Ennyi darabot vettek. } } printf("Ekkor vettek először: %i\n",x51); printf("Ekkor vettek utoljára: %i\n",x52); printf("Ennyi darabot vettek: %i\n",x53); //6. feladat printf("\n6. feladat: Darabszám alapján menni a fizetendő összeg?\n"); printf("Bekért darabszám: %i\n",bedb); printf("%i darab vételekor fizetendő: %i\n",bedb ,ertek(bedb)); //7. feladat printf("\n7. feladat: A megadott vásárláskor miből mennyit vettek?\n"); int kosardarab[20]; //Ennyi darabot vett belőlük string kosar[20]; //Ezeket írja ki printf("Bekért vásárlás sorszáma: %i\n",beszam); szamlal=1; //Ennyiszer fizettek eddig i=1; int j=1; //Ciklusváltozó if (beszam!=1) // A hátultesztelő ciklus csak akkor működik helyesen, ha egyszer már végigfutott. Így muszáj ez a kritérium! { do { if (anyag[i]=="F") szamlal++; //Csak a fizetéseket számoljuk i++; } while (szamlal0) and (kosar[k]!="")) cout <2) osszeg=osszeg+400; //cout <