Wyjasnienie kodu + pytanie.

0

Witam, jestem nowy na forum, jak zreszta widac, od niedawna, no od niedawna (2dni) zaczalem sie uczyc Pascala. NIe powiem, ze jest to dla mnie trudny jezyk, kilka rzeczy nie rozumiem, nie przeszedłem wszystkich też lekcji tego języka. Ale raczej zaczne wszystko od nowa czytac, bo jedyne co rozumiem to writeln, readln etc. te najprostsze rzeczy.

1)Tutaj mam pytanie: - co można w tym języku napisać, jakie programy, przykłady, jeśli można.
2) Jest tutaj kod:

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('Access Denied !');
Sound(3160);
Delay(500);
Sound(3190);
Delay(500);
UNTIL 1=2;
petla:=petla+1;
UNTIL wprowadz=haslo;
{ Haslo poprawne, dalsza część programu }
End.

Nie rozumiem tych petli, o co chodziło autorowi, np. w tym: UNTIL 1=2;
petla:=petla+1;

Nie rozumiem tylko niektórych rzeczy, ale fajnie gdyby ktoś mi to podpisał, co to daje. Dlaczego 1=2.

  1. Ile zajmuje nauczenie sie całkowicie tego pascala, tzn. mozna swobodnie pisac.

Dzieki!

dodanie znacznika <code class="pascal"> - fp

1

Przede wszystkim mimo iż to Twoje początki z programowaniem, najlepiej od razu wyrobić sobie dobre nawyki. Przede wszystkim kody Pascalowo/Delphiowe wstawiamy tutaj w odpowiednich znacznikach. I kod formatujemy. Zobacz na koniec tego posta, czyż nie o wiele czytelniej? Jeżeli nie umiesz fortmatować sam to wspomoż się Lazarusem z formatterem, zewnętrzym programem Jedi Code Formatter albo jeśli piszesz pod Delphi to alternatywną wersją dodatku GExperts z formatterem.

Nie rozumiem tych petli, o co chodziło autorowi, np. w tym: UNTIL 1=2;
petla:=petla+1;

Chodzi o zwiększenie licznika pętli o jeden. Jeżeli podamy źle kod pięć razy to pokaże się Access Denied !. Nie wiem kto Ci to pisał, ale też nie ogarnia podstaw. Przede wszystkim zmienna powinna być zainicjowana, na przykład przez Petla := 0,

Nie rozumiem tylko niektórych rzeczy, ale fajnie gdyby ktoś mi to podpisał, co to daje. Dlaczego 1=2.

Najlepiej poczytaj: Repeat oraz While i inne podstawy języka. Dziwny warunek zakończenia pętli 1 = 2 chodzi o to, że pętla while wykonuje się gdy warunek jest równy True, natomiast repeat ... until w trakcie gdy warunek jest False. Takze można było po prostu napisać until False; albo while True do begin.... Chodzi o to, że warunek 1 = 2 nie jest prawdziwy i nigdy nie zostanie spełniony. Przez co pętla będzie wykonywana w nieskończonośc lub do naciśnięcia Ctrl+C.

  1. Ile zajmuje nauczenie sie całkowicie tego pascala, tzn. mozna swobodnie pisac.

Co do załapania podstaw. To zależy od człowieka. Pascal, również obiektowy jest banalny na start. Imo o wiele bardziej niż C/C++. Najlepiej najpierw poczytaj kurs. Kombinuj dużo samodzielnie. A pisanie z czymkolwiek na forum, traktuj jako ostateczność. Póki nie poznasz podstaw języka, zasad składni i wszystkiego co znać na początek powinieneś, będziesz błądzić po omacku i się motać. Wiadomo na forum pomagamy, ale to o co pytałeś poza 3 podpunktem, można szybciej wyczytać w kursach. I pytania o tak banalne podstawy zadaje się w dziale Newbie. Tam też wątek przenoszę.

uses Crt;

const
  haslo = 'Pascal';

var
  wprowadz : string;
  petla : byte;
begin
  Petla := 0;
  repeat
    ClrScr;
    GotoXY(31, 12);
    Write('Podaj haslo : ');
    ReadLn(wprowadz);
    if petla = 4 then
    begin
      repeat
        ClrScr;
        GotoXY(31, 12);
        Write('Access Denied !');
        Sound(3160);
        Delay(500);
        Sound(3190);
        Delay(500);
      until False;
    end;
    petla := petla + 1;
  until wprowadz = haslo;
end.
0

Kod sam wziąłem ze strony z kursem. Co robi to wiem, bo sobie odpalałem, ale chciałem wiedzieć co poszczególne wersy robią. Jeżeli mówisz, ze autor nie zna/ł podstaw, to juz chyba sobie podaruje ten kurs i poszukam inny :).

Kod był sformatowany, ale przy kopiowaniu i wklejaniu przyczepił się coś do lewej strony ;)

Dzieki za odpowiedz!

1 użytkowników online, w tym zalogowanych: 0, gości: 1