Cele nauczania: Podstawowe zasady programowania.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Katarzyna Szafrańska kl. II ti
Język C/C++ Funkcje.
Języki programowania C++
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
ZŁOŻONOŚĆ OBLICZENIOWA
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 3: Podstawowe elementy języka.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 2: Wstęp do programowania w Pascalu © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Katarzyna Szafrańska kl. II TI
Kurs Pascala – spis treści
Wykład 2 struktura programu elementy języka typy zmienne
Dr Anna Kwiatkowska Instytut Informatyki
PASCAL Dr Anna Kwiatkowska.
PASCAL (2) dr Anna Kwiatkowska.
Wprowadzenie do programowania w języku Turbo Pascal
Typy wyrażenia, schematy blokowe, writeln, readln, if, pętle
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE WYKŁAD 2
Schemat Hornera Mgr inż. Michał Szucki.
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Podstawy programowania
Podstawy programowania
Język PASCAL – podstawy Turbo Pascal: procedury, funkcje
Programowanie strukturalne i obiektowe
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
Turbo Pascal Turbo Pascal - jedna z popularniejszych implementacji kompilatorów języka PASCAL, zintegrowane srodowisko programistyczne, produkt firmy Borland.
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
Algorytmy z przykładami w Turbo Pascal 7.0
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
Podstawy programowania. Język C i C++– podstawy Temat: 1
Podstawy programowania w języku C i C++
Struktura programu w Turbo Pascalu.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Poznaj bliżej program Microsoft Office Word 2007
TABLICE C++.
Wyrażenia w Turbo Pascalu.
Procedury i funkcje.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Podstawy programowania w języku C i C++
Programowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe
Elżbieta Fiedziukiewicz
Wykład 10 typ zbiorowy rekurencja.
Ogólna struktura programu w TP
Podstawy języka Instrukcje - wprowadzenie
Informatyka 2 MPDI Wykład 9 Delphi tablice, rekordy.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
PWSW Mechatronika Wykład 7 Matlab cd.
Podstawowe struktury danych. Typy danych.
Wprowadzenie do programowania w Pascalu mgr inż. Agata Pacek.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Pętle – instrukcje powtórzeń
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Wykład 1 Informatyka II MPZI2 sem.letni. Tablice Tablice deklarujemy array [ lista typów indeksów ] of typ bazowy (składowych) np. var t1,t2:array [1..5,
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Zapis prezentacji:

Cele nauczania: Podstawowe zasady programowania. Język PASCAL – podstawy Turbo Pascal: 1) środowisko, struktura programu, stałe, zmienne, typy danych 2) Wyrażenia, instrukcje, deklaracje modułów, 3) instrukcje warunkowe, instrukcja wyboru, instrukcje iteracyjne Cele nauczania: Podstawowe zasady programowania. Osiągnięcia: Praktyczna znajomość elementów programowania w języku Pascal

Spis treści Krótka historia języka programowania Pascal Środowisko Turbo Pascala Uruchomienie systemu Turbo Pascal Ekran TurboPascala Wydawanie poleceń, skróty klawiszowe Podstawowe informacje o języku Pascal Objaśnienie Pojęć Najmniejszy program w Pascalu Budowa programu Uruchomienie programu Struktura programu Przykład prostego programu na obliczenie pola koła Zasady podstawowe programowania Stałe, zmienne Definicja Stałych. Deklaracja zmiennych. Przykłady Biblioteki, procedura, funkcja Program składa się z następujących sekcji : Typy danych – proste Typy strukturalne Typy całkowite czyli zbiory, których elementami są wyłącz... Typy rzeczywiste Typy BOOLEAN, CHAR, STRING Wyrażenia Instrukcja przypisania Instrukcje wejścia/wyjścia Przykład programu z instrukcjami we/wy Program na pole i obwód koła Instrukcja złożona – grupująca Instrukcja grupująca – przykład Funkcje i procedury standardowe – deklaracja modułów Podejmowanie decyzji w programie Operatory relacyjne Instrukcja warunkowa IF ... THEN ... [ELSE ...] Operatory  logiczne: and, or,  not Przykład - rozwiązanie równania kwadratowego CASE - instrukcja wyboru Instrukcje iteracyjne Organizacja obliczeń cyklicznych Instrukcja while Instrukcja repeat Instrukcja for Programy z FOR

Krótka historia języka programowania Pascal Język programowania Pascal powstał w 1971 r. Jego autorem jest Niklaus Wirth. Popularność Pascal zaczął zdobywać po 1974 r. po opublikowaniu książki na ten temat. Miał służyć do nauki programowania strukturalnego. Jest doskonałym narzędziem do nauki programowania. Niejako kontynuacją rozwoju jest język Delphi - 32-bitowe, obiektowe zintegrowane środowisko RAD (Rapid Application Development) do tworzenia aplikacji w systemie Windows.

