PODSTAWOWE WIADOMOSCI O JĘZYKU TURBO PASCAL

Podobne dokumenty
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Język programowania PASCAL

Wstęp do programowania. Różne różności

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Programowanie RAD Delphi

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Pascal - wprowadzenie

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Elementy języków programowania

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

Przykład programu Rozwiązanie równania postaci:

Zasady Programowania Strukturalnego

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Wstęp do programowania

Podstawy programowania

Algorytmika i Programowanie VBA 1 - podstawy

Podstawy programowania skrót z wykładów:

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PODSTAWY PROGRAMOWANIA

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka

Algorytmy i struktury danych

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

1 Podstawy c++ w pigułce.

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

PODSTAWY PROGRAMOWANIA

Wprowadzenie do języka Pascal

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Algorytmy i struktury danych. wykład 1

Podstawy Programowania C++

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

ForPascal Interpreter języka Pascal

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

PASCAL WPROWADZENIE. 1. Uruchom kompilator. 2. Struktura programu w Pascalu. 3. Komentarze

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Programowanie w Turbo Pascal

MATERIAŁY DO ZAJĘĆ II

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Podstawy programowania

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Programowanie obiektowe

1 Podstawy c++ w pigułce.

Instrukcja standardowa Writeln

Informatyka 1. Przetwarzanie tekstów

Podstawy i języki programowania

Wprowadzenie do programowania w VBA

LibreOffice Calc VBA

Podstawy programowania - 1

Informatyka I. Wyk lad II Algorytm, podstawowe notacje, typy danych i wyrażenia

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Programowanie w języku Python. Grażyna Koba

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Języki programowania zasady ich tworzenia

Podstawy programowania (1)

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

P dst s aw a y w y j ę j zy zy a O JE J CT T P ASCAL

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Języki Programowania. Elementy języków programowania. Wojciech Sobieski

Zmienne, stałe i operatory

Podstawy programowania w C++

Programowanie strukturalne język C - wprowadzenie

Informatyka 1. Algorytm, podstawowe notacje, typy danych i wyrażenia

Lekcja 6: Pascal. Procedura i funkcja

Podstawy Programowania Podstawowa składnia języka C++

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Kompendium wiedzy z Pascala

Instrukcja warunkowa i wyboru

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Zadanie analizy leksykalnej

Powtórka algorytmów. Wprowadzenie do języka Java.

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium 10: Maszyna stanów

Elementy Pascala Konstrukcja programu w Pascalu Typy danych

Podstawy Programowania semestr drugi. Wykład czternasty

Automatyzacja pracy w AutoCAD

PODSTAWY PROGRAMOWANIA

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Podstawy programowania

Transkrypt:

PODSTAWOWE WIADOMOSCI O JĘZYKU TURBO PASCAL! Podstawowe wiadomości o języku Turbo Pascal " Symbole podstawowe. " Jednostki leksykalne. # Słowa kluczowe # Deklaratory # Identyfikatory # Liczby # Łańcuchy # Literały logiczne # Komentarze! Struktura programu " Nagłówek programu " Blok " Deklaracje modułów " Deklaracje etykiet " Definicje nazw literałów (stałych) " Definicje typów " Deklaracje zmiennych " Definicje i deklaracje procedur i funkcji! Sztuka pisania programu Podstawowe wiadomości o języku Turbo Pascal Pierwszy opis języka Pascal opublikował w 1971 r. Niklaus Wirth. Pomyślany on był jako język służący do nauki programowania. Pascal stosowany początkowo do celów edukacyjnych stał się profesjonalnym narzędziem informatycznym. Od tego czasu pojawiło sie wiele wersji tego języka, znacznie odbiegających od pierwowzoru, łamiących nawet strukturalizm języka. Międzynarodowa Organizacja Normalizacyjna ISO przedstawiła w 1980 roku celem ujednolicenia propozycję standardu Pascala. Produkt firmy Borland International Inc. Turbo Pascal odbiega od niego znacznie. Każdy program źródłowy składa się z:! Jednostek leksykalnych (ciągów symboli podstawowych, tj. małych i dużych liter alfabetu angielskiego wraz ze znakami podkreślenia, cyfr dziesiętnych i szesnastkowych, znaków specjalnych i dwuznaczników nie zawierających odstępu),! Odstępów (spacje, tabulacje, znaki zmiany wiersza i komentarze). Symbole podstawowe. Litery A B C D E F G H I J K L M N O P Q R S T U V W Y Z a b c d e f g h i j k l m n o p q r s t u v w y z _ Cyfry 1 2 3 4 5 6 7 8 9 0 Znaki specjalne Znaki sterujące Symbole dwuznakowe + - * / = ^ < > ( ) [ ] { }., : ; # $ @ spacja Kody ASCII od 0 do 31 := operator przypisania <> <= >= operatory relacji.. zakres

