Felhasználói eszközök

Eszközök a webhelyen


inf-prog-fszi:szin-kep

Szín-kép

szinkep.pas
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.
inf-prog-fszi/szin-kep.txt · Utolsó módosítás: 2017/06/19 10:27 szerkesztette: beistvan