Środowisko Turbo Pascala Turbo Pascal jest zintegrowanym pakietem składającym się z następujących części: edytora - służy on do pisania i poprawiania programów; kompilatora - zamienia on plik źródłowy na instrukcje wykonywane przez komputer; debuggera - umiejscawia i usuwa on usterki w programie oraz pozwala śledzić wykonywanie programu krok po kroku.

Uruchomienie systemu Turbo Pascal Turbo Pascal uruchamia się przez przejście do katalogu, który go zawiera (np. c:\tp\bin ) i wydanie polecenia turbo lub uruchomienie komendy turbo, jeśli ustawiona jest ścieżka dostępu do katalogu z programem turbo.exe lub uruchomienie odpowiedniego programu batchowego (np. tp.bat). Po uruchomieniu programu ekran zostanie podzielony na następujące części: głównego menu - górna linijka ekranu; okna edytowania (Edit) - zajmuje większość ekranu; paska z klawiszami - dolna linijka ekranu.

Ekran TurboPascala

Wydawanie poleceń, skróty klawiszowe myszą - poprzez kliknięcie na odpowiednim wyrazie menu, a następnie na odpowiedniej komendzie; klawiaturą - wciskamy kombinację Alt i pierwszą literę wyrazu w menu, następnie wciskamy wyróżnioną literę komendy. Np. Alt F – menu File – Plik Alt E – menu Edit – edycja Alt R – menu Run – Uruchom Alt C – menu Compile – Kompilacja Alt O – menu Options – Opcje Alt D – menu Debug – debugowanie Alt T – menu Tools - Narzedzia klawiszem skrótowym - wciskamy klawisz lub kombinację klawiszy, która znajduje się obok komendy lub w pasku z klawiszami.

Niektóre skróty klawiszowe F2 - zapamiętanie edytowanego programu (z rozszerzeniem .pas) F3 - ściągnięcie programu Alt-F9 - kompilacja programu F9 – make – tworzy program wykonywalny, kompiluje program do pliku .EXE kompilując tylko zmienione pliki Ctrl-F9 - uruchomienie skompilowanego programu: (z ewentualną kompilacją) Alt-F5 - przełącza na wirtualny ekran użytkownika Esc lub F10 - wyjście Alt-X - wyjście z systemu Pascal F4 - Go to cursor - wykonuje program aż do linijki zawierającej kursor, po czym zatrzymuje się i czeka na dalsze polecenia; F7 - Trace Into - wykonuje bieżącą instrukcję programu, jeśli jest to wywołanie procedury, to przechodzi do pierwszego wiersza tej procedury; F8 - Step Over - wykonuje bieżącą instrukcję programu, jeśli jest to wywołanie procedury, to wykonuje ją w całości;

Podstawowe informacje o języku Pascal Język programowania – zapis algorytmu w postaci zrozumiałej dla człowieka. Program źródłowy – tekst: zbiór słów, cyfr, znaków. Słowa zastrzeżone - kluczowe, m.in. program, begin, end, const, var, repeat, until, array, and, procedure, function Łańcuchy znaków muszą być ograniczone przy pomocy apostrofów, np. ‘Ala ma kota’, ‘Podaj nazwisko: ‘. Mogą zawierać spacje. Liczby dziesiętne mogą zawierać kropkę a nie przecinek, np. 15.67 Mogą być zapisane w postaci wykładniczej, z literą E, np. 2.83E+3 (czyli 2.83*10^3) Każde polecenie programu musi kończyć się średnikiem. W jednej linii może być kilka poleceń ale to nie jest zalecane Polecenia można pisać DUŻYMI i małymi literami Komentarze tworzymy przy pomocy znaków { } lub (* *) np. {To jest komentarz 1 (* to komentarz 2 w komentarzu1 *) }

Objaśnienie Pojęć Słowo Kluczowe – zastrzeżone samo w sobie nie robi nic, ale w połączeniu z innymi pozwala nam na grupowanie procedur i funkcji w jedną całość, używanie pętli... Stała - jest to pewna wartość przypisana znakowi/wyrazowi której nie można zmienić np: stałej PI jest przyporządkowana liczba 3.1415... Zmienna - Jak sama nazwa wskazuje zmienna jest to wyraz, któremu jest przypisana pewna wartość, którą w czasie działania programu możemy swobodnie zmieniać w zakresie danego typu.

Najmniejszy program w Pascalu Podstawowy, a zarazem najmniejszy program w Pascalu wygląda tak: begin {1} end. {2} Przedstawione tutaj dwie linijki całkowicie nic nie robią, informują one jedynie kompilator gdzie zaczyna się nasz główny program {1} i gdzie kończy {2}. Pomiędzy tymi liniami będzie w przyszłości znajdował się właściwy program. Po "END" jest postawiona kropka, ponieważ END. oznacza koniec programu, a END; koniec fragmentu programu.

