Stránka 1 z 2

Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 00:00
od JuReeeC
Zdravím Vás,
mám za úkol sestavit program:
Sestavte program, podle kterého se pro 5 reálných čísel x z intervalu (-100, 100), přečteným ze vstupního zařízení, vytiskne tabulka se záhlavím:

x , cotg X, sqrt(cotg(x)), cotg (x*x) (moje hodnoty)

Čísla x tiskněte na 3 desetinná místa, funkční hodnoty na 6 platných cifer. Není-li některá z funkčních hodnot definována, tiskněte místo ní 3 pomlčky (tj. '---').


Zatím to mám takto a při výpisu mi to háže nulové hodnoty, i když nemá.

program mujprogram;
{$APPTYPE CONSOLE}
uses
SysUtils,
Math;

var
a:array[1..5] of real;
i:Integer;
x,y:Real;
begin
Writeln('Zadej 5 realnych cisel z intervalu (-100, 100):');
WriteLn;
i:=0;
while i<>5 do
begin
Write('X',I,':');
ReadLn(x);
if (x>-100) and (x<100) then
begin
i:=i+1;
a[i]:=x
end
else
WriteLn('Nenalezi do intervalu (-100, 100).');
end;
WriteLn;
writeLn;
for I:=1 to 67 do
Write('-');
WriteLn;
WriteLn('|','X':5,'|':5,'cotg(x)':11,'|':5,'sqrt(cotg(x))':17,'|':5,'cotg(x*x)':13,'|':5);
for I:=1 to 67 do
Write('-');
WriteLn;
for i:=1 to 5 do
begin
x:=a[i];
Write('|',x:8:3,'|':2);
if (sin(x)<>0)then
begin
y:=cotan(x);
if y>=0 then
Write(' ',sqrt(y):14,' | ',y:14,' |')
else
Write(' --- | ',y:14,' |');
if sin(x*x)=0 then
Write(' | --- |')
else
Write(' | ',cotan(x*x):14,' |');
end
else
Write(' --- | --- |');
WriteLn;
end;
for I:=1 to 67 do
Write('-');
ReadLn;
end.

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 12:03
od CZechBoY
pod tím FORem na řádku 29 bys měl mít x=a[i]

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 13:43
od JuReeeC
Kde myslíš? Spíš bude chyba někde dole, dívej jak mi to vypočítá:

Zadej 5 realnych cisel z intervalu (-100, 100):

X0:5
X1:0
X2:-5
X3:0
X4:5


-------------------------------------------------------------------
| X | cotg(x) | sqrt(cotg(x)) | cotg(x*x) |
-------------------------------------------------------------------
| 5.000 | --- | -2.95813E-0001 | | -7.48916E+0000 |
| 0.000 | --- | --- |
| -5.000 | 5.43887E-0001 | 2.95813E-0001 | | -7.48916E+0000 |
| 0.000 | --- | --- |
| 5.000 | --- | -2.95813E-0001 | | -7.48916E+0000 |
-------------------------------------------------------------------

a přece u cotg 5 nechci ---, bude to asi blbě matematicky

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 14:17
od CZechBoY
ty funkce sis dělal sám nebo to máš z knihovny?

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 14:26
od JuReeeC
Dělal jsem to sám :)

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 14:31
od CZechBoY
áha, můžeš poslat ty funkce nebo to je tajný?
taky jsem dělal tyhle blbosti a je to dost těžký na odladění

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 14:35
od JuReeeC
jaké funkce? V zadání jsem napsal, pro co to mám dělat :)
x , cotg X, sqrt(cotg(x)), cotg (x*x) (moje hodnoty)

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 14:36
od CZechBoY
jo tyhle funkce mi napiš jak máš, však si o příspěvek výše psal, že sis je dělal sám

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 14:41
od JuReeeC
tak udělal jsem si jenom podmínky, že cotg x se nesmí rovnat 0, pod odmocninou nesmí být záporné číslo a 0, a cotg x*x taky nesmí být nula, nic jiného tam není ne?

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 14:44
od CZechBoY
co třeba počítání tý funkce? :D

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 14:45
od JuReeeC
To musím? :D podle mě mám chybu někde tady:
for i:=1 to 5 do
begin
x:=a[i];
Write('|',x:8:3,'|':2);
if (sin(x)<>0)then
begin
y:=cotan(x);
if y>=0 then
Write(' ',sqrt(y):14,' | ',y:14,' |')
else
Write(' --- | ',y:14,' |');
if sin(x*x)=0 then
Write(' | --- |')
else
Write(' | ',cotan(x*x):14,' |');
end
else
Write(' --- | --- |');
WriteLn;
end;

Re: Prosím o pomoc s programem v Delphi

Napsal: 29 bře 2013 14:47
od CZechBoY
já vůbec nechápu co to je za bordel...

if sin(x*x)=0 then
Write(' | --- |')
else
Write(' | ',cotan(x*x):14,' |');
end