Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałBonifacy Linda Został zmieniony 11 lat temu
1
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
2
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
3
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.
4
Ś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.
5
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.
6
Ekran TurboPascala
7
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.
8
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;
9
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 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 *) }
10
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 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.
11
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.
12
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.
13
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
14
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.
15
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.
16
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.
17
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}
18
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).
19
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.
20
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;
21
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.
22
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.
23
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}
24
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;
25
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: ; end; var ksiazka: tom; data_ur: data; type data_rm = record mc: 1..12; rok: ; 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
26
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 Word 2 Integer LongInt 4
27
Typy rzeczywiste Nazwa typu Zakres Znaczące cyfry - liczba cyfr Format
- rozmiar Real 2.9 x 10^ x 10^38 Czyli 2.9E E38 11-12 48-bit owy 6 Bajty Single 1.5 x 10^ x 10*38 1.5E-45…4E38 7-8 32-bitowy 4 B Double 5.0E E308 15-16 64-bitowy 8 B Extended 1.9E E4932 19-20 80-bitowy 10 B Comp 0..9.2E18
28
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, cyfr znaczących bajtów pamięci
29
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 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.
30
Najważniejsze typy dostępne w Turbo Pascalu
Nazwa Znaczenie Zakres wartości Przykład integer liczba całkowita ze znakiem -3276S -14574 real liczba rzeczywista 2.9*10" *1038 el7 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 56412 byte bajt 0.255 127 shortint krótka liczba całkowita ze znakiem -13 longint długa liczba całkowita ze znakiem S single krótka liczba rzeczywista 1.5*10~ *1037 3.14e01 double długa liczba rzeczywista 5.0* *10308 -1.8e+234 extended bardzo długa liczba rzeczywista 3.4* *104932 4.5e2345 comp bardzo długa liczba całkowita -9.2* *1018 6el2 pointer wskaźnik 0000h:0000h..FFFFh:FFFFh $1234:ABCD
31
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 } mod reszta z dzielenia c:=10 mod 3; {wynik = 1}
32
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.
33
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);
34
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.
35
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}
36
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.
37
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.
38
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.
39
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: =; <>; <; >; <=; >=
40
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
41
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",
42
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');
43
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.
44
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).
45
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.
46
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;
47
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}
48
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
49
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.
50
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}
51
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.
52
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.
53
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.
54
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
55
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);
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.