Program kolejny, prościutki: program Pierwszy_Program; begin; write ('Hello World'); end. Jeżeli chodzi o średniki, to są pewne wyjątki. Średniki nie muszą one występować po słowach kluczowych (z wyjątkiem end) oraz na końcu wiersza, który stoi bezpośrednio przed słówkiem end. Program powyższy może  wyglądać tak: program Pierwszy_Program; begin {brak średnika - słowo kluczowe}   write ('Hello World') {a tu też gdyż następnym poleceniem jest end, ale może być} end.  W nawiasach klamrowych to komentarz. Wszystko co znajduje się między takimi nawiasami kompilator po prostu zignoruje. Zalecane stosowanie w programach, podobnie jak wcięcia. Poprawia to znacznie czytelność kodu i ułatwia pracę.  Aby zapobiec szybkiego zamknięcia programu dopisujemy na końcu programu wywołanie procedury readln, która wywołana bez parametrów czeka na naciśnięcie klawisza enter.

Budowa programu Opis Elementy programu NAGŁÓWEK PROGRAM nazwa CZĘŚĆ DEKLARACYJNA CONST Definicje stałych VAR Deklaracje zmiennych Deklaracje procedur i funkcji GŁÓWNA CZĘŚĆ PROGRAMU BEGIN Instrukcje END. Przykład: PROGRAM jestem_pierwszy; BEGIN WRITELN(‘Witaj z nami programistami!’); END. By uruchomić program nacisnąć Ctrl F9 By zobaczyć wyniki nacisnąć Alt F5 Dowolny klawisz - powrót

Uruchomienie programu Uruchomienie programu: Ctrl F9 ALT F5 – ekran roboczy programu By wydruk wyników nie znikał można zastosować polecenia READLN; (usuń komentarz z programu wokół READLN i sprawdź) lub REPEAT UNTIL KEYPRESSED, ale w tym przypadku na początku musi być polecenie USES CRT; {program drugi wersja 2} PROGRAM jestem_drugi; USES CRT; BEGIN WRITELN(‘Witaj, nacisnij Enter’); READLN END. {program drugi wersja 1} PROGRAM jestem_drugi; USES CRT; BEGIN WRITELN(‘Witaj. Nacisnij cos’); REPEAT UNTIL KEYPRESSED; END.

Struktura programu program nazwa; begin end. deklaracje instrukcje Program powinien składać się z danych, instrukcji i komentarzy . Dane to obiekty na których program przeprowadza operacje (np. liczby, teksty). Instrukcje to kolejne operacje, które program ma wykonać na danych. Komentarze nie wpływają na przebieg działania programu, służą jedynie poprawieniu czytelności kodu. { } lub (* *) Ogólna struktura programu w języku Pascal: program nazwa; deklaracje begin instrukcje end.

Przykład prostego programu na obliczenie pola koła Zad. Obliczyć pole koła o promieniu 5 . Algorytm: Pole koła wyraża się S =Pi*r^2 1) Wersja najprostsza Begin write(Pi*5*5); end. 2) Wersja poprawiona program Pole_kola; { Program oblicza pole koła o promieniu 5 } Uses crt; begin clrscr; writeln('Pi=',Pi); write('Pole kola o promieniu 5 = : ',Pi*5*5:10:3); {oblicz i wypisz pole koła} readln; (* czeka na nacisniecie klawisza *) end.

Pole koła – wprowadzenie r i formatowanie wydruku 3 wersja programu program Pole_kola; {Nazwa programu} { Program oblicza pole koła o promieniu podanym } { Promień wprowadzany jest z klawiatury } var { deklaracja zmiennych } r : real; { promień koła - zmienna rzeczywista } begin writeln('Program oblicza pole kola'); write('Podaj promien kola: '); readln(r); { odczytaj zmienną r z klawiatury } write('Pole = '; Pi*r*r:8:3); { oblicz i wypisz pole koła } readln; (* czeka na naciśniecie klawisza*) end. {Koniec programu – po end jest kropka}

Zapamiętaj - 1 Program pascalowy składa się z ciągu rozdzielonych średnikami instrukcji położonych pomiędzy słowami kluczowymi begin i end. Instrukcje mogą zawierać wyrażenia oraz wywołania funkcji i procedur. Wyrażenia składają się ze stałych, operatorów i identyfikatorów. Identyfikatory są nazwami obiektów składających się na program. Mogą one zawierać litery, cyfry i znaki podkreślenia, nie mogą jednak zaczynać się od cyfr. Aby skompilować program, musisz użyć polecenia Make (F9). Ewentualne błędy kompilacji są odpowiednio sygnalizowane. Chcąc uruchomić program, musisz wydać polecenie Run (Ctrl-F9). Do obejrzenia wyników działania programu może okazać się niezbędne polecenie User Screen (Alt-F5). Aby zapisać program, użyj polecenia Save (F2). Do odczytania zapisanego programu z dysku służy polecenie Open (F3).