(..) nawiasy kwadratowe (* *) nawiasy klamrowe Jednostki leksykalne. Słowa kluczowe Są to spójne ciągi liter tworzące zarezerwowane słowa angielskie o ustalonym znaczeniu. Poniżej ich lista (52 pozycje); and array asm begin case const constructor destructor div do downto else end file for function goto if implementation in inherited inline interface label mod nil not object of or packed procedure program record repeat set shl shr string then to type unit until uses while with xor Deklaratory Są to spójne ciągi liter o ustalonym znaczeniu, które nie są jak słowa kluczowe słowami zarezerwowanymi: absolute assembler external far forward interrupt near private public virtual Identyfikatory Są to ciagi liter i znaków rozpoczynające się od litery, nie będące słowem kluczowym. Znak podkreślenia _ uznawany jest za literę. Liczba znaków identyfikatora może być dowolna, ale tylko pierwsze 63 są rozróżniane. Nie są rozróżniane duże i małe litery. Identyfikatory służą do oznaczania programów, stałych, typów, zmiennych, pól w rekordach, procedur, funkcji, parametrów formalnych. Liczby Nazywane są także literałami arytmetycznymi i dzielą się na: Liczby całkowite. Reprezentowane są one jako ciąg cyfr dziesiętnych lub szesnastkowych poprzedzonych ewentualnie znakiem +, -. Ciąg cyfr szesnastkowych powinien być poprzedzony znakiem $. W systemie szesnastkowym wykorzystywane są dodatkowo znaki A, B, C, D, E, F. Liczby całkowite mogą zajmować w pamięci: * 1 bajt krótkie zakres [-128..127] * 2 bajty normalne zakres [-32 768..32 767] * 4 bajty długie zakres [-2 147 483 648..2 147 483 647] Liczby całkowite z zakresu: * [0..255] to liczby bajtowe 1 bajt * [0..65 535] to liczby słowowe 2 bajty Liczby rzeczywiste

Składają się one z mantysy, litery E i cechy. Mantysa jest liczbą dziesiętną, a cecha całkowitą. Mogą one zawierać wyłącznie cyfry dziesiętne. Dopuszczalne jest opuszczenie części ułamkowej wraz z kropką albo samej części ułamkowej albo litery E i cechy. Zakresem liczb rzeczywistych jest przedział [2.9E-39..1.7E38]. Liczby rzeczywiste zajmują 6 bajtów a ich mantysa ma maksymalnie 11-12 cyfr znaczących. W zestawach z koprocesorem dostępne sa ponadto następujące literały rzeczywiste: * pojedyńcza długość [1.5E-45..3.4E48] 4 bajty mantysa 7-8 cyfr * podwójna długość [5.0E-324..11.7E308] 8 bajtów mantysa 15-16 cyfr * rozszerzone [1.9E-4951..1.1E4932] 10 bajtów mantysa 19-20 cyfr * typu Comp [-2 63 +1..2 63-1] 8 bajtów mantysa 19-20 cyfr Łańcuchy Zwane są one inaczej literałami łańcuchowymi i służą do reprezentowania ciągu znaków:! ciąg znaków między apostrofami, 'to jest łańcuch'',! znak sterujący ^H <Ctrl-H>,! znaki w postaci dziesiętnej i szesnastkowej: #127 (reprezentacja znaku o kodzie dziesuiętnym 127), #$7F (j.w. lecz kod szesznastkowy). Literały logiczne Mają one postać napisu true lub false. Komentarze Są to napisy rozpoczynające sie od { i kończące się }. Jeżeli po { wystąpi $ to mamy do czynienia z dyrektywą kompilatora. Struktura programu Program napisany w Turbo Pascalu składa się z:! nagłówka programu,! deklaracji modułów,! bloku,! znaku. (kropki). Nagłówek programu Nagłówek programu składa się ze słowa kluczowego program, po którym występuje nazwa programu (identyfikator) oraz ewentualnie ujęta w nawiasy okrągłe lista identyfikatorów (kolejne elementy tej listy oddzielamy przecinkami). Liście tej nie jest nadawana żadna interpretacja, jest więc ona najczęściej pomijana. Może zostać także pominięta cała nazwa programu. Nie jest to jednak wskazane z metodologicznego punktu widzenia. Nazaw programu stanowi formę komentarza i opisuje jego działanie. Blok Blok programu w języku Turbo Pascal składa się z:! części opisowej, w której:! definiuje się typy i nazwy literałów,! podaje sie deklaracje etykiet i zmiennych, a także! umieszcza sę definicje i deklaracje procedur i funkcji. Kolejność ta jest dowolna, dopuszczalne jest także przeplatanie się poszczególnych elementów.

