Rakstīt ziņojumu 
 
Pavediena vērtējums:
  • 0 balsis - 0 vidējais
  • 1
  • 2
  • 3
  • 4
  • 5
Pascal. kļūda programmā
Autors Ziņa
Je Atslēdzies
Junior Member
**

Ziņojumi: 29
Pievienojās: Sep 2010
Reputācija: 0
Ziņojums: #1
Pascal. kļūda programmā
tātad, še rpogramma:
....
err1: writeln ('Ievadiet X vertibu!');
readln (x);
a:= (ln(x+1));
b:=(ln(x-1)*ln(x-1));
c:= (a+b);
d:=sqrt((((x*x)/6.28 )+x-2));

if (d<0) then begin writeln
('Izvilkt sakni no negativa skaitla nav iespejams.Ievadiet citu mainiga vertibu!');
goto err1
end
else goto atk2;
atk2: e:=(c/d);

writeln ('Rezultats: ln(x+1)+ln^2(x-1) / sqrt(x^2/6,28+x-2)=',e:3:4);

readln
end.

Mīļie cilvēki, kur ir kļūdu? Ja d>0 viņš skaita, ir OK, bet, ja d<0, tad vispār neko nedara un izslēdz programmu.
(Šo ziņojumu pēdējo reizi modificēja: 30.10.2010 20:34 Je.)
30.10.2010 20:33
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Dr. evel Atslēdzies
pasaule buus mana!!!
****

Ziņojumi: 566
Pievienojās: Dec 2008
Reputācija: 1
Ziņojums: #2
RE: Pascal. kļūda programmā
lasi kompilatora zinjojumus
30.10.2010 20:36
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Je Atslēdzies
Junior Member
**

Ziņojumi: 29
Pievienojās: Sep 2010
Reputācija: 0
Ziņojums: #3
RE: Pascal. kļūda programmā
(30.10.2010 20:36 )Dr. evel rakstīja:  lasi kompilatora zinjojumus
Tāda figņa, ka viņš kompilē, bet, ja d<0...
30.10.2010 20:39
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Doktors Streindžlovs Atslēdzies
Member
***

Ziņojumi: 201
Pievienojās: Oct 2008
Reputācija: 4
Ziņojums: #4
RE: Pascal. kļūda programmā
Izskatās, ka problēma ir tajā, ka tu pārbaudi, vai ir iegūts negatīvs skaitlis, izvelkot kvadrātsakni. Tev tā pārbaude būtu jāliek pirms d rēķināšanas, un jāpārbauda, vai negatīvs ir ((x*x)/6.28 ) + x-2
(Šo ziņojumu pēdējo reizi modificēja: 30.10.2010 21:02 Doktors Streindžlovs.)
30.10.2010 21:00
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
PeterB Atslēdzies
(._.)
****

Ziņojumi: 287
Pievienojās: Sep 2008
Reputācija: 10
Ziņojums: #5
RE: Pascal. kļūda programmā
^ this.

Piedevām, goto uz nākamo rindiņu (atk2), wtf?
30.10.2010 21:34
Apskatīt lietotāja interneta adresi Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Kaspars Balodis Atslēdzies
¥
****

Ziņojumi: 344
Pievienojās: Sep 2005
Reputācija: 9
Ziņojums: #6
RE: Pascal. kļūda programmā
(30.10.2010 20:33 )Je rakstīja:  Izvilkt sakni no negativa skaitla nav iespejams.
Tur jau tā problēma, ka tu tomēr mēģini to izdarīt.
31.10.2010 06:04
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Je Atslēdzies
Junior Member
**

Ziņojumi: 29
Pievienojās: Sep 2010
Reputācija: 0
Ziņojums: #7
RE: Pascal. kļūda programmā
Paldies, visiem! Izradījās, ka vajadzēja norādīt, ka (x<=1).
31.10.2010 12:20
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Blekss Atslēdzies
Senior Member
****

Ziņojumi: 712
Pievienojās: Aug 2005
Reputācija: -2
Ziņojums: #8
RE: Pascal. kļūda programmā
Norādot x<=1 tu nonāksi turpat kur sakumā, tikai retāk tev tā kļūda parādīsies.
Ja es ievadīšu kko mazāku par ~1.594934002 un lielāku par 1, tad tev nekas labs nesanāks.