Zasady podstawowe programowania Nazwa programu jest dowolną nazwą do zidentyfikowania programu (bez spacji) Deklaracje służą do określenia struktury danych programu. Instrukcje programu oddzielamy za pomocą średnika (przed instrukcją end nie jest średnik konieczny). Po ostatnim END musi być kropka Program powinien być zapisywany z wykorzystaniem wcięć. Podstawowymi obiektami programu są stałe i zmienne.

Stałe, zmienne Stała to jakaś konkretna, niezmienna wartość, którą posługujemy się używając konkretnej nazwy symbolicznej, np. Stala_Pi. Każde wystąpienie nazwy-stałej w programie zostanie podczas kompilacji zastąpione wartością. Stałe definiuje się za pomocą słowa kluczowego const Przykład: CONST dolny_zakres=-1000; komunikat=‘Nacisnij klawisz’; stala1 : string ='stala wartosc1'; Zmienna jest wielkością, która może się zmieniać. Posługujemy się nią korzystając z nazwy symbolicznej zwanej też identyfikatorem. Zmienne deklaruje się przy pomocy słowa kluczowego var. Przykład: var i, j: integer; mnoznik, mnozna: byte; odpow1, odp2: char;

Definicja Stałych. Deklaracja zmiennych. Przykłady Program stale_zmienne; Const abc=500; i3='tu jest tekst'; sprawdz=TRUE; Var abc1:byte; l3a, linia, t: string; {1} sprawdz1: boolean; Begin End. Możliwe jest definiowanie wielu zmiennych tego samego typu w jednej linii, wystarczy je wtedy rozdzielić przecinkami {1}. KAŻDA ZMIENNA PRZED UŻYCIEM W PROGRAMIE MUSI BYĆ WCZEŚNIEJ ZADEKLAROWANA.

Biblioteki, procedura, funkcja Biblioteki (moduły) - zapisane są w nich różne funkcje i procedury do użycia w programie. Procedura - jest to w skrócie pewien wyraz, który po wstawieniu do programu, coś nam wykona np. wyczyści ekran, narysuje linię (sformatuje dysk :) itd. Funkcja - jest to podobnie jak procedura, pewien wyraz, który nie dość że coś wykona to również zwróci nam rezultat tego co zrobił, przykładowymi funkcjami są: pierwiastkowanie, sinus, cosinus. Zwracaną wartością niekoniecznie musi być liczba może to być również inny rodzaj zmiennych.

Program składa się z następujących sekcji : program nazwa_programu; uses modul_1, modul_2, ... ; Jest to instrukcja dołączająca zewnętrzne biblioteki zawierające dodatkowe procedury i funkcje, których można będzie użyć we własnym programie. np.: uses crt,graph,dos; dołącza biblioteki zawierające kolejno funkcje tekstowe, graficzne i systemowe. type nazwa_nowego_typu = definicja_nowego_typu; Przy pomocy tego słowa kluczowego możemy utworzyć nowe typy danych na podstawie tych już istniejących (najczęściej są one bardziej skomplikowane). np.: type calkowita=integer; przyporządkuje typowi calkowita standardowy typ integer . const nazwa_stalej : typ_stalej = wartosc; Deklaracje stałych np. const MAX=1000; {definiuje ciąg MAX jako zamiennik dla wartości 1000 w kodzie źródłowym.} var nazwa_zmiennej : typ; Deklaracja zmiennych globalnych użytych w programie. Będą one widoczne (można się do nich odwoływać) w każdym miejscu programu. procedure nazwa_podprogramu[(parametr1; parametr2;...)]; function nazwa_funkcji[(parametr1;parametr2;...)]:typ_zwracany; W tym miejscu należy umieścić definicje własnych funkcji i procedur użytych w programie. begin {początek programu głównego} Blok programu głównego. end. {koniec programu. - zapisywany słowem kluczowym end. z kropką na końcu}

Typy danych - proste Porządkowe: Całkowite: integer, shortint, longint, byte, word, np. Const liczba1: integer=13; var nr1, nr2: shortint; Znakowy: char do przechowywania znaków; np. const sign: char=‘+’; var pierwszy, ostatni: char; Logiczny: boolean do przechowywania wartości logicznych true (prawda) lub false (fałsz), np. const Fem: boolean=true; Wyliczeniowe, np. type dzien=(Pon, Wt, Sr, Czw, Pt, Sb, Nd); type figury=(kwadrat, prostokat, trojkat, okrag); karty=(trefl, karo, kier, piko); Okrojone, np. type LitMale=‘a’..’z’; const litera:LitMale=‘j’; dzienroku=1..355; type oceny=(ndst, dop, dst, db, bdb, cel); Rzeczywiste real, single, double, extended, comp do przechowywania liczb rzeczywistych; np. var zm1: real; Łańcuchowe: string dla łańcuchów znaków (napisów) o podanej długości; np. const nazwisko: string[20]=‘Jan Kowalski’; var linia: string; Wskazujące. Zmienna tego typu "wskazuje" na inną zmienną, przechowuje tylko jej adres w pamięci (przez co zajmuje 4 bajty). np. type RGB={Red, Green, Blue}; RGBWsk=^RGB;

