Datuve :: Forums :: Arhīvs :: Nespēju pabeigt Turbo pascal programmu. Lūdzu jūsu palīdzību!

Datuve

Mana Datuve

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



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 65

Reģistrētie lietotāji online: 0

Viesi online: 65

Datuve.lv video
Top.LV

Nespēju pabeigt Turbo pascal programmu. Lūdzu jūsu palīdzību!

Ievietoja: baiba111 @ 2009.05.08 14:20  

Nespēju pabeigt Turbo pascal programmu. Lūdzu jūsu palīdzību!

Uzdevums
Tārps vēlas apēst taisnstūra formas šokolādi ar M rindām un N kolonnām.
Viņš sāk ēst no augšējā kreisā šokolādes stūra un apēd visu pirmo rindu. Tad viņš pagriežas pulksteņrādītāja virzienā un turpina ēst visu (pēdējo) kolonnu. Sasniedzot tās beigas, process tiek atkārtots, t.i., tārps pagriežas pulksteņrādītāja virzienā un apēd visu pēdējo rindu. Šādi turpinot, tārps apēdīs visu šokolādi.
Uzrakstiet programmu, kas aprēķina pagriezienu skaitu, kas jāveic tārpam, lai viņš apēstu visu šokolādi!
 
Ievaddati
Teksta faila tarps.dat vienīgajā rindā doti divi veseli ar tukšumsimbolu atdalīti skaitļi M un N, 2 ≤ M, N ≤ 100. M ir šokolādes rindu skaits, N - kolonnu skaits.
 
Izvaddati
Teksta faila tarps.rez vienīgajā rindā jāizvada viens skaitlis - pagriezienu skaits, kas jāveic tārpam, lai tas apēstu visu šokolādi.
 
Piemērs
tarps.dat tarps.rez
2 3 2

tarps.dat tarps.rez
5 3 5

tarps.dat tarps.rez
4 10 6



Esmu tikusi tikai tik tālu. --->

program taarpeens;
uses crt;
var a:integer;

f1,f2:text;

begin

assign(f1,'tarps.dat');
assign(f2,'tarps.rez');

rewrite(f2);

read(f1,n);

read(f1,m);

if n-m>=0 and then
a:=(m-1)*2 else
a:=n*2-1;

write(f2,a);

close(f1);
close(f2);

end.


Komentāri:

#1 ob1 @ 2009.05.08 15:16

Paskālā neesmu rakstījis gadus 10. Uzmetu te piemēru citā valodā, domāju, ka sapratīsi...

x=0;
do while(.t.) {
   m=m-1;   /* apēda rindu */
   if(m<=0 .OR. n<=0) break;
   x=x+1;     /* pagrieziens */

   n=n-1;
   if(m<=0 .OR. n<=0) break;
   x=x+1;
}

#2 baiba111 @ 2009.05.08 15:19

paldies LIELS!

#3 ob1 @ 2009.05.08 15:23

lūdzu MAZS!
:D

#4 KaNeiet @ 2009.05.08 16:26

(*
   Zupanijsko natjecanje 2004 / 2. podskupina
   1. zadatak - GUSJENICA
   Rjesenje napisao Ivan Sikiric (isikiric@hotmail.com)

Opis algoritma:
Gusjenica jede naizmjenice jedan redak pa jedan stupac i pri tome mora
skretati. Pojela je cijelu cokoladu ako je pojela sve retke ili sve stupce.
Mozemo smanjivati broj redaka i stupaca za jedan i brojati skretanja dok ne
pojedemo cijelu cokoladu, ali postoji bolje rjesenje:
1) Ako je broj redaka manji ili jednak broju stupaca, znaci da ce retke
pojesti prije od stupaca. Izmedju svaka dva pojedena retka, ona ce
skrenuti 2 puta.
Broj skretanja je: (m-1)*2
2) Ako je broj redaka veci od broja stupaca, znaci da ce stupce pojesti prije
od redaka. Nakon sto pojede prvi redak, ona mora skrenuti, a nakon toga
izmedju svaka dva pojedena stupca skrene 2 puta.
Broj skretanja je: 1+(n-1)*2
*)

program gus;
var m, n, rj : longint;

begin
   readln(m, n);

   if m<=n then rj:=(m-1)*2 else rj:=1+(n-1)*2;

   writeln(rj);

(*  RJESENJE POSTUPNIM BROJANJEM:
   rj:=0;
   repeat
      m:=m-1;
      if m=0 then break;
      rj:=rj+1;
      n:=n-1;
      if n=0 then break;
      rj:=rj+1;
   until false;
   writeln(rj);
*)

end.

#5 ob1 @ 2009.05.08 16:29

Jā, ātrumā esmu ielicis liekas pārbaudes ... :)