izdari labāk tā:
Kods:
tmp:=(((x*x)/6.28 )+x-2);
if (tmp < 0)
('Izvilkt sakni no negativa skaitla nav iespejams.Ievadiet citu mainiga vertibu!');
goto err1
end
else
d:=sqrt(tmp);
end //ja pareizi atceros pascal if..else sitaksi
e:=(c/d);
writeln ('Rezultats: ln(x+1)+ln^2(x-1) / sqrt(x^2/6,28+x-2)=',e:3:4);
31.10.2010 12:59
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Je Atslēdzies
Junior Member
**

Ziņojumi: 29
Pievienojās: Sep 2010
Reputācija: 0
Ziņojums: #9
RE: Pascal. kļūda programmā
Bet te: jāpārbauda, vai D,H,T,S ir pozitīvi un nav savst. vienādi.
It kā uzrakstīju programmu, bet sanāca daudz stūlbu nosacījumu un ar konstrukciju liekas kaut kas ne tā, jo nereaģē, ja viens no tiem ir negatīvs. tad kā viņus pareizi pārbaudīt? Rolling Eyes
31.10.2010 13:55
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Blekss Atslēdzies
Senior Member
****

Ziņojumi: 712
Pievienojās: Aug 2005
Reputācija: -2
Ziņojums: #10
RE: Pascal. kļūda programmā
Ieliec PILNU uzdevuma formulējumu un piemet klāt pilnu kodu
31.10.2010 14:01
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Je Atslēdzies
Junior Member
**

Ziņojumi: 29
Pievienojās: Sep 2010
Reputācija: 0
Ziņojums: #11
RE: Pascal. kļūda programmā
Pārbaudīt, vai mainīgie D,H,ST ir pozitīvi un nav savstarpēji vienādi.

program zs10051_uzd4;
uses crt;
label atk1;
var D,H,S,T:real;
U:char;
begin
clrscr;
atk1:writeln ('Ievadiet mainigo D');
readln (d);
writeln ('Ievadiet mainigo H');
readln (h);
writeln ('Ievadiet mainigo S');
readln (s);
writeln ('Ievadiet mainigo T');
readln (t);

if (d>=0) and (h>=0) and (s>=0) and (t>=0) then begin
if (d<>h) and (s<>t) and (s<>h) and (t<>d) then
writeln ('Mainigie vienadi ir pozitivi')

else begin
if (d=h) or (s=t) or (s=h) or (t=d)
and (d<0) or (t<0) or (s<0) or (h<0) then
writeln ('nav')
end;
readln;
end.
31.10.2010 14:05
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Blekss Atslēdzies
Senior Member
****

Ziņojumi: 712
Pievienojās: Aug 2005
Reputācija: -2
Ziņojums: #12
RE: Pascal. kļūda programmā
1.iemācies ciklus (for,while,do while) un atbrīvojies no labeļiem

par to kāpēc nereāģē uz negatīvām vērtībām:
Tu esi uzrakstījis apmēram šādi:
if (d>=0) and (h>=0) and (s>=0) and (t>=0) then begin
if (d<>h) and (s<>t) and (s<>h) and (t<>d) then
writeln ('Mainigie vienadi ir pozitivi')
else begin
if (d=h) or (s=t) or (s=h) or (t=d) and (d<0) or (t<0) or (s<0) or (h<0) then
writeln ('nav')
end;
readln;

īsāk sakot - tu pārbaudi vai tie ir pozitīvi, ja nav tad izpildi readln un programma beidz darbu. Vajag šadi:
if (d>=0) and (h>=0) and (s>=0) and (t>=0) then
begin
//do whatever you need to do for checkig if variables are each equal
end
else
begin
//do whatever you need to do if one of variable < 0
end

palasi te par to kā strādā IF THEN ELSE
(Šo ziņojumu pēdējo reizi modificēja: 31.10.2010 14:52 Blekss.)
31.10.2010 14:51
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Rakstīt ziņojumu 


Lēciens uz forumu:



Kontaktifizmati.lvAtgriezties uz augšuAtgriezties pie saturaArhīva skatsRSS sindikācija