Typy strukturalne Tablicowe. Tablica zawiera uporządkowany zbiór obiektów tego samego typu. Tablice mogą być jednowymiarowe lub wielowymiarowe. Jednowymiarowe to odpowiedniki wektorów, wielowymiarowe to odpowiedniki macierzy. np. var wymiary=array[1..100] of real; var tabl2=array[1..2, 1..4] of string; type kolor=(czerw, ziel, nieb); wektor=array[kolor] of byte; var matryca: array[-3..3] of wektor; type oceny=(ndst, dop, dst, db, bdb, cel); zakres=1..40; zestw_ocen=array[1..16] of oceny; symbole=array[zakres] of char; Rekordowe. Rekord to typ złożony z ustalonej liczby pól, na ogół różnych typów type tom=record autor: string[30]; tytul: string[40]; nr_kat: 1..5000; end; var ksiazka: tom; data_ur: data; type data_rm = record mc: 1..12; rok: 1900..2020; end; Plikowe. Ten typ jest przydatny przy jakichkolwiek operacjach na plikach var nazwapliku: file of typ_elementów_pliku; np. type plik = file of integer ; var f,g,h: plik; var nazwaplilu: file; var nazwapliku: text; np. VAR f : TEXT; {zmienna pikowa} Zbiorowe. Zbiór w Pascalu to grupa elementów tego samego typu. Przykłady: type strony_swiata=(pln, pld, wsch, zach); liczby_20=set of 1..20; litery_aj=set of ‘a’..’j’; kier=set of strony_swiata

Typy całkowite czyli zbiory, których elementami są wyłącznie liczby całkowite. Nazwa typu Zakres Ilość bajtów Byte 0..255 1 ShortInt -128..127 Word 0..65535 2 Integer -32768..32767 LongInt -2147483648..2146483647 4

Typy rzeczywiste Nazwa typu Zakres Znaczące cyfry - liczba cyfr Format - rozmiar Real 2.9 x 10^-39 .. 1.7 x 10^38 Czyli 2.9E-39 .. 1.7E38 11-12 48-bit owy 6 Bajty Single 1.5 x 10^-45 .. 3.4 x 10*38 1.5E-45…4E38 7-8 32-bitowy 4 B Double 5.0E-324.. 1.7E308 15-16 64-bitowy 8 B Extended 1.9E-4951..1.1E4932 19-20 80-bitowy 10 B Comp 0..9.2E18

Typy rzeczywiste Real, elementy zajmują po 6 bajtów pamięci Do typów prostych należą także standardowe typy rzeczywiste, które jednak nie są typami porządkowymi. Każdy z dostępnych typów rzeczywistych jest dyskretnym i skończonym podzbiorem zbioru liczb rzeczywistych. Dostępnych jest pięć standardowych typów rzeczywistych o następujących predefiniowanych identyfikatorach: Real, elementy zajmują po 6 bajtów pamięci Single, typ o pojedynczej długości - 4 bajty pamięci Double, typ o podwójnej długości - 8 bajtów pamięci Extended, typ o rozszerzonej długości - 10 bajtów pamięci Comp: -2.63×10+1..2.63×10-1, 19-20 cyfr znaczących - 8 bajtów pamięci

Typy BOOLEAN, CHAR, STRING TYP LOGICZNY - BOOLEAN - typ ten może przyjmować jedynie dwie wartości: TRUE (prawda) - 1 lub FALSE (fałsz) - 0 dzięki temu zajmuje on jedynie 1/8 bajta TYP ZNAKOWY - CHAR - typ ten przyjmuje dowolny pojedynczy znak o kodach ASCII (0..255) np. znak ‘A’ czy ‘!’ TYP ŁAŃCUCHOWY - STRING - jest to ciąg znaków o długości 0-255 znaków, przykładowym łańcuchem jest: ‘To jest tekst', - użyte apostrofy! Jeżeli jakiekolwiek znaki umieścimy pomiędzy apostrofami będzie to uznawane wtedy za tekst nawet jeżeli znajdować się tam będą w środku liczby.

