Hitman14 [ Bad N Fluenz ]
Prosty program w Pascalu - drobna pomoc..
Jestem kompletnym laikiem, jeśli chodzi o Pascala i mimo tego, że rzekomo mam zajęcia z niego od września, to równie dobrze mogę powiedzieć, że przed godziną zacząłem w ogóle zagłębiać się w ten temat. :) Potrzebuję pomocy, a biorąc pod uwagę uderzającą prostotę tego programu, liczę, że na pewno ktoś mi pomoże. Mam taki program:
Uses CRT;
Const
haslo='Pascal';
Var
wprowadz:String;
petla:byte;
Begin
REPEAT
ClrScr;
GotoXY(31,12);
Write('Podaj haslo : ');
ReadLn(wprowadz);
IF petla=4 THEN
REPEAT
ClrScr;
GotoXY(31,12);
Write('Nieprawidlowe haslo!');
Sound(3160);
Delay(500);
Sound(3190);
Delay(500);
UNTIL 1=2;
petla:=petla+1;
UNTIL wprowadz=haslo;
End.
Moim zadaniem jest wyjaśnienie, za co odpowiada każda kolejna linijka. Brakuje mi tego:
IF petla=4 THEN
REPEAT
Rozumiem, że jest to instrukcja warunkowa. Według tego, co powstało wcześniej, "petla" to zmienna przypisana do typu byte, czyli liczb z przedziału 0-255. Dlaczego w tym programie jest akurat 4? Czy chodzi o to, że gdy wpiszę jakąkolwiek liczbę, to zacznie się procedura, którą rozpoczyna REPEAT? Chyba tak, ale warto zapytać. :)
No i jeszcze to:
UNTIL 1=2;
petla:=petla+1;
UNTIL wprowadz=haslo;
To "UNTIL wprowadz=haslo" rozumiem - jeżeli hasło, które wpiszę, będzie się równało temu, co było na początku - "haslo='Pascal'", to program się zakończy. Ale co z tymi 2 linijkami wcześniej? To z pewnością proste, ale przypominam, że ja dopiero zaczynam i właściwie robię to z przymusu niż dobrych chęci. :)
Hitman14 [ Bad N Fluenz ]
Nie wierzę.. Czyżby takie trudne? :>
Taikun44 [ Emissary Of Death ]
weekend ;) wszyscy programiści oblewają tydzien pracy :)
umek [ Szczęśliwy ]
A kiedy 1=2? :D:D:D
chociaż ja wolę until 1<>1 :D
Proste: masz 4 szanse, potem w nieskończoność prog się zapętli
Hitman14 [ Bad N Fluenz ]
W nieskończoność? Hmm.. Możliwe. :)
Ale w takim razie co z tym until pod koniec? Ewentualnie można nanieść drobną poprawkę, jeśli coś jest bez sensu - ja tego programu nawet nie sprawdzałem. :)
umek [ Szczęśliwy ]
bo ten pierwszy until jest do drugiego repeata
-(
--(
--)
-) -rozumiesz?
wg. tego jeśli w 4 próbach nie wpiszesz hasła, środek się uruchomi (warunek petla=4) i zapętli...
Hitman14 [ Bad N Fluenz ]
bo ten pierwszy until jest do drugiego repeata
-(
--(
--)
-) -rozumiesz?
Ach, tak. :)
wg. tego jeśli w 4 próbach nie wpiszesz hasła, środek się uruchomi (warunek petla=4) i zapętli...
Czyli 'nieprawidłowe hasło' wyskoczy dopiero, gdy w 4 próbie wpiszę znowu błędne hasło? Przepraszam, jeśli moje pytania wydają się głupie, ale cóż poradzić. :)
Bo ja to rozumiem tak - wpisuję hasło 1 raz (źle) - pokazuje, że nieprawidłowe. Wpisuję 2 raz źle - znowu, że nieprawidłowe. Gdy wpiszę dobrze, to program się zakończy. Nie jest tak? :O
umek [ Szczęśliwy ]
nie, bo ten repeat gdzie wypisuje 'nieprawidłowe hasło' uruchomi się wtedy i tylko wtedy, kiedy petla=4
Hitman14 [ Bad N Fluenz ]
Sorry, że tak ciągle pytam, ale zostało parę niejasności jeszcze. :)
W takim razie co się stanie, gdy raz wpiszę nieprawidłowe hasło? Skąd będę wiedział, że jest nieprawidłowe?
I jak wyjaśnić te linijki:
UNTIL 1=2; [jakie 1=2? co to znaczy? :)]
petla:=petla+1; [rozumiem, że to liczy błędne wpisy hasła - gdy dojdzie do 4, to program wyświetli, że hasło jest nieprawidłowe i będzie wydawał piskliwe dźwięki. Bez przerwy? Nie będzie można tego jakoś wyłączyć?]
Hitman14 [ Bad N Fluenz ]
No i w górę.
Scatterhead [ łapaj dzień ]
UNTIL 1=2;
powtarzaj dopoki 1=2 czyli w nieskoczonosc
petla := petla +1 - zwiekszenie zmiennej petla o jeden
program sie legalnie nie zakonczy jezeli zmienna petla dojdzie do 4
Hitman14 [ Bad N Fluenz ]
O, Scatterhead krótko i zwięźle mi to wyjaśnił. Dzięki. :) Tobie umek też dzięki.
umek [ Szczęśliwy ]
No mówiłem, kiedy 1=2... chociaż i tak lepsze jest 1<>1...
Powiedz ty, do czego to potrzebne?
Scatterhead [ łapaj dzień ]
Htiman14 - jaki kierunek?
Hitman14 [ Bad N Fluenz ]
Powiedz ty, do czego to potrzebne?
Htiman14 - jaki kierunek?
Technik informatyk. :D
Szkoła z takim poziomem, że ręce opadają. Na programowaniu uczymy się Pascala i np. rysujemy choinki. :) Na urządzeniach techniki komputerowej uczymy się w jakiej odległości powinien stać monitor, jakie kąty itp. i jakie ćwiczenia robić jak się za długo siedzi przed kompem. Na systemach operacyjnych jak przesunąć tapetę w prawy dolny róg monitora. :)
Ogólnie to lipa, ale przynajmniej mam blisko do szkoły i mam dwa lata czasu, żeby załatwić sobie potrzebne papiery na kat. D. :)
umek [ Szczęśliwy ]
Aha, spoko:]
"Wyciągamy kartki, rząd 1, rząd 2, rząd 1 rysuje choinkę, rząd 2 rysuje gwiazdora"
Wczoraj się z jakimś światłym tech. inf. kłóciłem;)