Datuve :: Forums :: Arhīvs :: Pascal: Uzdevums

Datuve

Mana Datuve

Reģistrācija | Noteikumi | Paroles atjaunošana



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 75

Reģistrētie lietotāji online: 0

Viesi online: 75

Datuve.lv video
Top.LV

Pascal: Uzdevums

Ievietoja: eEeE @ 2009.05.10 16:15  

Uzdevums

Uzrakstīt programmu, kas nosaka, vai starp ievadītajiem trijiem veseliem skaitļiem var izvēlēties divus tā, lai to summa būtu

   * pozitīvs skaitlis
   * nulle
   * negatīvs skaitlis

Ievaddati

Teksta faila trissk.dat vienīgajā rindā dotas trīs veselu skaitļu vērtības. Zināms, ka visi skaitļi ir robežās no -2147483648 līdz 2147483647.

Izvaddati

Teksta failam trissk.rez jāsatur tieši trīs rindas: pirmajā rindā jāizvada vārds "VAR", ja no trim ievadītajiem skaitļiem iespējams izvēlēties divus tā, lai to summa būtu pozitīvs skaitlis un "NEVAR", ja tas nav iespējams. Faila otrajā rindā jāizvada vārds "VAR", ja no trim ievadītajiem skaitļiem iespējams izvēlēties divus tā, lai to summa būtu nulle un "NEVAR", ja tas nav iespējams. Faila trešajā rindā jāizvada vārds "VAR", ja no trim ievadītajiem skaitļiem iespējams izvēlēties divus tā, lai to summa būtu negatīvs skaitlis un "NEVAR", ja tas nav iespējams.

Izveidoju kaut ko tādu:

var f:text;
karogs1,karogs2,karogs3:integer;
a,b,c:longint;
begin
assign(f,'trissk.dat');
reset(f);
readln(f,a,b,c);
close(f);
if (a+b>0) or (a+c>0) or (b+c>0) then karogs1:=1;
if (a+b=0) or (a+c=0) or (b+c=0) then karogs2:=1;
if (a+b<0) or (a+c<0) or (b+c<0) then karogs3:=1;
assign(f,'trissk.rez');
rewrite(f);
if karogs1=1 then writeln(f,'VAR') else writeln(f,'NEVAR');
if karogs2=1 then writeln(f,'VAR') else writeln(f,'NEVAR');
if karogs3=1 then writeln(f,'VAR') else writeln(f,'NEVAR');
close(f);
end.

Nevarat atrast kļūdu? Nestrādā izveidotais.

Komentāri:

#1 KaNeiet @ 2009.05.10 17:14

Kas tieši nestrādā?
Iekopēju, pārbaudīju -vismaz viens testa piemērs strādā.

#2 eEeE @ 2009.05.10 17:21

Man gan viņš neiet.

Pie rindiņas reset(f); rāda - file not found

#3 KaNeiet @ 2009.05.10 17:25

Tam nav nekāda sakara ar pašas programmas pareizīgumu.
Acīmredzot nav izveidots fails ar nosaukumu trissk.dat mapē no kuras darbojas programma.
Dari to kaut vai ar notepad, <Save as type> norādi "All files".

Vēl saprastu, ja tādi jautājumu būtu mācību gada sākumā, bet nu jau faktiski tā kā vairs tik viena nedēļa līdz beigām...

#4 Killercompany @ 2009.05.11 23:41

iespējams, ka tiešām exe un trissk.dat nav vienā mapē. iespējamas arī kādas problēmas ar rakstīšanas tiesībām (network share, cdrom). tad vēl iespējams ka "path" ietilpst kādas mapes kas ir garākas par 8 simb (piem "documents and settings" gadījumā ja lieto desktop uz xp).

tad vēl gribētu vērst uzmanību uz to ka integeriem tiek piešķirts 1 ja kautkas. cerībā kā ja kautkas nebūs tad nebūs 1. lai būtu droš par to - sākumā piešķir visiem integer vērtību 0. vai vēl labāk - lieto nevis integer bet boolean un nevis 1 un 0 bet true un false. pēdējais gan neietekmēs programmas darbību, bet ir ieteicams jo izmantos mazāk atmiņas, ja pie tā pieradīsi tad iespējams ka dzīvē noderēs.