Anonymní profil Adam – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Adam – Programujte.comAnonymní profil Adam – Programujte.com

 

Příspěvky odeslané z IP adresy 147.228.209.–

Adam
Assembler › Trojúhelník (zadaný 3 vrchol…
11. 12. 2014   #197178

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.

Delphi › Vysvětlení programu
6. 6. 2011   #142978

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")



děkuji =) mohl bych ještě poprosit vysvětlit char(ord('0').....? co tyto funkce vůbec znamenají a proč jsou zde použity?

Delphi › Vysvětlení programu
6. 6. 2011   #142974

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.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý