Programowanie w Turbo Pascal u. Darmowe kursy dla początkujących, informacje dla zaawansowanych, kody źródłowe, forum, download. Twoje źródło wiedzy o Turbo Pascal u. Turbo Pascal dla każdego!
» Dwie części naszego kursu - "And :: or" - "Pętle (repeat, while, for)".
» Działy - "Dodatkowe" - "Kody źródłowe".
» Nareszcie ruszyło nasze Forum! Jeśli masz jakiś problem zapytaj na nim!
» Dział "Dla zaawansowanych". Tutaj programiści, którzy poznali już podstawy programowania, uzupełnią swoją wiedzę.
» Już teraz w dziale Download możecie ściągnąć pełną wersję programu Borland International Inc. Turbo Pascal 7.0
Pascal jest jednym z najpopularniejszych języków programowania komputerów. Powstał on w 1971 roku, kiedy to Niklaus Wirth opublikował pierwszy artykuł o nim. Upowszechnienie Pascala nastąpiło po roku 1974, w którym Wirth, opierając sie na poprawionym artykule, wydał wraz z Kathleem Jensen pierwszy podręcznik tego języka (drugie, poprawione wydanie podręcznika ukazało się w 1976 roku, a trzecie w roku 1985). W zamierzeniu Wirtha język Pascal miał służyć przede wszystkim do nauki programowania strukturalnego, czyli określania dużych elementów poprzez elementy niższego rzędu, aż do końcowych elementów programowych realizujących określone funkcje. Wraz z rozwojem techniki mikrokomputerów pojawiły sie liczne wersje języka Pascal. Światowy prymat należy jednak do tak zwanego Turbo Pascala, wprowadzonego na rynek w 1983 roku przez amerykańską firmę Borland International Inc.Stałe wzbogacanie i doskonalenie języka Turbo Pascal przez Borland doprowadziło do powstania pod koniec 1992 roku wersji 7.0 która pojawiła sie na rynku w postaci dwóch pakietów: Borland Pascal 7.0 i Turbo Pascal 7.0 .
Czym jest programowanie
"Gdy napiszesz, co komputer ma zrobić, będzie to nazywać się programowaniem. Najwspanialszy jest w tym wszystkim fakt, że można samemu określać zadania, które mają być wykonane. Po uruchomieniu programu komputer wykona wszystko to, czego od niego oczekujesz. Oczywiście nie oznacza to, że posprząta Twój pokój i przyniesie Ci do łóżka filiżankę kakao. Jednak z chwilą, gdy nauczysz się programować, zdobędziesz pełnię władzy nad swoim komputerem.
Niestety często właśnie podczas programowania zdarza się, że komputer nie chce zrobić czegoś, co chcielibyśmy aby zrobił. Najczęściej dzieje się tak wskutek błędu w programie. Jednak przyczyna może także znajdować się gdzie indziej – w komputerze albo w systemie operacyjnym. Głównym problemem w przypadku wystąpienia błędów jest to, że potrafią się one bardzo dobrze maskować i szukanie ich przyprawiło o ból głowy już niejednego programistę.
Jeśli mimo to nadal masz ochotę zająć się programowaniem, przed rozpoczęciem nauki potrzebne Ci będzie jeszcze odpowiednie środowisko programowe."
Co to jest środowisko programowe
"Aby powstał program, należy wcześniej go napisa, podobnie jak redagując list lub opowiadanie. Korzystamy przy tym z programu służącego do zapisywania tekstu, nazywanego edytorem tekstu. W przypadku programowania program taki może być bardzo prosty, gdyż tworzony w nim dokument nie będzie wymagać szczególnego rodzaju czcionki czy wyjątkowego sposobu prezentacji.
Po wpisaniu programu do komputera nie będzie on jeszcze w stanie przeczytać ani wykonać zawartych w nim poleceń. Program ten należy najpierw przetłumaczyć w taki sposób, aby komputer zrozumiał, czego od niego oczekujesz. Komputer używa bowiem całkiem innego języka niż Ty. W tym celu potrzebny jest tłumacz, który tłumaczy to w taki sposób, aby Twój język był zrozumiały dla komputera. Program, który pełni rolę tłumacza, to kompilator.
Przed oddaniem do użytku programy muszą być wielokrotnie edytowane, udoskonalane, testowane i stale rozwijane. Jest to możliwe dzięki wielu programom pomocniczym, które tworzą spójny system zwany środowiskiem programowym. "
Popularne języki programowania
"Niestety nie możemy programować dokłanie w sposób, w jakim mówimy. Język programowania musi być zbudowany tak, aby mogła się nim posługiwać możliwie duża grupa ludzi pochodzących z różnych krajów.
Ze względu na to, że na całym świecie wielu ludzi zna przynajmniej podstawy języka angielskiego, niemal każdy język programowania składa się ze słów angielskich. Wprawdzie podejmowane są próby programowania, np. w języku niemieckim, jednak najczęściej brzmienie nowych słów jest tak sztuczne, że każdy chętnie powraca do zwrotów angielskich."
Dzięki naszemu kursowi szybko nauczysz się programować w Turbo Pascal u!
Najpopularniejsze typy zmiennych
» Byte 0..255
» Real ??????????
» Shortint -128 ..127
» Longint -2 147 483 648 ..2 147 483 647
» Integer -32768 ..32767
» Word 0 ..65 535
» Char Pojedyńczy znak
» String Ciąg znaków (max: 255)
Wskazówka
Nie każda zmienna może wykonać dane zadanie np. nie możemy wykonać działań matematycznych na zmiennej string.
PROGRAM wiek;
VAR
latka: integer; //1
BEGIN
writeln ('Witaj! Ile masz lat?');
readln (latka);
writeln ('No to zostało ci jeszcze ',100-latka, ' lat do setki'); //2
readln;
END.
» Do typu Integer (1) zaliczamy tylko liczby całkowite (bez ułamków dziesiętnych), a przeciez do podania wieku nie są nam potrzebne ułamki.
» Program nie wyświetla wartości zmiennej "latka", ale wykonuje również nieskomplikowane działanie(2). Od 100 odejmuje wartość, którą wprowadził użytkownik (zmienna "latka"). Aby wyświetlić samą zmienną, wystarczyłoby wpisać: "writeln ('A wiec masz ',latka,' lat');".
Jedno zadanie :D
» Napisz program, który oprócz pytania o imie zapyta Cię także o cztery inne rzeczy (data urodzenia, adres zamieszkania, nazwisko itp.) i wyświetli wszystko na ekranie.
PROGRAM samopoczucie;
VAR
odpowiedz: string;
BEGIN
writeln ('Jak się czujesz?');
readln (odpowiedz);
if odpowiedz = 'dobrze' then //1
writeln ('Cieszę się!'); //2
if odpowiedz = 'zle' then
writeln ('Przykro mi!')
else
writeln ('Nie rozumiem');
readln;
END.
» Instrukcja if - then - else sprawdza co zostało wpisane w zmiennej (1), zależnie od tego wykonuje odpowiedni blok instrukcji (2). Jeżeli żaden z warunków nie może być spełniony (3) wykonuje inny blok instrukcji.