Najważniejsze typy dostępne w Turbo Pascalu Nazwa Znaczenie Zakres wartości Przykład integer liczba całkowita ze znakiem -3276S..+32767 -14574 real liczba rzeczywista 2.9*10"39..1.7*1038 1.23245el7 char znak znaki o kodach 0.255 'a' string napis (łańcuch, ciąg znaków) ciąg do 255 znaków 'Napis' boolean wartość logiczna prawda (pue) lub fałsz (false) false record słowo 0..65535 56412 byte bajt 0.255 127 shortint krótka liczba całkowita ze znakiem -128..+127 -13 longint długa liczba całkowita ze znakiem -214743364S..+2147433647 -1936734234 single krótka liczba rzeczywista 1.5*10~45..3.4*1037 3.14e01 double długa liczba rzeczywista 5.0*10-324.1.7*10308 -1.8e+234 extended bardzo długa liczba rzeczywista 3.4*10-4932..1.1*104932 4.5e2345 comp bardzo długa liczba całkowita -9.2*1018..9.2*1018 6el2 pointer wskaźnik 0000h:0000h..FFFFh:FFFFh $1234:ABCD

Wyrażenia Wyrażenia są zapisami operacji, jakie mają być wykonane. Wyrażenie składa się ze stałych, zmiennych i operatorów. Kolejność wykonywania działań określają nawiasy i priorytet operatorów. Najważniejsze operatory: Operator Działanie Przykład Wynik * Mnożenie a:=2*5; {10} / dzielenie a:=a/10.0; {1.0} + dodawanie a:=a+14; {15} - Odejmowanie a:=a-5; {10} div dzielenie całkowite b:=10 div 3; {wynik 3.3333} mod reszta z dzielenia c:=10 mod 3; {wynik = 1}

Instrukcja przypisania Instrukcja przypisania - służy do przypisania zmiennym wartości. Jest postaci: zmienna:=wyrażenie; Przykład: Program przypis1; var a, b, c: real; napis : string; {deklaracja zmiennej 'napis' typu string} begin a:=5; b:=2.15; c:=a+b; napis:='Hello World'; {przypisanie zmiennej wartosci 'Hello World'} writeln (napis); Writeln(a, b,c); End.

Instrukcje wejścia/wyjścia Do wczytywania danych stosuje się instrukcje read oraz readln. read (lista_argummentów); Np. read(a,b); W readln po wprowadzeniu danych następuje przesuniecie wskaźnika w pliku wejściowym do następnego wiersza. Readln bez argumentów służy do zatrzymania pracy programu do naciśniecia Enter. Do wyprowadzania danych stosuje się instrukcję np. write(lista_arg) lub writeln(lista_arg); Writeln('a=',a:3,' b=',b:3);

Przykład programu z instrukcjami we/wy Program wczytuj; uses crt; var a, b, c: integer; Begin clrscr; Writeln('Podaj wartości 3 zmiennych całkowitych oddzielone spacja: '); Read(a,b,c); Writeln('a=',a:3, ' b=',b:3, ' c=',c:3); readln; readln; End.

Program na pole i obwód koła program kolo; { Program oblicza obwod i pole koła o promieniu podanym } uses crt; const lpi=3.1415; var { deklaracja zmiennych } r , o, p : real; { promień koła, obwod, pole} begin clrscr; writeln('Program oblicza obwod i pole kola'); write('Podaj promien kola: '); readln(r); { odczytaj zmienną z klawiatury } writeln; o:=2*lpi*r; p:=lpi*r*r; writeln('Obwod kola o promieniu ', r:8:3, ' wynosi ',o:8:3); writeln('Pole tego kola = ', p:8:3); {wypisz pole koła } repeat until keypressed; (* czeka na naciśniecie klawisza*) end. {Koniec programu – po end jest kropka}

Instrukcja złożona - grupująca Instrukcję złożoną można porównać z nawiasami w arytmetyce. Umożliwia zgrupowanie wielu instrukcji i traktowanie jako jednej. Czasem jest niezbędna przy korzystaniu z rozkazów strukturalnych takich jak: IF…THEN…ELSE czy DO…WHILE Ma postać: begin {ciąg_instrukcji_oddzielonych_średnikami} end; Np. a:=3; b:=10; writeln(a+b); Trzy powyższe instrukcje są traktowane jako jedna.

Instrukcja grupująca - przykład Instrukcję grupującą rozpoczyna słowo kluczowe BEGIN, a kończy ją END Wszystkie instrukcje umieszczone pomiędzy tymi słowami będą traktowane jako jedna. Jest to przydatne np. przy instrukcji warunkowej IF THEN ELSE Przykład: Program InstrGrup1; Uses CRT; Var strona:byte; Begin Write('1-strona tytulowa 0-koniec : '); ReadLn(strona); IF strona=1 THEN Begin {poczatek instrukcji grupujacej} ClrScr; WriteLn('Program przykładowy w języku Turbo Pascal'); WriteLn('Autor: XXXX)'); WriteLn('Napisany Dnia: ') End; {koniec instrukcji grupującej} End.