! części wykonawczej, która składa się z instrukcji złożonej zawierającej ciąg instrukcji wykonywanych sekwencyjnie ograniczony słowami kluczowymi begin i end. Struktura programu napisanego w Turbo Pascalu jest więc następująca: program Nazwa_Programu (lista_identyfikatorów); deklaracja modułów część opisowa begin ciąg instrukcji end. Najprostszy program napisany w Pascalu, pozbawiony opcjonalnej części opisowej, z pustym ciągiem instrukcji, ma więc następującą budowę: program Nic_Nie_Robię; begin end. { naglowek mozna bylo pominac} Deklaracje modułów Moduły służą do grupowania procedur i funkcji w biblioteki. W systemie Turbo Pascal użytkownik ma możliwość korzystania z kilku modułów standardowych, w których zgromadzone są podstawowe funkcje i procedury języka. Moduł standardowy System jest dołączany automatycznie przez kompilator. W celu wykorzystania innych modułów należy ten fakt najpierw zadeklarować. Służy do tego konstrukcja: uses lista_nazw_modułów Nazwy kolejnych modułów na liście oddzielane są przecinkami. Deklaracje etykiet W Turbo Pascalu instrukcja programu może być poprzedzona etykietą. Mechanizm ten służy do przekazywania sterowania do tej instrukcji za pomocą instrukcji skoku bezwarunkowego goto. Opinia na temat używania skoku w programach twórcy Pascala N. Wirtha jest zdecydowanie jednoznaczna: Wystąpienie instrukcji skoku w programie pascalowym często świadczy o tym, że programista nie nauczył sie myśleć w Pascalu. Etykieta składa się z:! identyfikatora lub! ciągu do czterech cyfr, który może być poprzedzony nieznaczącymi zerami. W treści programu bezpośrednio po etykiecie występuje dwukropek : oddzielający daną etykietę od innej etykiety lub instrukcji. Deklaracje etykiet mają postać: label lista_etykiet Nazwy kolejnych etykiet na liście oddzielane są przecinkami. Przykład etykiety i "zaetykietowanej" instrukcji zamieszczony jest poniżej:

label Etykieta;... Etykieta : a:=a+1;... Definicje nazw literałów (stałych) Język Turbo Pascal umożliwia zastąpienie literałów przez odpowiednie przypisane im identyfikatory. Jest to w zasadzie zabieg kosmetyczny, mający na celu zwiększenie czytelności programu. Definicja stałych dokonywana jest za pomocą konstrukcji: const sekwencja_definicji_stalych gdzie definicja stalych ma jedna z postaci: identyfikator = wyrazenie_stale; identyfikator = oznaczenie_typu = stala_typowa; Przykłady dwóch postaci definicji stałych umieszczone są poniżej: const Jezyk = 'Turbo Pascal 7.0'; { stala tekstowa } e = 2.718228118285; { stala rzeczywista } Minus = Char = '-'; { zmienny literal znalowy } Oceny : array [2..5] of Char = ('2',''3',''4','5'); Stopnie : array [2..5] of Char = '2345'; Trzy ostatnie literały określane są mianem literałów zmiennych. Niektóre nazwy literałów są predefiniowane, jak np. Pi = 3.1415 Definicje typów Absolutnie każda zmienna wykorzystywana przez nas w programie musi zostać zadeklarowana. Deklaracja oznacza określenie jej nazwy (identyfikatora) i wartości, które może ona przyjmować. Typ zmiennej możemy najprościej określić jako zbiór jej wartości. Typy wykorzystywane w Turbo Pascalu dzielą się na:! standardowe (predefiniowane), nie wymagające żadnegop dodatkowego opisu,! niestandardowe, wprowadzane przez programistę, musza być przez niego dodatkowo opisane. Składnia definicji typu, opisującej typ i jednocześnie przyporządkowującej mu odpowiedni identyfikator jest następująca: type sekwencja_definicji_typów gdzie każda z definicji typu ma postać identyfikator_typu - opis _typu; "Typologia" Turbo Pascala wyróżnia następujące typy: wyliczeniowy okrojony porzadkowy calkowity prosty logiczny znakowy rzeczywisty łancuchowy typ tablicowy

