Pomoc s matematickou ulohou – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s matematickou ulohou – Pascal – Fórum – Programujte.comPomoc s matematickou ulohou – Pascal – Fórum – Programujte.com

 

Kadla
~ Anonymní uživatel
43 příspěvků
23. 8. 2007   #1
-
0
-

ahoj, prosim nepomohl by mi nekdo se zadanim ulohy cislo 2? http://www.fm.tul.cz/prg/Ulohy/UlohyPoleBodu.pdf
Thanx

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
23. 8. 2007   #2
-
0
-

A v čem konkrétně je problém? Jediné, co by ti mohlo dělat potíže, je hlídání mezí, ale těžko říct. Nejdříve se vyjádři.

Nahlásit jako SPAM
IP: ...–
Kadla
~ Anonymní uživatel
43 příspěvků
23. 8. 2007   #3
-
0
-

To Jura: NO ja nevim treba co tam dosadit za ty x a y...

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
23. 8. 2007   #4
-
0
-

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.

Nahlásit jako SPAM
IP: ...–
Kadla
~ Anonymní uživatel
43 příspěvků
23. 8. 2007   #5
-
0
-

To Jura: Dekuji ti, ted tp zkusim udelat!!!!!jeste jednou diky

Nahlásit jako SPAM
IP: ...–
Kadla
~ Anonymní uživatel
43 příspěvků
23. 8. 2007   #6
-
0
-

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...

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
23. 8. 2007   #7
-
0
-

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š;)

Nahlásit jako SPAM
IP: ...–
Kadla
~ Anonymní uživatel
43 příspěvků
23. 8. 2007   #8
-
0
-

To Jura:Uz je mi to jasnejsi, s tim datovym typem jsem si to uvedomil az pak. jenom nerozumim te prvni podmince. Jo a jeste co znamena prikaz Result(chapu, ze to je vysledek), ale nemel by byt nejak nadeklarovany?

Nahlásit jako SPAM
IP: ...–
Kadla
~ Anonymní uživatel
43 příspěvků
23. 8. 2007   #9
-
0
-

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.

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
23. 8. 2007   #10
-
0
-

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.

Nahlásit jako SPAM
IP: ...–
Kadla
~ Anonymní uživatel
43 příspěvků
23. 8. 2007   #11
-
0
-

Je to tak spravne?

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
23. 8. 2007   #12
-
0
-

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.

Nahlásit jako SPAM
IP: ...–
Kadla
~ Anonymní uživatel
43 příspěvků
23. 8. 2007   #13
-
0
-

To Jura:Me se to libi moc...ja jsem byl jen nadsenej!!!dekuju ti

Nahlásit jako SPAM
IP: ...–
Kadla
~ Anonymní uživatel
43 příspěvků
23. 8. 2007   #14
-
0
-

To Jura:Me se to libi moc...ja jsem byl jen nadsenej!!!dekuju ti

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
23. 8. 2007   #15
-
0
-

Aha, no nějak jsem to nepobral. Ale předtím než to odevzdáš, tak si spočti pár příkladů a porovnávej výsledky.

Nahlásit jako SPAM
IP: ...–
ChaoticRoman
~ Anonymní uživatel
15 příspěvků
23. 8. 2007   #16
-
0
-

žá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]);

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

Moderátoři diskuze

 

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