Funkcje i procedury standardowe – deklaracja modułów W Turbo Pascalu istnieje duża biblioteka funkcji i procedur standardowych, czyli dostępnych bezpośrednio w systemie. Zawarte są w tzw. modułach. Moduł System jest dołączany automatycznie do każdego programu, inne moduły należy dołączyć przez instrukcję uses. Procedura standardowa Exit powoduje wyjście z bieżącego podprogramu, Halt zatrzymuje pracę programu. Procedura ClrScr zawarta w module Crt umożliwia wyczyszczenie ekranu. Wymaga dołączenia modułu Crt. Inne moduły to DOS, Graph, Overlay. Przykład: program Czysc_ekran; uses Crt, DOS; Begin Clrscr; End.

Podejmowanie decyzji w programie W Pascalu są 2 stałe logiczne: true i false. Na nich wykonuje się operacje logiczne: Operacje logiczne: not – zaprzeczenie nie and – logiczne i or – logiczne lub W wyrażeniach logicznych stosuje się też operatory relacji: =; <>; <; >; <=; >=

Operatory relacyjne Do ustalania warunków przydają się także inne operatory, tzw. Operatory relacyjne =        równy <        mniejszy >        większy <=     mniejszy lub równy   >=    większy lub równy in        jest elementem

Instrukcja warunkowa IF ... THEN ... [ELSE ...] Pozwala na wykonanie lub zaniechanie wykonania pewnych czynności, w zależności od konkretnego warunku logicznego. Instrukcja ma następującą składnię: If warunek Then instrukcja If warunek Then instrukcja_1 else instrukcja_2 Instrukcja ta sprawdza czy jest spełniony warunek postawiony po "IF", jeżeli tak to wykonywana jest instrukcja po słowie "THEN". Można jeszcze po THEN "  użyć słowa ELSE oznaczającego "w przeciwnym wypadku",

