Felhasználói eszközök

Eszközök a webhelyen


inf-prog-fszi:szin-kep

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

inf-prog-fszi:szin-kep [2017/06/19 12:27] (aktuális)
beistvan létrehozva
Sor 1: Sor 1:
 +====== Szín-kép ======
  
 +<code pascal 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.
 +</​code>​
inf-prog-fszi/szin-kep.txt · Utolsó módosítás: 2017/06/19 12:27 szerkesztette: beistvan