» Niestety gdy uruchomimy program nawet jesli spełnisz pierwszy warunek, pojawi się tekst nie spełnionych warunków (else). Dzieje się tak dlatego, że else zawsze jest związane z konstrukcją if - then, która bezpośrednio ją wyprzedza.
» Musimy więc zastosować przeplatanie:
PROGRAM samopoczucie;
VAR
odpowiedz: string;
BEGIN
writeln ('Jak się czujesz?');
readln (odpowiedz);
if odpowiedz = 'dobrze' then //1
writeln ('Cieszę się!')
else if odpowiedz = 'zle' then //2
writeln ('Przykro mi!')
else //3
writeln ('Nie rozumiem');
readln;
END.
» Najpierw program sprawdza, czy odpowiedź brzmi "dobrze" (if - then) (1);
» Jeżeli nie (else) sprawdza drugi warunek (if - then) (2)
» We wszystkich innych przypadkach (else) wyświetla zdanie "nie rozumiem".
Wskazówka
If - then - else to jedna konstrukcja, więc przed słowem Else nie stawiamy średnika.
PROGRAM matma;
VAR
liczba1, liczba2, wynik: real; operator: char;
BEGIN
write ('Pierwsza liczba: ');
readln (liczba1);
write ('Operator (/,*,-,+): ');
readln (operator);
write ('Druga liczba: ');
readln (liczba2);
case operator of //1
'+': wynik := liczba1 + liczba2; //2
'-': wynik := liczba1 - liczba2;
'*': wynik := liczba1 * liczba2;
'/': wynik := liczba1 / liczba2;
else //3
writeln ('Podałeś zły znak!');
end; //4
writeln ('Wynik: ',wynik:4:2); //5
readln;
END.
» Struktura case-of (1) działa podobnie jak if - then, ale jest bardziej przejżystrza i nie musimy stosować przeplatania. Niestyty nie możemy w niej wykorzystywać zmienej string.
» Instrukcja sprawdza, czy zmienna ("operator") przyjęła jedną z określonych wartości, jeśli tak wykonuje odpowiedni blok instrukcji. Każda wartość (2) jest oddzielona dwukropkiem od wyznaczonego jej bloku instrukcji. W przeciwnym wypadku (3) wykonuje inne polecenie. Ta instrukcja dotyczy wszystkich wypisanych wcześniej warunków, uaktywnia się dopiero wtedy, gdy żaden z nich nie został spełniony.
» Całą strukturę kończy end z średnikiem (4).
» Instrukcja writeln wraz z zmienną (5) pokazuje wynik działania. Cyfry za zmienną pokazują programowi w jakim formacie ma byc wyświetlny wynik. Można to przetłumaczyć w następujący sposób:
"Pokaż wynik tak, aby składał się łącznie z czterech znaków, z czego dwa znaki mają być po przecinku."
» Wynik działania musi zostać zapisany, aby komputer mógł go później wyświetlić. Jest to moźliwe dzięki przypisywaniu (2). Operator przypisywania tworzy ":=" (brak odstępu pomiędzy nimi).
» wynik := liczba1 * liczba 2;
Po lewej stronie znajduje się zmienna, której program przypisze wartość, jaką otrzyma w wyniku obliczenia.
Po prawej wzór matematyczny.
Wskazówka
W instrukcji case-of można zasosować - od jakiej wartości do jakiej - program ma wykonać daną instrukcję (np. od liczby 20 do 50). Instrukcja wygląda w następujący sposób:
case wiek of
0..12: writeln ('Jeszcze jesteś dzieckiem!');
13..17: writeln ('Ah.. Ta dzisiejsza młodzież!');
18..40: writeln ('Jesteś w sile wieku!');
41..80: writeln ('Już nie te lata!');
81..100: writeln ('Jak na te lata dobrze się trzymasz!');
end;
Podstawowe działania matematyczne
» + - dodawanie - np. wynik := a+b;
» - - odejmowanie - np. wynik := a-b;
» * - mnożenie - np. wynik := a*b;
» / - dzielenie - np. wynik := a/b;
» div - dzielenie całkowite - np. wynik := a div b;
» mod - reszta z dzielenia - np. wynik := a mod b;
» sqrt - pierwiastek 2 stopnia - np. sqrt(a);
» sin - sinus - np. sin(a);
» cos - cosinus - np. cos(a);
» sqr - kwadrat liczby - np. sqr(a);
» abs - wartość bezwzględna - np. abs(a);
PROGRAM waga1;
VAR
waga: real;
BEGIN
writeln ('Podaj wagę swojego ciała (kg):');
readln (waga);
if (waga > 1) and (waga <15) then //1
writeln ('Jesteś lekki(a) jak piórko!'); //2
if (waga >= 15) and (waga < 30) then
writeln ('Możesz jeść desery bez zachamowań...');
if (waga >= 30) and (waga < 70) then
writeln ('Waga w normie :-)');
if (waga >= 70) and (waga < 100) then
writeln ('Pilnuj co ile ma kalorii...');
if (waga >= 100) and (waga < 150) then
writeln ('Nie czas na diete?');
if (waga >= 150) and (waga < 300) then
writeln ('Musisz prędko schudnąć');
if (waga <= 0) or (waga >= 300) then //3
writeln ('Błąd przy wpisywaniu danych...'); //4
readln;
END.
» Słowo And w pierwszej instrukcji if-then (1) pilnuje, aby blok instrukcji (2) był wykonany dopiero wtedy, gdy oba warunki zostaną spełnione. W naszym przypadku zmienna "waga" musi być większa od 1 oraz mniejsza od 15.
» Słowo Or (3) oznacza, że tylko jeden z warunków musi być spełniony, aby program mógł wykonać blok instrukcji (4). W naszym programie jesli wpiszesz liczbę mniejszą lub równą 0, albo większą od 300 wtedy zostanie wyswietlony komunikat.
» Nawiasy (1) dają do zrozumienia Turbo Pascal'owi, gdzie kończy się jeden warunek, a zaczyna następny.
Wskazówka
Znaki np. >, <, =..., które występują w różnych warunkach to operatory porównawcze.
Operatory porównawcze
» = - równa się
» < - mniejszy od...
» > - większy od...
» <> - różny od...
» >= - większy lub równy
» <= - mniejszy lub równy
Jedno zadanie
» Napisz program wiek, ktory bedzie prosił użytkownika o podanie wieku, a następnie korzystając z operatorów porównawczych wyświetlał odpowiednie komunikaty.
Jedno zadanie
» Rozwiń swój program o conajmniej dwa przeplatania. Dodając do niego więcej warunków.
PROGRAM petla1;
VAR
i: integer;
BEGIN
repeat //1
write ('Wpisz liczbę 100: ');
readln (i);
until i = 100; //2
readln;
END.
» Pętla (1) "zmusza" komputer do powtarzania wszystkiego co znajduje się pomiędzy słowami repeat - until aż do tej pory, gdy zostanie spełniony warunek (2).
» Struktura kontroli (inna nazwa pętli) podobnie jak if - then ma za zadanie kontrolowanie czegoś. W naszym przypadku sprawdza, czy wartość zmiennej "i" wynosi 100 i zdecydować, czy powtórzyć instrukcję czy zakończyć pętle.
Wskazówka
Instrukcja "break;" powoduje, że program przerywa pętle, a "halt;" zamyka cały program.
Pętla While - do
PROGRAM petla2;
VAR
i: integer;
BEGIN
i := 1;
while i <= 100 do //1
begin //2
write ('Wpisz liczbę większą od 100: ');
readln (i);
end; //3
readln;
END.
» W konstrukcji while - do (1) warunek znajduje się na początku, więc program wcale nie musi wykonywać bloku instrukcji, jeżeli warunek jest już spełniony.
» Jeżeli w strukturze kontroli while - do blok instrukcji zawiera więcej niż jedno polecenie trzeba wyraźnie zaznaczyć, gdzie się zaczyna (2), a gdzie kończy (3). Jest to możliwe za pomocą begin - end;. Ta czynność niepotrzebna jest w pętli repeat - until, gdyż w niej wyraźnie zaznaczone jest, gdzie znajduje się początek (repeat), a gdzie koniec (until).
Różnice pomiędzy pętlami
While - do: warunek znajduje się na początku pętli, a kiedy warunek jest spełniony program powtarza pętlę.
Repeat - until: warunek znajduje się na końcu pętli, a kiedy warunek jest spełniony program kończy pętlę.
PROGRAM petla3;
VAR
i: integer
BEGIN
for i := 0 to 5 do //1
begin
writeln ('Do zakończenia programu pozostało: ',i); //2
readln;
end;
readln;
END.
» Działanie pętli możemy przetłumaczyć w następujący sposób:
"DLA zmiennej, której wartość zmienia się od początkowej do końcowej, komputer powinien POWTARZAĆ blok instrukcji."
» Konstrukcja for - do (1) również powtarza określony blok instrukcji (2) do tego czasu aż wartość początkowa, którą w naszym przypadku jest 1, będzie równa wartości końcowej [5]. Dzięki tej pętli szczegółowo zaplanujesz ile razy dany blok instrukcji zostanie wykonany. Już na początku pętli (1) ustalasz od jakiej liczby komputer będzie odliczał [1] do jakiej [5]. Za każdym razem, gdy komputer wykona dany blok instrukcji wartość początkowa zwiększy się o 1 itd. Ta czynność będzie trwała tak długo aż wartość początkowa i końcowa będą sobie równe.
Wskazówka
Jeżeli chcesz, aby komputer odliczał do tyłu (np. od 5 do 0) zmiast instrukcji "to" (1), wstaw "downto". A jeżeli do przodu (np. od 0 do 100) wstaw instrukcje "to".