Dyskusja: Pascal...pytanie
Podgląd pojedynczego posta
Stary 01.12.2007, 22:09   #26
Patrix
Pingwin specjalista.
 
Avatar użytkownika Patrix
 
Data rejestracji: 22.06.2002
Lokalizacja: Central Park
Posty: 15,089
Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>
Cytat:
Napisany przez Berion Podgląd Wiadomości
Ale powiedz please, czemu etykiety to niedobry pomys***322;?
bo jest be
za pomoc***261; goto nie mo***380;na skoczy***263; do innej procedury, p***281;tli...

poza tym estetyka...
tworzenie menu za pomoca goto jest kozackie... i tak wyglada...
zamiast je robic za pomoca goto/etykiet i if'ow to lepiej podzielic program na procedury i wywolywac je za pomoca case... wygl***261;da ***322;adniej i logiczniej...


napisalem Ci na kolanie menu... teraz zr***243;b to samo na goto teraz rozumiesz?
Kod:
program bleble;
uses crt;
var
zonk,zonk1:integer;

procedure aa;
        begin
                writeln('jeden');
        end;
procedure bb;
        begin
                writeln('dwa');
        end;
procedure menu;
        begin
                writeln('[1] procedura aa');
                writeln('[2] procedura bb');
                writeln('[3] wyjdz');
                read(zonk);
        end;
begin
        clrscr;
        zonk1 := 1;
        repeat
         menu;
           case zonk of
                1: aa;
                2: bb;
                3: exit;
           end;
        until zonk1 <> 1;
        readln;
end.
po pewnym czasie doszedlbys do wniosku:

jesli bedziesz miec kilkanascie etykiet to stracisz kontrole nad programem...

np.

masz w programie kolejno (gdzies tam miedzy kodem)

label zonk1;
(...)
label zonk2;
(...)
label zonk3
(...)
label zonkN

i teraz tak jak wywolasz etykiete zonk1; to wykona sie wszystko w innych etykietach nizej czy tego chcesz czy nie...
jesli wywolasz zonk2; to tez za kazdym razem wykona sie wszystko co pod nia...

wywolujac procedure case'm _wyjmujesz_ do wykonania potrzebny Ci FRAGMENT programu, tego nie uzyskasz za pomoca goto
__________________
amiga500site

Ostatnio zmieniany przez Patrix : 01.12.2007 o godz. 22:18
Patrix jest offline   Odpowiedz cytując ten post