Pascal - uvjetno prekidanje programa?

poruka: 9
|
čitano: 4.660
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Pascal - može mala pomoć?

Ovako, za učitani polumjer r treba izračunati i ispisati površinu i opseg kruga.

Pri učitavanju polumjera potrebno je provjeriti da li je unesena vrijednost pozitivan broj (r>0).

Mene zanima kako da program stane ako je polumjer manji od nule.

 

NVIDIA: The Way It's Meant to Be Played :P
Poruka je uređivana zadnji put sub 27.11.2010 20:31 (gta_4).
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Pascal - može mala pomoc?

ako polumjer manji od nula stani

inače radi dalje

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Pascal - može mala pomoc?
Tom69 kaže...

ako polumjer manji od nula stani

inače radi dalje

  Da, a kako da to napišem u Pascal-u?

If polumjer<0 then writeln('Polumjer mora biti veci od nule') else _____?

 

O.K., sredio sam:

 

 

NVIDIA: The Way It's Meant to Be Played :P
Poruka je uređivana zadnji put sub 27.11.2010 20:41 (gta_4).
16 godina
moderator
offline
RE: Pascal - može mala pomoc?

Prvo - nemoj tako pisati kod, nego uvlaci retke koji su na hijerarhijski nizoj razini, jer ces tako lakse vidjeti sto se dogadja kad je koji uvjet zadovoljen. Isto tako, begin stavljaj u novi red, else takodjer.

 

Imaj na umu i to da iza prvog if-a takodjer mora ici else, posto ako je prvi uvjet zadovoljen, jer ce ti se u drugom if-u racunati povrsina i kad je polumjer jednak nuli (tj. dvaput ce ti racunat povrsinu kruga koji ima promjer nula). Znaci, treba ici:

 

if polumjer = 0... then...

else

  begin

      if polumer < 0 then ...

      else

      begin

        ...

        end;

end;

 

 

Iako, nisam bas na cisto s tim sto imas dva if-uvjeta (kad je iz primjera ocito da racunas povrsinu za polumjer >= 0)... Zasto ne bi jednostavno imao:

 

if polumjer < 0 then WriteLn('Polumjer ne smije biti negativan broj')

else

  begin

      povrsina := ...

      WriteLn('Površina je'...

  end;

 

Inace, glede tvog pitanja - prekinuti izvodjenje programa ili trenutne petlje ili napraviti izlazak iz funkcije mozes na vise nacina - naredbama break, exit i halt. Medjutim, te nacine koristi samo ako je to nuzno. U vecini slucajeva nece ti nista od toga trebati, nego samo dobro oblikovana kontrola tijeka programa (if-then, case, repeat, for).

15 godina
neaktivan
offline
Pascal - uvjetno prekidanje programa?

Evo ga, sređeno.

Nadam se da je ovako dobro.

Hvala ti na trudu! {#}

NVIDIA: The Way It's Meant to Be Played :P
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
RE: Pascal - uvjetno prekidanje programa?
gta_4 kaže...

Evo ga, sređeno.

Nadam se da je ovako dobro.

Hvala ti na trudu! {#}

Nije mislio na to nego na nesto ovakvo:

 

program zadatak2;
var polumjer, opseg, povrsina:real;

begin
    writeln('Upisite polumjer kruga');
    readln(polumjer);
   
    if polumjer<0 then writeln('Polumjer mora biti veci od 0')
   
    else
    begin
       opseg:=2*polumjer*pi;
       povrsina:=sqr(polumjer)*pi;
       writeln('Opseg je ', opseg:0:2);
       writeln('Povrsina je ', povrsina:0:2);
    end

    readln;
end

Pathogenic fundamentals clearly indicate that homogenous populations are most vulnerable.
15 godina
neaktivan
offline
RE: Pascal - uvjetno prekidanje programa?
Inače ako smijem prigovoriti...

UŽASNO formatiranje linija u gta_4...
In Control... MNOGE države imaju mafiju. Ali u Hrvatskoj mafija ima državu...
16 godina
moderator
offline
RE: Pascal - uvjetno prekidanje programa?

Jao! Vidim da me nisi razumio kako treba oblikovati izvorni kod. S Free Pascalom ti je dosla hrpa primjer - otvori ih i pogledaj kako je oblikovan izvorni kod!

 

Evo saljem ti i primjer kako bi tvoj program otprilike trebao izgledati. Uoci razmake ispred pojedinih linija - tim razmacima vizualno radis hijerarhij. Uoci da sam ponegdje stavio i razmake izmedju redova - oni pomazu citljivosti koda. Recimo, tu odmah vidis da je cijela if konstrukcija odvojena od ostatka, vidis da je skroz unutar if-a, odnosno begina unutar if-a, napravljena grupa od dvije po dvije naredbe - prvim naredbama dodjeljujes vrijednosti varijablama, a drugima ih ispisujes.

 

Iako Pascal nije case sensitive, funkcije se obisu tako da prvo slovo svake rijeci bude veliko - znaci, bolje je pisati ReadLn umjest readln - kad pises ReadLn, odmah je jasno o cemu se tu radi jer i vizualno vidis da su to dvije rijeci (drugo je doduse skraceno, ali...): Read, odnosno citanje, te Ln, odnosno line, tj. linija, takle citanje linije.

 

Nauci se pisati uredan kod - poslije ce ti se to jako isplatiti - sto kod debuggiranja, sto kod naknadnih promjena koda.

 

rustweaver kaže...
rustweaver kaže...
gta_4 kaže...

Evo ga, sređeno.

Nadam se da je ovako dobro.

Hvala ti na trudu! {#}

Nije mislio na to nego na nesto ovakvo:

 

program zadatak2;
var polumjer, opseg, povrsina:real;

begin
    writeln('Upisite polumjer kruga');
    readln(polumjer);
   
    if polumjer<0 then writeln('Polumjer mora biti veci od 0')
   
    else
    begin
       opseg:=2*polumjer*pi;
       povrsina:=sqr(polumjer)*pi;
       writeln('Opseg je ', opseg:0:2);
       writeln('Povrsina je ', povrsina:0:2);
    end

    readln;
end

Prestigao si me! Da, mislio sam na tako nesto. {#}

Pravilno oblikovan kod u Pascalu Pravilno oblikovan kod u Pascalu
15 godina
neaktivan
offline
Pascal - uvjetno prekidanje programa?

OK, popravljeno!

Hvala Vam ekipo.

NVIDIA: The Way It's Meant to Be Played :P
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice