#include #include #include // Sokcélú müveletekhez #include // String müveletekhez #include // file müveletekhez using namespace std; struct keppont{ int r; int g; int b; }; 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 2012. öszi emelt informatika érettségi megoldása\n"); //1. feladat printf("\n1. feladat: Olvassa be a adatokat!\n"); keppont pixel[51][51]; ifstream myfile; myfile.open("kep.txt"); int i,j; //Ciklusváltozók for (i=1;i<50;i++) { for (j=1;j<50;j++) { myfile >>pixel[i][j].r >>pixel[i][j].g >>pixel[i][j].b; } } myfile.close(); //2.feladat printf("\n2. feladat: bekért színküd megvan-e a képernyőn?\n"); keppont kulso; printf("Adja meg a kért szín 1. (R) összetevöjét!"); cin >>kulso.r; printf("Adja meg a kért szín 2. (G) összetevöjét!"); cin >>kulso.g; printf("Adja meg a kért szín 3. (B) összetevöjét!"); cin >>kulso.b; // printf("\nTehát a kért szín: %i %i %i\n", kulso.r, kulso.g, kulso.b); //Csak teszt! i=1; j=1; bool megvan=false; for (i=1;i<=50;i++) { for (j=1; j<=50; j++) { if ((pixel[i][j].r==kulso.r) and (pixel[i][j].g==kulso.g) and (pixel[i][j].b==kulso.b)) megvan=true; } } //Ezt egyszerűbb hátultesztelő ciklussal megírni, de így könnyebben érthető! if (megvan) printf("Van ilyen képpont!\n"); else printf("Nincs ilyen képpont!\n"); //3.feladat printf("\n3. feladat: 35.sor 8.képpont színe hányszor szerepel...\n"); keppont ez; //Ez lesz a viszonyítási alap ez=pixel[35][8]; printf("A kérdéses képpont színe: %i %i %i",ez.r, ez.g, ez.b); int szamol=0; for (i=1;i<=50;i++) { if ((ez.r==pixel[35][i].r) and (ez.g==pixel[35][i].g) and (ez.b==pixel[35][i].b)) szamol++; } printf("\nSorban: %i", szamol); szamol=0; for (i=1;i<=50;i++) { if ((ez.r==pixel[i][8].r) and (ez.g==pixel[i][8].g) and (ez.b==pixel[i][8].b)) szamol++; } printf(" Oszlopban: %i\n", szamol); //4.feladat printf("\n4. feladat: Melyik alapszín a leggyakoribb?\n"); int red=0,green=0,blue=0; //Ez lesz a három szín számlálója for (i=1;i<=50;i++) { for (j=1;j<=50;j++) { if ((pixel[i][j].r==255) and (pixel[i][j].g==0) and (pixel[i][j].b==0)) red++; //Megszámoljuk a megfelelő pontokat if ((pixel[i][j].r==0) and (pixel[i][j].g==255) and (pixel[i][j].b==0)) green++; if ((pixel[i][j].r==0) and (pixel[i][j].g==0) and (pixel[i][j].b==255)) blue++; } } printf("A leggyakrabban elöforduló szín: "); if ((red>=green) and (red>=blue)) printf("red\n"); //Ez a legegyszerübb módszer! if ((green>=red) and (green>=blue)) printf(" green\n"); if ((blue>=red) and (blue>=green)) printf(" blue\n"); //5.feladat printf("\n5. feladat: Fekete képkeret készítése\n"); ez.r=0; ez.g=0; ez.b=0; //Ezzel létrehoztunk egy fekete képpontot for (i=1;i<=50;i++) { pixel[1][i]=ez; //Felső fekete csík pixel[2][i]=ez; pixel[3][i]=ez; pixel[50][i]=ez; //Alsó fekete csík pixel[49][i]=ez; pixel[48][i]=ez; } for (i=4;i<=47;i++) { pixel[i][1]=ez; //Bal oldali csík pixel[i][2]=ez; pixel[i][3]=ez; pixel[i][50]=ez; //Jobb oldali csík pixel[i][49]=ez; pixel[i][48]=ez; } //6.feladat printf("\n6. feladat: Kép kiírása fájlba\n"); ofstream myfile6; //Fájl megnyitása írásra myfile6.open("keretes.txt"); for (i=1;i<=50;i++) { for (j=1;j<=50;j++) { myfile6 <