Čaute,
potreboval by som algoritmus ako je už v názve uvedené v pascale. Na začiatku by trebalo zadať súradnice pravouholníkov (štvorec alebo obĺžník alebo iné) na konci by mi vypísalo či prienik je alebo nie. Súradnice prieniku netreba. Najlepšie by bolo do štvtrku večera. Ďakujem pekne
Algoritmus pre prienik dvoch pravouholnikov
-
[email protected]
Medium Expert
- Príspevky: 108
- Registrovaný: 15 máj 2006, 2:04
- Kontaktovať používateľa:
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
napríklad takto:
... ale musíš dať pozor na to, že v pascale čím "nižšie" tým väčšia y-onová súradnica. V geometrii to je opačne. O x-ovej súradnici to platí tak isto ako v geometrii. To znamená, že na obrázku je bod x2 s väčšou y-onovou súradnicou ako x1 aj keď je nižšie. Môžeš si to prerobiť tak aby sa súradnice zadávali bežným spôsobom, ale ja som to nechal takto.
Kód: Vybrať všetko
program Project2;
type TPoint=record
x:integer;
y:integer;
end;
var a,b:array[1..2] of TPoint;
prekryva_x,prekryva_y:boolean;
i:integer;
begin
writeln('Zadaj rozmery prveho stvoruholnika: ');
for I:=1 to 2 do begin
writeln('Bod ',i,', suradnica x: ');
readln(a[i].x);
writeln('Bod ',i,', suradnica y: ');
readln(a[i].y);
end;
writeln('Zadaj rozmery druheho stvoruholnika: ');
for I:=1 to 2 do begin
writeln('Bod ',i,', suradnica x: ');
readln(b[i].x);
writeln('Bod ',i,', suradnica y: ');
readln(b[i].y);
end;
prekryva_x:=false;
prekryva_y:=false;
if ((a[2].x>=b[2].x) and (a[1].x<=b[2].x)) or ((a[1].x<=b[1].x) and (a[2].x>=b[1].x)) then prekryva_x:=true;
if ((a[1].y<=b[1].y) and (a[2].y>=b[1].y)) or ((a[2].y>=b[2].y) and (a[1].y<=b[2].y)) then prekryva_y:=true;
if prekryva_x and prekryva_y then writeln('Tieto 4-uholniky sa prekryvaju') else writeln('Tieto 4-uholniky sa neprekryvaju')
end.
- Prílohy
-
- obr.GIF
- (2.13 KiB) 307 stiahnutí
-
[email protected]
Medium Expert
- Príspevky: 108
- Registrovaný: 15 máj 2006, 2:04
- Kontaktovať používateľa: