Budowa programu i jego uruchamianie

Wprowadźmy w nowym okienku edycyjnym następujący tekst programu.

Program Pierwszy;

End.

następny program

W celu wykonania programu w jednym z interakcyjnych systemów programowania należy najpierw wybrać w głównym menu opcję RUN. Nacisnąć klawisz R lub przesunąć podświetlenie na napis RUN i nacisnąć klawisz <Enter>.

Nastąpi przetłumaczenie programu na język wewnętrzny kompilatora (kompilacja) i jego wykonanie. Ctrl+F9 są to klawisze szybkiego wyboru tego polecenia.

W okienku edycyjnym program po zainicjowaniu polecenia Run Opcji Run zostanie wykonany. Po wykonaniu – skompilowaniu programu następuje automatyczny powrót do okienka edycyjnego. Należy pamiętać, że program który nie jest jeszcze w należytej postaci kompilujemy do pamięci (opcja compile memory). Na dysk kompilujemy programy już gotowe. Tworzy się wtedy program wykonawczy z rozszerzeniem .exe.

W celu zobaczenia wyniku wykonania programu należy uaktywnić opcję DEBUG, wybrać polecenie USER SCREEN które powoduje przejście do ekranu użytkownika (ekranu wykonawczego programu) i na ekranie powinien pojawić się napis Dzień dobry

Powrót do ekranu systemowego nastąpi po naciśnięciu dowolnego klawisza. Szybkie wyświetlenie ekranu użytkownika można otrzymać przez naciśnięcie klawiszy Alt+F5.

Jednym z programowych zabezpieczeń przed szybkim znikaniem wyświetlanych wyników jest wywołanie standardowej procedury READLN – bez parametrów. Powoduje ona zatrzymanie przebiegu – wykonania programu do chwili naciśnięcia klawisza <Enter>. Program wtedy ma postać:

Program Pierwszy;

    Begin

    Write(‘Dzień dobry’);

    Readln

End.

powrót do głównego menu

W systemach programowania fakt redagowania nowego programu lub modyfikacja programu istniejącego jest sygnalizowany gwiazdką (*) w lewym dolnym narożniku okna edycyjnego. Gwiazdka oznacza, że dotychczasowa wersja programu nie została jeszcze zapisana. W celu zapisania programu na dysku należy nacisnąć klawisz F2.

Podczas pisania lub redagowania programu można uzyskać niezbędnie informacje dotyczące języka programowania Turbo Pascal w okienku HELP. Należy w okienku edycyjnym przesunąć kursor na dowolny element języka i nacisnąć klawisze Ctrl+F1. Informacja typu Help zniknie z ekranu po naciśnięciu klawisza Esc. Informacje wyświetlane w okienku Help mogą być kopiowane do programu.

Do kopiowania tekstu z okienka Hepl służą polecenia COPY i COPY EXAMPLE, które występują w menu lokalnym tego okienka. Można to zrobić następująco:

  • za pomocą klawiszy Shift+Ż zaznacz odpowiedni tekst,
  • zainicjować polecenie skopiowania zaznaczonego tekstu do okienka Clipboard (bufora powielania) przez naciśnięcie klawiszy Ctrl_Ins,
  • otworzyć okienko Clipboard (za pomocą polecenia Edit+Show clipboard).

