INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma};
INSTRUKCJA CASE case wyrażenie of lista_stałych : instrukcja_1; lista_stałych : instrukcja_2;... lista_stałych : instrukcja_n; else instrukcja; end; Wykonaj tę instrukcję, przed którą na liście_stałych występuje wartość wyrażenia lub instrukcję po else, jeśli żadna stała nie pasuje (przed else powinien/może być średnik)
INSTRUCJA CASE c.d. program miesiace; uses crt; var wybrany : integer; write ('Wpisz numer miesiąca: '); readln (wybrany); case wybrany of 2 : writeln ('Ten miesiąc ma 28 dni.'); 1,3,5,7,8,10,12 :writeln ('Ten miesiąc ma 31 dni'); 4,6,9,11 : writeln ('Ten miesiąc ma 30 dni.'); else writeln ('Wybrałeś złą liczbę!'); end; readln; end.
INSTRUKCJA CASE c.d. program jaki_znak; var znak : char; repeat write ('Podaj znak, (! kończy): '); readln (znak); case znak of '0'.. '9' : writeln (znak, ' jest cyfrą'); 'a'.. 'z' : writeln (znak, ' jest małą literą'); 'A'.. 'Z' : writeln (znak, ' jest wielką literą'); '!' : writeln ('Do widzenia'); else writeln ('Niestety nie wiem co to za znak'); end; until znak = '!'; end.
INSTRUKCJA GOTO goto etykieta; Przejdź do instrukcji poprzedzonej etykietą. Każda użyta w programie etykieta musi zostać wcześniej zadeklarowana, podobnie jak zmienne. label etykieta1, et2, 3; Instrukcja, do której będziemy chcieli wykonywać przejście, powinna być poprzedzona etykietą w następujący sposób et2: instrukcja
INSTRUKCJA GOTO c.d. program przeskocz; uses crt; label et3; var a : integer; clrscr; a := 0; writeln ('Początek, a = ', a); goto et3; a := 1; writeln ('Ten tekst się nie wyświetli'); et3: writeln ('Tylko ten tekst się wyświetli, a = ', a); readln; end.
IDENTYFIKATORY Identyfikatory służą do oznaczania zmiennych, stałych, typów, procedur, funkcji, modułów, programów, etykiet. Identyfikator: składa się z liter (także znak podkreślenia) i cyfr zaczyna się od litery długość dowolna, ale tylko 63 znaki są znaczące wielkość liter nie jest brana pod uwagę
SEPARATORY komentarze { komentarz1 } (* komentarz2 *) odstępy (spacje) przejścia do nowego wiersza Dowolne dwa identyfikatory, słowa kluczowe i liczby muszą być rozdzielone co najmniej jednym separatorem. Słowa kluczowe są to zastrzeżone słowa/nazwy, będące integralną częścią języka Turbo Pascal. Są to np. słowa tworzące instrukcje (repeat, until)
TABLICE array [indeks_dolny.. indeks_gorny] of typ_skła array [indeksy_1,..., indeksy_n] of typ_skladowy Tablice (ang. array) służą do przechowywania wielu zmiennych tego samego typu (typ_skladowy). Indeksy określają wielkość tablicy w poszczególnych wymiarach. Indeksy muszą być opisem typu porządkowego. Odwołanie do elementu tablicy tab o indeksie n: tab [n]
TABLICE c.d. Przykłady: var tab1 : array [1.. 10] of integer; tab2 : array [1.. 10, 1.. 10] of integer; tab3 : array ['a'.. 'z'] of integer; tab4 : array ['a'.. 'z', -5.. 5, boolean] of char; tab5 : array ['1'.. '9', 'a'.. 'z', 'A'.. 'Z'] of char; tab6 : array [5.. 9] of string; tab7 : array [1.. 5] of array [1.. 5] of real; tab8 : array [1.. 5, 1.. 5] of real;
TABLICE c.d. program liczby; var tablica_liczb : array [1.. 10, 1.. 10] of integer; i, j, suma : integer; for i := 1 to 10 do for j := 1 to 10 do readln (tablica_liczb [i, j]); suma := 0; for i := 1 to 10 do for j := 1 to 10 do suma := suma + tablica_liczb [i, j]; writeln ('suma wynosi: ', suma); end.
TABLICE c.d. program odwroc; var znaki : array [1.. 20] of char; i : integer; writeln ('Wprowadź 20 znaków:'); for i := 1 to 20 do readln (znaki [i]); writeln ('Oto te znaki w odwróconej kolejności'); for i := 20 downto 1 do write (znaki [i]); readln; end.
TABLICE c.d. program odwroc_napis; var znaki : array [1.. 20] of char; i : integer; writeln ('Wprowadź napis 20 znaków:'); for i := 1 to 20 do read (znaki [i]); readln; writeln ('Oto ten napis w odwróconej kolejności'); for i := 20 downto 1 do write (znaki [i]); readln; end.
TABLICE c.d. program ile_mniejszych; var odp : char; liczby : array [10.. 25] of integer; i, ile_m, liczba_por : integer; writeln ('Program sprawdza, ile liczb w podanym ciągu ' + 'jest mniejszych od podanej liczby.'); writeln ('Podaj ciąg 16 liczb całkowitych'); for i := 10 to 25 do readln (liczby[i]);
repeat ile_m := 0; write ('Podaj liczbe całkowitą do porównania: '); readln (liczba_por); for i := 10 to 25 do if liczby[i] < liczba_por then ile_m:=ile_m+1; writeln ('W ciągu jest ', ile_m,' mniejszych liczb.'); repeat write ('Sprawdzamy dalej?(t/n) '); readln (odp); until (odp='t') or (odp='n') or (odp='t') or (odp='n'); until (odp='n') or (odp='n'); end.
program imiona; var tab_imion : array ['A'.. 'Z'] of string; litera, lit_wyb : char; writeln ('Podaj imiona dla poszczególnych liter:'); for litera := 'A' to 'Z' do write (litera, ': '); readln (tab_imion[litera]); end; write ('Podaj litere: '); readln (lit_wyb); while (lit_wyb >= 'A') and (lit_wyb <= 'Z') do writeln (lit_wyb, '- imię: ', tab_imion[lit_wyb]); write ('Podaj litere: '); readln (lit_wyb); end; end.