Zdravím bando,
nevím si rady, jak realizovat tuto úlohu. Je to semestrální práce.
V rastru je 256x256 bodů je zadán trojúhelník (třemi vrcholy). Určete zda je pravoúhlý.
Používá se simulátor MIPS.
Jak byste postupovali?
Díky.
JoDiK napsal:
Srozumitelně a stručně?
for i := 1 to 25 do
for j := -34 to 35 do S[i,j] := '.';
všude se nachystají tečky
for i := 1 to 25 do
for j := -20 to 20 do
if round(sqr(j/2)+sqr(i-13)) <= 100 then
S[i,j]:='+';
do těch bodů, jejichž souřadnice jsou od středu kružnice vzdáleny méně než 10 (podle pythagorovy věty) se uloží plusy.
no a to všechno ostatní jsou jen velmi pracně a nepřehledně rozmísťované popisy (číselných "os")
Zdravím mám takový problém potřeboval bych nějak srozumitelně a stručně vysvětlit tento program...jeho úkolem bylo naplnit matici znaky tak, aby vznikl kruh o průměru 1 ( s programu je to pochopitelné ). Autorem programu však nejsem já ale potřebuji ho vysvětlit tak kdyby byl někdo ochotný prosím? =)
program ukol_47;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
pole = array[1..25,-34..35] of char;
var
S:pole;
procedure napln(var S:pole);
var
i,j:integer;
begin
for i := 1 to 25 do
for j := -34 to 35 do S[i,j] := '.';
for i := 1 to 25 do S[i,-30] := '|';
for j := -34 to 35 do S[1,j] := '=';
for j := -34 to 35 do S[13,j] := '-';
for i := 2 to 12 do begin
S[i,-34] := '+';
S[i,-33] := char(ord('0') + (13 -i) div 10);
S[i,-32] := ',';
S[i,-31] := char(ord('0') + (13 -i) mod 10);
end;
for i := 14 to 24 do begin
S[i,-34] := '-';
S[i,-33] := char(ord('0') + (i-13) div 10);
S[i,-32] := ',';
S[i,-31] := char(ord('0') + (i-13) mod 10);
end;
for j := -34 to 35 do begin
if j >= 0 then
if j mod 10 = 0 then begin
S[25,j-1] := char(ord('0') + j div 20);
S[25,j] := ',';
S[25,j+1] := char(ord('0') + (j mod 20) div 2);
end;
if j < 0 then
if j mod 10 = 0 then begin
S[25,j-2] := '-';
S[25,j-1] := char(ord('0') - j div 20);
S[25,j] := ',';
S[25,j+1] := char(ord('0') - (j mod 20) div 2);
end;
end;
for i := 1 to 25 do
for j := -20 to 20 do
if round(sqr(j/2)+sqr(i-13)) <= 100 then
S[i,j]:='+';
end;
procedure tisk(var S:pole);
var
i,j:integer;
begin
for i := 1 to 25 do begin
for j := -34 to 35 do
write(S[i,j]);
writeln
end;
end;
begin
napln(S);
tisk(S);
readln;
end.