Cały tekst znajdujący się w okienku Clipboard (lub jego fragment) może być powielany w dowolnym okienku edycyjnym za pomocą polecenia Edit Paste. Tekst który będzie powielony musi być w okienku Clipbard podświetlony, tj. zaznaczony jako blok (bezpośrednio po wykonaniu operacji kopiowania do bufora, blokiem jest tekst umieszczony przez tę operację w buforze.

Powielenie w bieżącym okienku edycyjnym tekstu zaznaczonego jako blok w okienku Clipboard, uzyskujemy przez naciśnięcie klawiszy Shift+Ins lub zainicjowanie polecenia PASTE w menu opcji EDIT.

Systemy programowania można opuścić czasowo lub na stałe.

W celu czasowego wyjścia z systemu Turbo Pascal do systemu DOS należy w opcji FILE zainicjować polecenie DOS SHELL. Przy aktywnym menu podrzędnym opcji FILE polecenie to inicjuje się przez naciśnięcie klawisza O lub podświetlenia napisu DOS SHEL i naciśnięcie klawisza <Enter>. Powrót do systemu Turbo Pascal nastąpi po wprowadzeniu z poziomu systemu operacyjnego DOS polecenia EXIT <Enter>

Wyjście na stałe ze zintegrowanego systemu programowania następuje po zainicjowaniu polecenia OUIT opcji FILE lub klawiszami szybkiego wyboru Alt+X.

Struktura zintegrowanego systemu programowania dla trybu rzeczywistego DOS-u.

Opcja FILE.

  • polecenia NEW i OPEN,
  • polecenia SAVE, SAVE AS i SAVE ALL – do zapisywania na dysku zbirów redagowanych w okienkach edycyjnych,
  • polecenie CHANGE DIR – określenie bieżącego napędu i bieżącego skorowidza.
    W okienku tym występują dwa okienka – wejściowe i listowe oraz cztery polecenia OK., CHDIR, REVERT i HELP,

  • polecenia PRINT i PRINTER SETUP – do wydrukowania zawartości aktywnego okienka edycyjnego (Ctrl+K+P). Zbiór PRNFLTR.EXE znajduje się w tym samym skorowidzu, co zintegrowane systemy programowania – TURBO.EXE i TPX.EXE.

 

Turbo Pascal zawiera wbudowany wewnętrznie edytor tekstów przeznaczony specjalnie do pisania tekstów Ÿródłowych programów. Edytor ten pozwala na napisanie do 32767 wierszy tekstu. W jednym wierszu można napisać do 1022 znaków. Jednak dla tekstu programu paskalowskiego jak również modułu obowiązuje ograniczenie do 127 znaków w wierszu tyle bowiem rozpoznaje kompilator.

Edytory tekstów zintegrowanych systemów programowania pakietu Turbo Pascal pozwalają na automatyczne wykonanie ponad 60 operacji edytorskich.

Program napisany w języku Turbo Pascal składa się z nagłówka, deklaracji modułów części wykonawczej oraz kropki.

powrót do głównego menu

następny program Tak wygląda przykładowy program wyświetlający dokładnie na środku ekranu napis Dzień dobry.

Program Pierwszy_Moj;

    uses Crt;

Begin

    ClrScr;

    Textcolor(red);

    GotoXY(35,13);

    WriteLn('Dzień dobry');

End.

następny program Taki sam efekt wyświetlenia napisu idealnie na środku ekranu możemy otrzymać po zastosowaniu instrukcji ROUND.

Program Pierwszy;

    uses Crt;

    const Napis= 'WITAMY W PRACOWNI INFORMATYCZNEJ';

Begin ClrScr;

    TextColor(2);

    GotoXY(Round((80-Length(napis))/2),Round(25/2));

    WriteLn(Napis);

    Readkey;

End.

Każda zmienna występująca w programie musi być zdeklarowana. Posiada swoją nazwę (identyfikator) i przyjmuje wartości z określonego zbioru. Zbiór ten nazywa się typem zmiennej. Typy dzielą się na standardowe i niestandardowe. Standardowe są predefiniowane i nie wymagają żadnego opisu. Natomiast wszelkie typy wprowadzone przez programistę muszą zostać przez niego dokładnie opisane. Definicja taka opisuje typ i jednocześnie przyporządkowuje mu identyfikator.

identyfikator typu = opis typu;

Opis typu oznacza opis typu wyliczeniowego, okrojonego, łańcuchowego, tablicowego, rekordowego, zbiorowego, plikowego, obiektowego, wskaźnikowego, proceduralnego lub identyfikator typu.

Identyfikatorem typu może być identyfikator typu standardowego lub typu zdefiniowanego wcześniej.

Standardowymi typami są : ShortInt, Integer, LongInt, Byte, Word, Real, Boolean, ByteBool, WordBool, LongBool, Char, Text i Pointer.

Typ zmiennej może być określony w deklaracji zmiennej lub w definicji typu. Stosowanie w programie identyfikatorów typów – zamiast ich opisów- zwiększa czytelność programu oraz ułatwia jego strukturalizację.

Można rozpocząć naukę programowania z zastosowaniem prostych przykładów matematycznych.

powrót do głównego menu

następny program Program ten oblicza pierwiastek z dowolnie podanej liczby i wynik wyświetla na ekranie.

Program Pierwiastek_liczby;

    uses Crt;

    var m_p,pocz,kon,liczba_p:integer;

Begin

    ClrScr;

    Write('Podaj liczbę startową : ');

    ReadLn(pocz);

    Write('Podaj liczbę końcową : '

    ReadLn(kon);

    Write('Ile miejsc po przecinku : ');

    ReadLn(m_p);

    For liczba_p:=pocz to kon do

    WriteLn('Pierwiastek liczby ',liczba_p,' wynosi ',sqrt(liczba_p):0:m_p);

    Readkey;

End.

powrót do głównego menu

następny program Program obliczający promień kuli o promieniu r, z dokładnością do 0,001.

Program Kula;

    uses Crt;

    const r:byte=1;

Begin

    ClrScr;

    Write('Podaj promień kuli : ');

    ReadLn(r);

    WriteLn('Promień kuli r = ',r);

    Write('Objętość kuli o promieniu r = ', 4/3*pi*r*r*r:8:3);

    readkey;

End.

powrót do głównego menu

następny program Program obliczający długość odcinka na płaszczyźnie.

Program Dlugosc_odcinka;

    uses Crt;

    var x1,x2,y1,y2:real;

Begin

    ClrScr;

    WriteLn('PROGRAM OBLICZAJĄCY DŁUGOŚĆ ODCINKA');

    WriteLn('Podaj współrzędne początku i końca odcinka');

    Write('Podaj warto˜† x1 : ');

    ReadLn(x1);

    Write('Podaj warto˜† y1 : ');

    ReadLn(y1);

    Write('Podaj warto˜† x2 : ');

    ReadLn(x2);

    Write('Podaj warto˜† y2 : ');

    ReadLn(y2);

    WriteLn('Długość odcinka wynosi : '

    readkey;

End.

powrót do głównego menu

następny program Ten sam program można napisać dbając jednocześnie o estetykę.

Program Dlugosc_odcinka;

    uses Crt;

    var x1,x2,y1,y2:real;

Begin

    ClrScr;

    GotoXY(20,3);

    TextColor(11);

    WriteLn('PROGRAM OBLICZAJĄCY DŁUGOŚĆ ODCINKA');

    GotoXY(16,7);

    TextColor(2);

    WriteLn('Podaj współrzędne początku i końca odcinka');

    GotoXY(25,9);

    Write('Podaj wartość x1 : ');

    ReadLn(x1);

    GotoXY(25,10);

    Write('Podaj wartość y1 : ');

    ReadLn(y1);

    GotoXY(25,11);

    Write('Podaj wartość x2 : ');

    ReadLn(x2);

    GotoXY(25,12);

    Write('Podaj wartość y2 : ');

    ReadLn(y2);

    GotoXY(16,16);

    TextColor(4);

    WriteLn('Długość odcinka wynosi : ' ,Sqrt(sqr(x2-x1)+sqr(y2-y1)):10:3);

    GotoXY(29,20);

    TextColor(121);

    WriteLn('KONIEC PROGRAMU');

    GotoXY(26,21);

    WriteLn('WCIŚNIJ KLAWISZ ENTER');

    readkey;

End.

powrót do głównego menu

następny program Poniższy program po uruchomieniu wyświetli na ekranie jeden słupek tabliczki mnożenia. Mnożnik jest zadeklarowany jako stała o określonej wartości.

Program Tabliczka_mnozenia;

    uses Crt;

    const mnoznik=5;

Begin

    ClrScr;

    WriteLn('1*',mnoznik,'=',1*mnoznik);

    WriteLn('2*',mnoznik,'=',2*mnoznik);

    WriteLn('3*',mnoznik,'=',3*mnoznik);

    WriteLn('4*',mnoznik,'=',4*mnoznik);

    WriteLn('5*',mnoznik,'=',5*mnoznik);

    WriteLn('6*',mnoznik,'=',6*mnoznik);

    WriteLn('7*',mnoznik,'=',7*mnoznik);

    WriteLn('8*',mnoznik,'=',8*mnoznik);

    WriteLn('9*',mnoznik,'=',9*mnoznik);

    WriteLn('10*',mnoznik,'=',10*mnoznik);

End.

powrót do głównego menu

następny program Ten program wyświetla kolejne słupki tabliczki mnożenia, które są rozmieszczone symetrycznie. Wartość pierwszego mnożnika jest zadeklarowana w części deklaracyjnej programu.

Program Tabliczka_mnozenia;

    uses Crt;

    const mn:byte=5;

    pozX:byte=1;

Begin

    ClrScr;

    GotoXY(pozX,WhereY);

    WriteLn('1*',mn, '=' ,1*mn);

    WriteLn('2*',mn, '=' ,2*mn);

    WriteLn('3*',mn, '=' ,3*mn);

    WriteLn('4*',mn, '=' ,4*mn);

    WriteLn('5*',mn, '=' ,5*mn);

    WriteLn('6*',mn, '=' ,6*mn);

    WriteLn('7*',mn, '=' ,7*mn);

    WriteLn('8*',mn, '=' ,8*mn);

    WriteLn('9*',mn, '=' ,9*mn);

    WriteLn('10*',mn, '=' ,10*mn);

    WriteLn;

    WriteLn;

    Inc(mn);

    GotoXY(pozX,WhereY);

    WriteLn('1*',mn, '=' ,1*mn);

    WriteLn('2*',mn, '=' ,2*mn);

    WriteLn('3*',mn, '=' ,3*mn);

    WriteLn('4*',mn, '=' ,4*mn);

    WriteLn('5*',mn, '=' ,5*mn);

    WriteLn('6*',mn, '=' ,6*mn);

    WriteLn('7*',mn, '=' ,7*mn);

    WriteLn('8*',mn, '=' ,8*mn);

    WriteLn('9*',mn, '=' ,9*mn);

    WriteLn('10*',mn, '=' ,10*mn);

    Inc(mn);

    pozX:=40;

    GotoXY(pozX,1);

    WriteLn('1*',mn, '=' ,1*mn);

    GotoXY(pozX,2);

    WriteLn('2*',mn, '=' ,2*mn);

    GotoXY(pozX,3);

    WriteLn('3*',mn, '=' ,3*mn);

    GotoXY(pozX,4);

    WriteLn('4*',mn, '=' ,4*mn);

    GotoXY(pozX,5);

    WriteLn('5*',mn, '=' ,5*mn);

    GotoXY(pozX,6);

    WriteLn('6*',mn, '=' ,6*mn);

    GotoXY(pozX,7);

    WriteLn('7*',mn, '=' ,7*mn);

    GotoXY(pozX,8);

    WriteLn('8*',mn, '=' ,8*mn);

    GotoXY(pozX,9);

    WriteLn('9*',mn, '=' ,9*mn);

    GotoXY(pozX,10);

    WriteLn('10*',mn, '=' ,10*mn);

    WriteLn;

    WriteLn;

    Inc(mn);

    GotoXY(pozX,WhereY);

    WriteLn('1*',mn, '=' ,1*mn);

    GotoXY(pozX,WhereY);

    WriteLn('2*',mn, '=' ,2*mn);

    GotoXY(pozX,WhereY);

    WriteLn('3*',mn, '=' ,3*mn);

    GotoXY(pozX,WhereY);

    WriteLn('4*',mn, '=' ,4*mn);

    GotoXY(pozX,WhereY);

    WriteLn('5*',mn, '=' ,5*mn);

    GotoXY(pozX,WhereY);

    WriteLn('6*',mn, '=' ,6*mn);

    GotoXY(pozX,WhereY);

    WriteLn('7*',mn, '=' ,7*mn);

    GotoXY(pozX,WhereY);

    WriteLn('8*',mn, '=' ,8*mn);

    GotoXY(pozX,WhereY);

    WriteLn('9*',mn, '=' ,9*mn);

    GotoXY(pozX,WhereY);

    WriteLn('10*',mn, '=' ,10*mn);

    readkey;

End.

powrót do głównego menu

na koniec strony Poniższy program wyświetla 4 kolejne słupki tabliczki mnożenia rozmieszczone symetrycznie tak, aby każdy z nich był w oknie o innym kolorze tła i innym kolorze pisaka.

Program Mnoz_kol;

    uses Crt;

    const mn:byte=5;

    pozX:byte=1;

Begin

    Window(1,1,40,12); {wymiar okna x1,y1,x2,y2 - lewy górny}

    TextBackground(4);

    ClrScr;

    TextColor(15);

    WriteLn('1*',mn,'=',1*mn);

    WriteLn('2*',mn,'=',2*mn);

    WriteLn('3*',mn,'=',3*mn);

    WriteLn('4*',mn,'=',4*mn);

    WriteLn('5*',mn,'=',5*mn);

    WriteLn('6*',mn,'=',6*mn);

    WriteLn('7*',mn,'=',7*mn);

    WriteLn('8*',mn,'=',8*mn);

    WriteLn('9*',mn,'=',9*mn);

    WriteLn('10*',mn,'=',10*mn);

    Window(1,13,40,25); {wymiar okna x1,y1,x2,y2 - lewy dolny}

    TextBackground(3);

    ClrScr;

    TextColor(1);

    Inc(mn);

    WriteLn('1*',mn,'=',1*mn);

    WriteLn('2*',mn,'=',2*mn);

    WriteLn('3*',mn,'=',3*mn);

    WriteLn('4*',mn,'=',4*mn);

    WriteLn('5*',mn,'=',5*mn);

    WriteLn('6*',mn,'=',6*mn);

    WriteLn('7*',mn,'=',7*mn);

    WriteLn('8*',mn,'=',8*mn);

    WriteLn('9*',mn,'=',9*mn);

    WriteLn('10*',mn,'=',10*mn);

    Window(41,1,80,12); {wymiar okna x1,y1,x2,y2 - prawy górny}

    TextBackground(9);

    ClrScr;

    TextColor(14);

    Inc(mn);

    WriteLn('1*',mn,'=',1*mn);

    WriteLn('2*',mn,'=',2*mn);

    WriteLn('3*',mn,'=',3*mn);

    WriteLn('4*',mn,'=',4*mn);

    WriteLn('5*',mn,'=',5*mn);

    WriteLn('6*',mn,'=',6*mn);

    WriteLn('7*',mn,'=',7*mn);

    WriteLn('8*',mn,'=',8*mn);

    WriteLn('9*',mn,'=',9*mn);

    WriteLn('10*',mn,'=',10*mn);

    Window(41,13,80,25); {wymiar okna x1,y1,x2,y2 - prawy dolny}

    TextBackground(7);

    ClrScr;

    TextColor(4);

    Inc(mn);

    WriteLn('1*',mn,'=',1*mn);

    WriteLn('2*',mn,'=',2*mn);

    WriteLn('3*',mn,'=',3*mn);

    WriteLn('4*',mn,'=',4*mn);

    WriteLn('5*',mn,'=',5*mn);

    WriteLn('6*',mn,'=',6*mn);

    WriteLn('7*',mn,'=',7*mn);

    WriteLn('8*',mn,'=',8*mn);

    WriteLn('9*',mn,'=',9*mn);

    WriteLn('10*',mn,'=',10*mn);

    readkey;

End.

powrót do głównego menu