strukturalny rekordowy zbiorowy plikowy obiektowy wskaźnikowy Typ prosty składa się z z uporządkowanego oraz skończonego, przeliczalnego, zbioru wartości. Dla typu porządkowego jednoznacznie określane są wartości porzedzające i następujące po danej wielkości. W języku Turbo Pascal istnieje szereg predefiniowanych typów prostych:! zbiór liczb całkowitych (typy ShortInt, Integer, LongInt, Byte, Word),! zbiór liczb rzeczywistych (typy Real, Single, Double, Extended, Comp),! zbiór wartości logicznych typu Boolean,! zbiór znaków typu Char. Typ wyliczeniowy i okrojony definiowane są przez użytkownika. Typ łańcuchowy, którego elementami mogą być dowolne znaki, służy do reprezentowania tekstów. Typy strukturalne definiuje się przez podanie:! typów składowych,! metody strukturalizacji, określającej sposób dostępu do poszczególnych elementów składowych (określany jest tzw. selektor). Przykłady definicji typów mogą być następujące: type Tablica = array [1..100] of Integer; { typ tablicowy } Miesiac = 1..12; { typ okrojony } Plec = (M, K); { typ wyliczeniowy } Duze = 'A'..'Z'; { inny typ okrojony } Deklaracje zmiennych Deklaracje zmiennych składają się ze słowa kluczowego, po którym następuje wykaz deklaracji. sekwencja_deklaracji_zmiennych gdzie kazda deklaracja ma postać: lista_identyfikatorow : opis_typu; Lista identyfikatorów to oddzielona przecinkami lista nazw zmiennych, a opis typu zawiera określenie typu zmiennej. Istotnym elementem jest zakres zmiennej, to jest obszar, dla którego jest ona zadeklarowana i w którym może być wykorzystywana. Jest nim zawsze blok, w którym została ona zadeklarowana, począwszy od miejsca, w którym zadeklarowany został jej identyfikator. W przypadku o strukturze zagnieżdżonych bloków mamy do czynienia ze zjawiskiem przesłaniania. Ilustruje to poniższy rysunek: Blok1 Cos : Byte;

Blok2 Cos : Byte; Zmienna Cos zadeklarowana w Bloku2 to zupełnie inna zmienna niż Cos z Bloku1. Ilustrację deklaracji zmiennych stanowią poniższe przykłady. Wyniki : Tablica; { typ musi byc zdefiniowany } a, b, c : Real; { typ Real jest predefiniowany } Definicje i deklaracje procedur i funkcji Nie wnikając w szczegóły tzw. programowania proceduralnego, które poznamy już niedługo, możemy powiedzieć, że definicje te będą określały zakres czynności, które będą wykonane po wywołaniu procedury bądź funkcji. Podprogramy umożliwiają wprowadzenie w programie "porządnych" skoków. W przypadku funkcji dodatkowo jest określany także typ wyniku. Sztuka pisania programu Już po pierwszych próbkach pisania w Pascalu widać, że w tym szaleństwie jest metoda. Przyjęte zostały pewne reguły gry, zwiększające czytelność.! słowa kluczowe i deklaratory zapisywane są pogrubioną czcionką,! komentarze zapisywane są czcionką pochyłą, kursywa,! stosowane są tzw. wcięcia (dwuznakowe), podobne do akapitów,! tekstowi staramy się nadać strukturę kolumnową,! wyróżniamy definicje podprogramów, aby uwypuklić "porządne" skoki. Na wydruku komputerowym (listingu) dwa pierwsze chwyty nie funkcjonują. Tym istotniejsze staje się rozsądne i logiczne wcinanie oraz struktura kolumnowa. Umówmy sie, że tak właśnie pisać będziemy nawet najprostszy program. Po co utrudniać to, co i tak jest samo z siebie dosyć skomplikowane. Próbki tzw. stylu wolnego zwanego też radosnym zostaną przedstawione nieco później, tak, by nie wyrabiać w Was negatywnych nawyków. Moje refleksje po kilkuletnim nauczaniu Pascala są raczej smutne. Jeżeli po długich zmaganiach udaje się w końcu uruchomić program, to jest on napisany w zdecydowanie nieczytelny sposób. Najczęstsze grzechy to:! nagminne nadużywanie instrukcji skoku bezwarunkowego goto,! totalny brak wcięć,! unikanie komentarzy bardziej, niż diabeł święconej wody.