program szinkep; {2012. okt.} const szinek:array[1..3] of string=('voros','zold','kek'); type szintipus=record r,g,b:byte; end; var i,j,k,n,sdb,odb,max:integer; balsor, baloszlop, jobbsor, jobboszlop:integer; a:array[1..50,1..50] of szintipus; egyszin:szintipus; van:boolean; maxszin:array[1..3] of word; f:text; begin writeln('1. feladat'); Assign(f,'kep.txt'); reset(f); k:=0; i:=0; j:=0; while not eof(f) do begin inc(k); if k mod 50=1 then begin inc(i); j:=1; end; readln(f,a[i,j].r,a[i,j].g,a[i,j].b); inc(j); end; close(f); n:=k; {Assign(f,'kep_el.txt'); rewrite(f); for i:=1 to 50 do for j:=1 to 50 do writeln(f,i,' ',j,' ',a[i,j].r,' ',a[i,j].g,' ',a[i,j].b); close(f);} writeln(n,' sor beolvasva a "kep.txt"-bol.'); writeln('2. feladat'); write('r: ');readln(egyszin.r); write('g: ');readln(egyszin.g); write('b: ');readln(egyszin.b); van:=false; for i:=1 to 50 do for j:=1 to 50 do if (a[i,j].r=egyszin.r)and(a[i,j].g=egyszin.g)and(a[i,j].b=egyszin.b) then begin van:=true; break; end; if van then writeln('van') else writeln('nincs'); writeln('3. feladat'); egyszin:=a[35,8]; //writeln(egyszin.r,' ',egyszin.g,' ',egyszin.b); odb:=0; sdb:=0; for k:=1 to 50 do begin if (a[k,8].r=egyszin.r)and(a[k,8].g=egyszin.g)and(a[k,8].b=egyszin.b) then inc(odb); if (a[35,k].r=egyszin.r)and(a[35,k].g=egyszin.g)and(a[35,k].b=egyszin.b) then inc(sdb); end; writeln('sor: ',sdb,' oszlop: ',odb); writeln('4. feladat'); for i:=1 to 50 do for j:=1 to 50 do begin if (a[i,j].r=255) and (a[i,j].g=0)and (a[i,j].b=0) then inc(maxszin[1]); if (a[i,j].r=0) and (a[i,j].g=255)and (a[i,j].b=0) then inc(maxszin[2]); if (a[i,j].r=0) and (a[i,j].g=0)and (a[i,j].b=255) then inc(maxszin[3]); end; max:=maxszin[1]; for i:=1 to 3 do if maxszin[i]>max then max:=maxszin[i]; writeln('legtobbszor elofordulo szin a '); for i:=1 to 3 do if maxszin[i]=max then write(szinek[i]); writeln; {writeln('maxszin tomb: '); for i:=1 to 3 do write(maxszin[i],' ');} writeln('5. feladat'); for i:=1 to 50 do for k:=0 to 2 do begin a[1+k,i].r:=0; a[1+k,i].g:=0; a[1+k,i].b:=0; //elso sor a[50-k,i].r:=0; a[50-k,i].g:=0; a[50-k,i].b:=0; //utolso sor a[i,1+k].r:=0; a[i,1+k].g:=0; a[i,1+k].b:=0; //elso oszlop a[i,50-k].r:=0; a[i,50-k].g:=0; a[i,50-k].b:=0; //utolso oszlop end; writeln('Keret elkeszitve'); writeln('6. feladat'); Assign(f,'keretes.txt'); rewrite(f); for i:=1 to 50 do for j:=1 to 50 do writeln(f,a[i,j].r,' ',a[i,j].g,' ',a[i,j].b); close(f); writeln('adatok kiirva a "keretes.txt" faljba'); writeln('7. feladat'); balsor:=0; baloszlop:=0; jobbsor:=0; jobboszlop:=0; for i:=1 to 50 do for j:=1 to 50 do begin if (a[i,j].r=255) and (a[i,j].g=255) and (a[i,j].b=0) then begin //write(i:4,j:4);readln; balsor:=i; baloszlop:=j; van:=true; end; if van then break; end; writeln('Kezd: ',balsor,' ',baloszlop); for j:=baloszlop to 50 do if (a[balsor,j].r<>255)and(a[balsor,j].g<>255)and(a[balsor,j].b<>0) then break; jobboszlop:=j-1; for i:=balsor to 50 do if (a[i,jobboszlop].r<>255)and(a[i,jobboszlop].g<>255)and(a[i,jobboszlop].b<>0) then break; jobbsor:=i-1; writeln('Vege: ',jobbsor,' ',jobboszlop); writeln('Keppontok szama: ',(jobbsor-balsor+1)*(jobboszlop-baloszlop+1)); readln; end.