Przykłady programów z IF Program If1; {prog 1} Var a: integer; Begin write(‘Podaj liczbe calkowita ‘; ReadLn(A); IF A<0 Then Halt End. Program if2; {prog 2} Var x: real; Begin readln(x); IF x< 0 then writeln('x ujemne') ELSE writeln('x nie jest ujemne'); End. Program Znak_liczby; {prog 3} var x:REAL; Write ('Podaj liczbę do przebadania: x='); Readln (x); IF x>0 THEN Writeln ('Podana liczba jest większa od zera') ELSE IF x<0 THEN Writeln (Podana liczba jest mniejsza od zera') {nie ma ;} ELSE Writeln (Podana liczba jest równa zero');

Program z IF ELSE Najpierw sprawdza czy warunek jest spełniony (ma wartość true) i jeśli tak, to wykonywana jest dana instrukcja. Gdy warunek nie jest spełniony to albo nic się nie dzieje (przypadek pierwszy), albo wykonywana jest instrukcja umiejscowiona za słowem kluczowym else (tak jak w drugim przypadku). program dzien; var a: integer; begin write ('Ile miałeś dzisiaj lekcji?'); readln (a); if a>6 then write ('Miałeś ciężki dzień.') {nie ma średnika!} else write ('To nie dużo.'); readln end.

Operatory logiczne: and, or, not Mogą one przyjmować wartości true lub false Za ich pomocą możemy skonkretyzować nasz warunek. Np. if warunek1 and warunek2 then instrukcja; Operator and (koniunkcja) sprawia, że instrukcja zostanie wykonana tylko w przypadku gdy spełnione są oba warunki. Gdybyśmy zastąpili go operatorem or (alternatywa), to wystarczyłby tylko jeden spełniony. Drugi przypadek if not warunek then instrukcja; W tym przypadku instrukcja będzie wykonana jeśli warunek nie jest spełniony (ma wartość false). Do tego właśnie służy operator not (czyli negacja).

Przykład - rozwiązanie równania kwadratowego program rown_kwadr; uses crt; var a,b,c       :real;    {wspolcz} delta       :real;       {delta} begin    clrscr;                            {procedura czyszczaca ekran}   writeln ('Program oblicza pierwiastki rownania kwadratowego.');   writeln ('Podaj wspolczynniki:');   write ('a= ');   readln (a);   write ('b= ');   readln (b);   write ('c= ');   readln (c);   delta:=b*b-4*a*c;   if a<>0 then    begin     if delta<0 then write ('Delta ujemna - brak rozwiazan.');     if delta=0 then write ('x= ',(-b+sqrt(delta))/(2*a):4:2);    { sqrt(x) - pierwiastek kwadratowy z liczby x}     if delta>0 then     begin       writeln ('x1= ',(-b+sqrt(delta))/(2*a):4:2);     write   ('x2= ',(-b-sqrt(delta))/(2*a):4:2)     end;    end;   if (a=0) and (b=0) then write ('Rownanie ma nieskonczenie wiele rozwiazan.');   if (a=0) and (b<>0) then begin     writeln ('R˘wnanie o podaneych wspolczynnikach jest liniowe.');     write ('jego pierwiastek jest rowny: ',-c/b:4:2)     end;   readln end.

CASE - instrukcja wyboru Instrukcja CASE jest wykorzystywana kiedy zachodzi konieczność podjęcia kilku decyzji, gdy wykonanie różnych części programu jest uzależnione od stanu pewnej zmiennej. Podstawą podjęcia decyzji jest wyrażenie typu całkowitego, znakowego lub logicznego Instrukcja CASE ma postać: case wyrażenie of wartosc_1: Instrukcja_1; .................... wartosc_n: Instrukcja_n; else Instarukcja_awaryjna; end;

CASE – przykład programu Program Miesiac; var miesiac:INTEGER; {numer miesiąca w roku} Begin Write ('Podaj numer miesiąca w roku: '); Readln (miesiac); CASE miesiac OF 1: Writeln ('Styczeń'); 2: Writeln ('Luty'); 3: Writeln ('Marzec'); 4: Writeln ('Kwiecień'); 5: Writeln ('Maj'); 6: Writeln ('Czerwiec'); 7: Writeln ('Lipiec'); 8: Writeln ('Sierpień'); 9: Writeln ('Wrzesień'); 10: Writeln ('Październik'); 11: Writeln ('Listopad'); 12: Writeln ('Grudzień') ELSE Writeln ('Numer nie poprawny') End; {case} End. {programu}

Instrukcje iteracyjne Organizacja obliczeń cyklicznych Instrukcje iteracyjne służą do wielokrotnego wykonywania pewnych sekwencji instrukcji i zazwyczaj są one nazywane po prostu pętlami. Pętla while Pętla repeat ... until Pętla  for

Instrukcja while Instrukcja ma postać: while warunek do instrukcja; Powoduje wykonywanie instrukcji tak długo, dopóki spełniony jest warunek Warunek jest najczęściej dowolnym wyrażeniem porównania, które powinno w wyniku dać wartość logiczną (true lub false). Można posłużyć się tutaj operatorami relacyjnymi: =, <>, <, >, <=, >=, in Instrukcja wykonywana jest tak długo, dopóki warunek ma wartość true.

Przykład programu z WHILE Program Suma6; {Oblicza sumę 6 podanych liczb} var I: Integer; Suma: Real; X: Real; Begin I:=1; {Nadanie wartości początkowej I - licznik} Suma:=0; {Nadanie wartości początkowej Suma} WHILE I<=6 DO Begin {while} Write ('Podaj liczbę X='); Readln(x); Suma:=Suma+X; Writeln ('aktualna suma=',Suma:6:2); I:=I+1; end; {while} Writeln ('Suma koncowa suma=',Suma:6:2); End. {program}

Instrukcja repeat repeat instr_1; {....} instr_n; until warunek; Wykonywane są wszystkie instrukcje między instrukcjami while i repeat. Ciąg instrukcji wykonywany jest co najmniej 1 raz, instrukcje nie muszą być zgrupowane przy pomocy begin end. W instrukcji while jeśli warunek jest true to wykonywanie instrukcji jest kontynuowane, a dla repeat przeciwnie - wykonywanie się kończy gdy warunek jest true.

Funkcja keypressed Warto zwrócić uwagę na funkcję keypressed, która zwraca wartość true kiedy wciśniemy dowolny klawisz ... until keypressed; ... Ta pętla zakończy się po wciśnięciu dowolnego klawisza, natomiast jeśli chcemy aby pętla wykonywała się w nieskończoność, wystarczy wpisać: until false.

Program z UNTIL Program ilosc; {wyznacza długość ciągu liczb zakończonych 0} uses CRT; var dlug, liczba: integer; begin writeln('Podaj liczby'); dlug:=0; repeat readln(liczba); dlug:=dlug+1; until liczba=0; writeln('Dlug. ciagu wynosi ', dlug:5); readln; end.

Instrukcja for Instrukcja jest wygodna, gdy z góry można określić liczbę powtórzeń. Postać instrukcji: for zmienna:=wart_pocz to wart_konc do instrukcja; lub for zmienna:=wart_pocz downto wart_konc do instrukcja; Zmienna nazywana jest zmienną sterującą instrukcji for. Musi być typu całkowitego, znakowego lub logicznego. Instrukcja po słowie kluczowym do wykonywana jest tyle razy ile wartości znajduje się w zakresie wart_pocz .. wart_konc. W instrukcji for .. downto zmienna sterująca zmniejsza się kolejno o 1, zamiast zwiększać jak w instrukcji for.. to

Programy z FOR Program wydr_5liczb_rosn; {Program 1- drukuje 5 liczb od 1 do 5} var i: integer; begin for i:=1 to 5 do writeln(i); end. Program wydr_5liczb_malej; {Program 2 - drukuje 5 liczb od 5 do 1} for i:=5 downto 1 do writeln(i);