Šta je novo?

Kako radi Goto u pascalu?

kUdtiHaEX

Super ridža
Administrator
Učlanjen(a)
18.07.2001
Poruke
18,077
Poena
1,365
Moja oprema  
CPU & Cooler
Intel® Core™ i5-9500F, NZXT Kraken Z63
GPU
Asus GTX 2070 Super
Storage
Samsung 980 Pro NVMe 1 TB
Kućište
NZXT H210i
Monitor
LG C2 42"
Miš & tastatura
Logitech G502, Keychron K8, Nuphy Air75, Ducky TKL One 2
Ostale periferije
Glupi HP štampač
Laptop
Apple Macbook Pro 14" M1
Tablet
Apple iPad Pro 11"
Mobilni telefon
Apple iPhone 13 Pro Max
Pametni uređaji
Apple Watch Ultra
Pristup internetu
  1. Kablovski internet
Ajde ljudi kako radi goto u pascalu? Skratite mi muke, vrlo mi je potrebno!
 
Ne znam kako radi goto u pascalu, ali bih hteo da ti napomenem da se koriscenje goto naredbe smatra neznanjem. Odnosno izbegava se, jer se dobijaju necitljivi programi, u kojima se tesko pronalaze greske a takvi p[rogrami se nazivaju spageti. Zato je najbolje koristiti petlje, odnosno procedure i funkcije. Skoro da ne postoji problem koji zahteva goto, odnosno ne moze da se resi koriscenjem petlji.
 
Posledice basica :)
Koristi procedure. Mada verujem da ti i petlje zavrsavaju posao...
 
Laza je napisao(la):
Ne znam kako radi goto u pascalu, ali bih hteo da ti napomenem da se koriscenje goto naredbe smatra neznanjem. Odnosno izbegava se, jer se dobijaju necitljivi programi, u kojima se tesko pronalaze greske a takvi p[rogrami se nazivaju spageti. Zato je najbolje koristiti petlje, odnosno procedure i funkcije. Skoro da ne postoji problem koji zahteva goto, odnosno ne moze da se resi koriscenjem petlji.
Postoje unakrsne i obgrljene petlje koje u strukturiranom programiranju nisu dozvoljene pa se to reshava sa GOTO. Ako si vesht i ako znash shta radish takva jedna struktura moze mnogo ubrzati program i ushtedeti na memorijskom prostoru, ali ce biti teze chitljiva za druge programere koji se sretnu sa tim kodom. Anyway ....

Naredba se koristi kao skok na labelu ( IF ..... THEN GOTO "ime labele" ). Naravno labela mora biti unapred deklarisana. Za vishe detalja pozovi help iz Paskala. :)
 
Evo ti primer... znam da je besmislen ali me mrzelo da smišljam nepti pametnije ctp;
[code:1]
begin
readln(a)
if a > 0 then goto posit;
writeln('negativan');
halt(0);
posit: writeln('pozitivan');
end.
[/code:1]

inače, struktuirani programi mogu sagržati goto naredbu
 
Upotreba goto naredbe se (ne samo u paskalu, nego i drugim visim jezicima) ne smatra neznanjem, nego losim stilom programiranja. Dakle, nije zabranjeno, ali uglavnom moze da se izbegne raznim formama, od koriscenja procedura do rekurzija i razlicitih varijanti grananja i petlji. Generalno je u suprotnosti sa filozofijom objektnog programiranja (tok izvrsavanja event-driven programa), koriscenjem uslovnih izvrsavanja (try ... finally/except konstrukcije), itd. U struktuiranim programima, pogotovo nize okoline (konzolne aplikacije), nema nikakvih prepreka za "goto", a od programera zavisi da li ce kod biti citljiv, tj da li ce skociti sa linije 24 na liniju 3246 :D
 
Neznanje? Ama bre ljudi ja pravim jedan program koji nema procedure i funkcije (pa je zato O G R O M A N, sto cu, nadam se popraviti u sledecoj 5oj verziji).
Kasnije cu da ga uprostim....to je barem lako:)
 
Ne znam kako radi goto u pascalu, ali bih hteo da ti napomenem da se koriscenje goto naredbe smatra neznanjem
Pa ne bih se bas slozio da je goto neznanje. To bi pre znacilo na brzinu sklepati program i ne zezati se previse sa nekim projektovanjem programa. Otprilike ono sto rece silver. U sustini mozes svasta da implementiras bez goto sto je pozeljno, ali ne i obavezno. Sa druge strane, neke stvari ne mozes jednostavno da implementiras bez goto. Tako npr. u C-u imas u biblioteci setjmp.h definisane dve instukcije setjmp i longjmp koje su napisane u asembleru i koje su masinski zavisne. One realizuju tkzv. "non-local go to" sto ce reci, da ove dve funkcije cuvaju i vracaju kontekst procesa. Ovo je neophodno kada je skok u drugi stek segment, npr., prilikom process-switching-a. To je tesko realizovati bez nekih slicnih tvorevina.
Postoje unakrsne i obgrljene petlje koje u strukturiranom programiranju nisu dozvoljene pa se to reshava sa GOTO
A ovakve preklapajuce petlje se mogu obicno nekako prepraviti da budu jedna u drugoj, a nasilan prekid jedne prosto realizujes koriscenjem break i continue procedura (ako se dobro secam).
Evo ti primer... znam da je besmislen
Ko sto kaze u primeru, ali bi pre svega toga (tamo negde pre begin) trebalo da stavis:
[code:1]
label positivan, negativan;
begin
.....
positivan:
....
negativan:
....
end.
[/code:1]
ili tako nesto. Silver:"pogledaj u helpu!" :)
Neznanje? Ama bre ljudi ja pravim jedan program koji nema procedure i funkcije (pa je zato O G R O M A N, sto cu, nadam se popraviti u sledecoj 5oj verziji).
Moj ti je savet da ga ODMAH (!!!) uproscavas. Rece da je to lako. E pa iz iskustva znam da je to sve, samo ne lako! Razbijaj ga na logicke procedurice kako znas i umes, jer posle 3 meseca neces znati sta si gde hteo da uradis, narocito sa onim goto, pa ga ni svi bogovi nece na prost nacin uprostiti, a ne ti (bez uvrede - ovo je cisto iz najbolje namere).
 
Ma to nije problem....kad sam vec poceo zavrsicu ga ovako....ionako to radim radi isprobavanja i vezbe....
 
kUdtiHaEX je napisao(la):
Ma to nije problem....kad sam vec poceo zavrsicu ga ovako....ionako to radim radi isprobavanja i vezbe....

A kakav ti je to program? Mislim, daj malo da vidimo na cemu to radis anstajne! :D :D

Pozdrav!
 
Nazad
Vrh Dno