GRY-Online.pl --> Archiwum Forum

Prosty program w Pascalu - drobna pomoc..

12.01.2007
21:23
smile
[1]

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. :)

12.01.2007
23:49
smile
[2]

Hitman14 [ Bad N Fluenz ]

Nie wierzę.. Czyżby takie trudne? :>

12.01.2007
23:50
[3]

Taikun44 [ Emissary Of Death ]

weekend ;) wszyscy programiści oblewają tydzien pracy :)

12.01.2007
23:52
[4]

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

12.01.2007
23:59
smile
[5]

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. :)

13.01.2007
00:00
[6]

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...

13.01.2007
00:07
[7]

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

13.01.2007
00:19
[8]

umek [ Szczęśliwy ]

nie, bo ten repeat gdzie wypisuje 'nieprawidłowe hasło' uruchomi się wtedy i tylko wtedy, kiedy petla=4

13.01.2007
00:30
[9]

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ć?]



13.01.2007
09:22
smile
[10]

Hitman14 [ Bad N Fluenz ]

No i w górę.

13.01.2007
09:54
[11]

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

13.01.2007
09:58
smile
[12]

Hitman14 [ Bad N Fluenz ]

O, Scatterhead krótko i zwięźle mi to wyjaśnił. Dzięki. :) Tobie umek też dzięki.

spoiler start
A więc kolejna praca zaliczeniowa z głowy. :) Już widzę siebie na egzaminie z tego. :D
spoiler stop

13.01.2007
10:24
[13]

umek [ Szczęśliwy ]

No mówiłem, kiedy 1=2... chociaż i tak lepsze jest 1<>1...
Powiedz ty, do czego to potrzebne?

13.01.2007
10:30
[14]

Scatterhead [ łapaj dzień ]

Htiman14 - jaki kierunek?

13.01.2007
10:34
smile
[15]

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. :)

13.01.2007
10:40
[16]

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;)

© 2000-2025 GRY-OnLine S.A.