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.
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.
ako polumjer manji od nula stani
inače radi dalje
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).
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
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.
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.
OK, popravljeno!
Hvala Vam ekipo.