ahoj, prosim nepomohl by mi nekdo se zadanim ulohy cislo 2? http://www.fm.tul.cz/prg/Ulohy/UlohyPoleBodu.pdf
Thanx
Fórum › Pascal
Pomoc s matematickou ulohou
Pokud jsem si to správně přečetl a pochopil, tak jsou to souřadnice vrcholů nějakého n-uhelníka. Tzn. že si uděláš nějaké pole o n prvcích, jak pro x, tak pro y souřadnici, kde n = počet vrcholů n-úhelníka. Obě pole naplníš n hodnotami. Sumu spočteš jednoduše v cyklu, podle daého předpisu, jen si musíš dát pozor na meze(ty podmínky pro xn+1 an+1). Nakonec vynásobíš 0.5 asolutní hodnotu z výsledku. Celý příklad vejde do 10 řádků. Pokud pořád nevíš,tak se ozvi.
To Jura:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
X =Array [1..N] of integer;
Y =Array [1..N] of integer;
var
i, n : integer;
s : integer;
begin
writeln('Zadejte pocet vrcholu');
read(n);
for i:=1 to N do begin
write(X[i]);
end;
for i:=1 to N do begin
write(Y[i]);
end;
for i:=1 to N do
s:=
end.
a ted nevim jak dal...
To Kadla:
Mno,takhle to asi nepůjde. Vůbec tu hodnotu nenačítáš, dále nemůžeš uložit hodnotu do datového typu. Napíšu ti jen takový pseudokód(nepujde to zkompilovat, musíš si to přepsat do pascalu), té hlavní smyčky, Načítání atd.si už budeš muset udělat sám.
x[N] // pole x souradnic
y[N] // pole y souradnic
suma := 0
for i := 1 to N
begin
if(i je rovno N) suma := suma + (x[i]*y[1] - x[1]*y[i])
else suma := suma + (x[i]*y[i+1] - x[i+1]*y[i])
end
Result := 0.5*Abs(suma);
P.S.: Napsal bych to rovnou celé a v Pascalu,ale je to úkol, tak se s tím zkus potrápit. Doufám, že to chápeš;)
program Uloha2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
X : array [1..20] of integer;
Y : array [1..20] of integer;
soucet : integer;
n,i : integer;
result : real;
begin
read(N);
for i:=1 to N do read(X[i]);
for i:=1 to N do read(Y[i]);
soucet:=0;
for i:=1 to N do begin
if i=1 then soucet:=soucet + X[i]*y[1]-x[1]*y[i]
else soucet:=soucet+soucet + X[i]*y[i+1]-x[i+1]*y[i];
Result := 0.5*abs(soucet);
end;
write(Result:10:3);
readln;
readln;
end.
Psal jse, že se jedná o pseudokód, tzn. vymyslel jsem si syntaxi,ale vzhldem k tomu, že už to v podtstatě máš:
{$APPTYPE CONSOLE}
uses
SysUtils;
var
X : array [1..20] of integer;
Y : array [1..20] of integer;
soucet : integer;
n,i : integer;
result : real;
begin
write('Zadej pocet(mene nez 20): ') readln(N);
for i:=1 to N do begin
write('Zadej x: '); readln(X[i]);
write('Zadej y: '); readln(Y[i]);
end;
soucet:=0;
for i:=1 to N do begin
if i=N then // je tam napsano i se rovna N
soucet:=soucet + (X[i]*y[1]-x[1]*y[i])
else
soucet:=soucet+ (X[i]*y[i+1]-x[i+1]*y[i]);
end;
Result := 0.5*abs(soucet);
write(Result:10:3);
readln;
readln;
end.
Tak si to zkus spočítat na kalkulačce. Já to zkoušel vyšlo mi to stejně, akorát jsem měl implementaci v C(momentálně nemám na PC Pascal ani Delphi). Co se ti jinak nelíbí? Zkompiluj, spusť a zadej čísla, pro která sis to spočítal. Nakonec porovnej.
žádné námitky. jen
for i:=1 to N do begin
if i=N then
soucet:=soucet + (X[i]*y[1]-x[1]*y[i])
else
soucet:=soucet+ (X[i]*y[i+1]-x[i+1]*y[i]);
end;
je o něco lepší
for i:=1 to (N-1) do
soucet:=soucet + (X[i]*y[i+1]-x[i+1]*y[i]);
soucet:=soucet + (X[N]*y[1]-x[1]*y[N]);
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Pomoc s úlohou — založil Kárl
Pomoc s ulohou v C — založil newo
Pomoc s ulohou... — založil pra3tor
Hledam pomoc s jednou neresitelnou ulohou:( — založil Athlon
Pomoc se soutezni ulohou - na PC normalne, ale na webovem rozhrani s… — založil power1000
Moderátoři diskuze