Program exemplu
Lectia 4 (din tutorialele de Pascal)
Acesta este un exemplu de program (mic) care arata o parte din potentialul primelor patru tutoriale de Pascal.
Creat si testat doar pe Borland Pascal 7.0, ati fost avertizati

Aici e codul:
- Program Text_miscator;
- uses crt;
- var N, i, start, dif1, dif2: integer;
- s: String;
- linii, coloane: array[1 .. 80] of byte;
- SuntAranjate: Boolean;
- begin
- ClrScr;
- S := 'BitCell.info - IT forum - programare si algoritmica, hardware si altele';
- N := Length(S); {Length returneaza lungimea sirului de caractere}
- Randomize; {initializeaza variabila interna RandSeed cu o valoare luata din ora sistemului}
- {aceasta variabila este variabila de la care porneste generatorul de numere aleatoare}
- for i := 1 to n do
- begin
- linii[i] := Random(49) + 1; {pozitii random, dar fara ultima linie / coloana}
- coloane[i] := Random(79) + 1;
- gotoxy(coloane[i], linii[i]);
- write(s[i]);
- end;
- start := 40 - (N div 2);
- repeat
- SuntAranjate := True;
- for i := 1 to N do
- begin
- if (linii[i] <> 12) or (coloane[i] <> start + i - 1) then
- begin
- {calculam noua pozitie}
- dif1 := abs(coloane[i] - (start + i - 1)); {abs = functia modul din matematica}
- dif2 := abs(linii[i] - 12);
- if ((dif1 = 0) and (dif2 = 0)) or (s[i] = ' ')
- then Continue {continuam bucla FOR, cu urmatoarea valoare a lui i}
- else
- begin
- GotoXY(coloane[i], linii[i]); {stergem litera din vechea pozitie}
- TextColor(Black);
- Write(s[i]);
- end;
- SuntAranjate := False;
- if dif2 > dif1
- then
- begin
- if linii[i] > 12
- then Dec(linii[i])
- else Inc(linii[i]);
- end
- else
- begin
- if coloane[i] > (start + i - 1)
- then Dec(coloane[i])
- else Inc(coloane[i]);
- end;
- {reafisam litera in noua pozitie}
- GotoXY(coloane[i], linii[i]);
- TextColor(LightGray);
- Write(s[i]);
- end;
- end;
- Delay(50); {acest interval de asteptare poate fi modificat pentru viteza}
- until SuntAranjate;
- GotoXY(start, 12); {pe ecran, in modul text, sunt 80 de coloane}
- Write(S); {asa ca afisam textul de la pozitia 40 minus jumatate din text}
- ReadLn;
- end.
Niste explicatii:
- Randomize - pregateste generatorul de numere random (aleatoare)
- Random - genereaza un numar random, intre 0 si N - 1.
- abs - returneaza valoarea absoluta a unui numar. abs(5) = abs(-5) = 5
- Inc - creste valoarea variabilei folosite ca parametru cu 1 sau o valoare specificata.
- Dec - scade valoarea variabilei folosite ca parametru cu 1 sau o valoare specificata.
- Delay - opreste (pauzeaza) executia programului pentru un numar specificat de milisecunde.
Screenshot-uri din timpul rularii programului:


Surse si executabil -
Sper sa va placa

Daca aveti intrebari sau nelamuriri, puteti intreba aici.


