PROGRAMOWANIE STRUKTURALNE WYKŁAD 2

Slides:



Advertisements
Podobne prezentacje
Katarzyna Szafrańska kl. II ti
Advertisements

PASCAL (3) dr Anna Kwiatkowska.
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
OBJECT PASCAL Marzena Szałas.
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.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Katarzyna Szafrańska kl. II TI
Kurs Pascala – spis treści
Ogólne jednostki programowe 1
Kompilacja przechodnia
Wykład 2 struktura programu elementy języka typy zmienne
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Dr Anna Kwiatkowska Instytut Informatyki
PASCAL 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ć
Metody Matematyczne w Inżynierii Chemicznej Wprowadzenie do laboratorium.
PROGRAMOWANIE STRUKTURALNE
Schemat Hornera Mgr inż. Michał Szucki.
Programowanie w języku Fortran 95
Podstawy programowania
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 w języku C i C++
Struktura programu w Turbo Pascalu.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
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
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
Programowanie strukturalne i obiektowe
Elżbieta Fiedziukiewicz
Podstawy informatyki 2013/2014
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Wykład 10 typ zbiorowy rekurencja.
Ogólna struktura programu w TP
Podstawy języka Instrukcje - wprowadzenie
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Podstawowe struktury danych. Typy danych.
Wprowadzenie do programowania w Pascalu mgr inż. Agata Pacek.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
METODY REPREZENTOWANIA IFORMACJI
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
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,
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

PROGRAMOWANIE STRUKTURALNE WYKŁAD 2 Wprowadzenie do programowania w Pascalu cd. Mgr inż. Agnieszka Sroka

TEMATY Etapy tworzenia programu. Zasady programowania strukturalnego. Podstawy zapisywania programu w języku Pascal: słowa kluczowe, identyfikatory, komentarze, liczby, symbole podstawowe. Struktura programu w języku Pascal. Praca w środowisku FreePascal: budowa okna, pisanie procedur, kompilacja i uruchamianie. Procedury wejścia/wyjścia. Deklaracja stałych i zmiennych w programie. Operatory i wyrażenia. Instrukcje warunkowe. Tworzenie programów z instrukcjami warunkowymi. Instrukcje iteracyjne. Tworzenie programów z operatorami iteracyjnymi.

Etapy tworzenia programu. • określenie danych wejściowych, • określenie celu (wyniku konchowego), • analiza problemu i wybór modelu, • przedstawienie algorytmu: - w postaci opisu słownego, - w postaci listy kroków, - w postaci schematu blokowego (postać graficzna algorytmu), - za pomocą jednego z języków formalnych (np. UML). • analiza poprawności rozwiązania, • kodowanie algorytmu w postaci instrukcji języka programowania, • zapis programu do pliku, • kompilacja i usuwanie usterek, • utworzenie wersji wykonywalnej, • testowanie i analiza wyników.

Etapy tworzenia programu.

Zasady programowania strukturalnego. program powinien składać się z niedużych jednostek zwanych procedurami, w których obrębie nie ma już mniejszych podprogramów w kodzie modułu powinno być tylko jedno wejście i jedno wyjście kod powinien być budowany z pomocą następujących konstrukcji podstawowych: ciągu sekwencyjnego rozgałęzienia warunkowego pętli ze sprawdzeniem warunku powtarzania na początku lub końcu ciągu sekwencyjnego instrukcji wyboru jeden z wielu możliwe jest zagnieżdżanie jednych konstrukcji wewnątrz innych należy ograniczyć do niezbędnego minimum stosowanie skoku bezwarunkowego program powinien zapewniać proste i jasne rozwiązanie problemu, być napisany w poprawnym stylu, przejrzysty, czytelny

Podstawy zapisywania programu w języku Pascal. Program w TP podzielony jest na: Nagłówek (Program pole;) Część deklaracyjną (Deklaracja modułów, stałych i zmiennych) Część wykonawczą (Begin .... End.) Słowa kluczowe Zastrzeżone słowa języka (Object) Pascal. Są integralną częścią języka i nie mogą być definiowane przez programistę: and | array | as | asm | begin | case | class | const | constructor | destructor | dispinterface |div | do | downto | else | end | except | exports | file | finalization | finally | for | function | goto | if | implementation | in | inherited | initialization | inline | interface | label | library | mod | nil | not | object | of | or | out | packed | procedure | program | property | raise | record | repeat | resourcestring | set | shl | shr | string | then | threadvar | to | try | type | unit | until | uses | var | while | with | xor

Podstawy zapisywania programu w języku Pascal. Identyfikatory Definicja identyfikatora w notacji BNF ma postać: <identyfikator> ::= <litera> { <litera> | <cyfra> } <litera> ::= A | B | C | D | E | F | G | H | I |J | K | L | M | N |O | P | Q | R | S | T | U | V | W | X | 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 | x | y | z | _ <cyfra> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7| 8 | 9 Identyfikator to ciąg liter lub cyfr zaczynający się od litery (znak _ zaliczany jest do liter). Długość identyfikatora jest dowolna, ale tylko pierwszych 255 znaków jest znaczące. Identyfikator nie może zaczynać się od cyfry, np. dozwolony jest identyfikator: _11 natomiast nie wolno użyć: 11_. Nie wolno również używać w identyfikatorach słów kluczowych. Identyfikatory służą do oznaczania programów, procedur, funkcji, metod, parametrów formalnych, modułów, bibliotek DLL, typów, zmiennych, stałych, etykiet (identyfikator etykiety może być też liczbą), pól rekordów i obiektów.

Podstawy zapisywania programu w języku Pascal. Komentarze Komentarze są to ciągi wyrazów, znaków nie mających wpływu na przebieg programu, oznacza się je w następujące sposoby: {komentarz} (*komentarz*) //komentarz Zapis liczb Liczba całkowita dziesiętna musi być z przedziału : [-2 147 483 648, 2 147 483 647] Liczba całkowita szesnastkowa (należy użyć symbolu $ i liter od A do F dla oznaczenia cyfr szesnastkowych) powinna być z przedziału: [-$80000000, $7FFFFFFF] Liczba rzeczywista składa się z: mantysy – jest to liczba dziesiętna postaci: część-całkowita [. część-ułamkowa] opcjonalnie: litery E (lub e) – oznacza że podstawą wykładnika jest liczba 10 cechy – jest to liczba całkowita

Podstawy zapisywania programu w języku Pascal. Łańcuchy Łańcuch jest to ciąg znaków (maksymalnie 255) zapisanych w jednej linii i ujętych w apostrofy, znaków sterujących oraz znaków w postaci dziesiętnej i szesnastkowej poprzedzonych znakiem #. TYPY DANYCH:     • TYPY CAŁKOWITE shortint (-128..127) 1B integer (-32768..32767} 2B longint {-2147483648.. 2147483647} 4B byte {0..255} 1 bajt word {0..65535} 2 bajty     • TYP RZECZYWISTY real od 5.0e-324 do 1.7e308.     • TYP LOGICZNY boolean - TRUE (prawda) lub FALSE (fałsz)    • TYP ZNAKOWY char - pojedynczy znak o kodach ASCII (0..255) np. znak "A" czy "!"     • TYP ŁAŃCUCHOWY string - ciąg o dł.0-255 znaków, przykładowym łańcuchem jest: 'To jest tekst‘.

Podstawy zapisywania programu w języku Pascal. Instrukcja przypisania. Nadawanie wartości następuje bardzo często za pośrednictwem instrukcji przypisania, która ma ogólna postać: zmienna := wyrażenie; Operator „ := ” nazywa się operatorem przypisania , symbol zmienna oznacza tu identyfikator; wyrażenie musi być typu konwertowanego do typu zmiennej. W wersji najprostszej: zmienna := stała ; liczba := 10 ; {czytamy : zmiennej liczba przypisz wartość 10 ;} Przykład 1. var a,b :integer; begin a:=1; b:=a; writeln(c); writeln(b); end . Przykład 2. (Zmienne miały różne typy.) Program Instr_przypisania ; var liczba : integer; litera : char; BEGIN liczba := 33; {wynik wykonania programu } litera := char (liczba); { ! } writeln(litera); END.

Struktura programu w języku Pascal. program nazwa_programu; {Nagłówek programu - opcjonalny} ................................................... { SEKCJA DEKLARACJI } uses lista_nazw_modułów ; const sekwencja_definicji_stałych ; {Definicje stałych} type sekwencja_definicji_typów ; {Definicje typów} label lista_etykiet ; {Deklaracja etykiet} var sekwencja_deklaracji_zmiennych ; {Deklaracje zmiennych} procedure nazwa_procedury_1 ; {Definicje procedur} begin { Definicje składowych procedury_1 – kod procedury } end; procedure nazwa_procedury_2 ( lista_parametrów ) ; begin { Definicje składowych procedury_2 – kod procedury } end; . . .

Struktura programu w języku Pascal. function nazwa_funkcji_1 : typ_wartosci ; {Definicje funkcji} begin { Definicje składowych funkcji_1 – kod funkcji } nazwa_funkcji_1:= wynik; { przekazanie wyniku funkcji na zewnatrz } end; function nazwa_funkcji_2( lista_parametrów ) : typ_wartosci ; { Definicje składowych funkcji_2 – kod funkcji } nazwa_funkcji_2:= wynik; { przekazanie wyniku funkcji na zewnatrz } .................................................... { SEKCJA INSTRUKCJI } instrukcja_1 ; instrukcja_2 ; . . . instrukcja_N ; end .

Procedury wejścia/wyjścia. Write(); - powoduje wypisanie wartości wyrażenia zawartego w nawiasie. Writeln(); - powoduje wypisanie wartości wyrażenia zawartego w nawiasie i przejście do nowego wiersza. Write(123); Writeln(x); Writeln(‘To jest zdanie’); Write(‘Tekst’,4,’ ‘); Write(x:4:2); Readln(); - odczytanie danej z klawiatury i zakończonej naciśnięciem klawisza Enter. Read(); - odczytanie danej z dysku. Instrukcję Readln(); (bez parametru) stosujemy do zatrzymania programu. Naciśnięcie klawisza Enter powoduje dalszy ciąg programu.  

Deklaracja stałych i zmiennych w programie. Definiowanie stałych Definicje stałych rozpoczynają się od słowa kluczowego const. Każda definicja stałej ma następującą postać: nazwa_stałej = wartosc_stałej; Typ stałej jest określany na podstawie nadawanej jej wartości. Definicja stałej globalnej może występować tylko raz w całym programie. Wartości stałej nie można modyfikować w części wykonawczej programu. Przykładowe definicje stałych: Const k = 15; { stała całkowita typu integer } n = 40000; { stała całkowita typu word } d = 500000; { stała całkowita typu longint } x = -3.14; { stała rzeczywista typu real } y = 0.3E2; { stała rzeczywista typu real } c = ’K’; { stała znakowa

Deklaracja stałych i zmiennych w programie. Deklarowanie zmiennych Zmienne globalne, tj. dostępne w całym programie, deklaruje się w sekcji deklaracji zmiennych programu. Deklaracje zmiennych rozpoczynają się od słowa kluczowego var. Każda deklaracja zmiennej ma następującą postać: nazwa_zmiennej : typ_zmiennej; Typ zmiennej musi być: • jednym z typów standardowych, • typem zdefiniowanym wcześniej przez użytkownika, • typem opisanym w deklaracji zmiennej. Deklaracja zmiennej globalnej może występować tylko raz w całym programie.

Deklaracja stałych i zmiennych w programie. Przykładowe deklaracje zmiennych: Var a, b : integer; { zmienne typu integer } c : char; { zmienna typu char } d : boolean; { zmienna typu boolean } e, h : longint; { zmienne typu longint } x, y, z, w : real; { zmienne typu real } s : string; { zmienna typu string } W deklaracji zmiennej można użyć typu zdefiniowanego przez użytkownika. type Bajt = byte; { typ o nazwie Bajt - zgodny z bajt } Tlicz = real; { typ o nazwie Tlicz - zgodny z real } p : Bajt; { zmienna typu Bajt } q, r : Tlicz; { zmienne typu Tlicz }

Operatory i wyrażenia. Operatory

Operatory i wyrażenia. Konstrukcja i obliczanie wyrażeń Wyrażenia są budowane w oparciu o stałe, zmienne, operatory, nazwy funkcji i zbiorów oraz nawiasy okrągłe. Wyrażenia zapisujemy w jednym wierszu, bez opuszczania znaku mnożenia, z wykorzystaniem nawisów zwykłych. Wartościowanie wyrażenia – wyznaczenie wartości wyrażenia, tj. wykonanie operacji na argumentach zgodnie kolejnością określona przez nawiasy zwykłe lub priorytet operatorów. Przykładowe wyrażenia: (a-b)/(c+d); a-c/(d+e); (a+b)/c-d. Reguły obliczania wartości wyrażeń zawierających operatory: - wykonywanie obliczeń w kolejności określonej przez nawiasy grupujące; - w pierwszej kolejności realizacja działań dla operatorów o najwyższym priorytecie; - w przypadku jednakowego priorytetu operatorów wykonywanie działań od lewej strony do prawej.

Instrukcje warunkowe. Tworzenie programów z instrukcjami warunkowymi. INSTRUKCJA WARUNKOWA „IF THEN” if wyrażenie_logiczne then instrukcja ; _____________________________________________________ if wyrażenie_logiczne then begin instrukcja_1; instrukcja_2; { ciąg instrukcji } . . . instrukcja_n; end;

Instrukcje warunkowe. Tworzenie programów z instrukcjami warunkowymi.

Instrukcje warunkowe. Tworzenie programów z instrukcjami warunkowymi. INSTRUKCJA WARUNKOWA „IF THEN ELSE” if wyrażenie_logiczne then instrukcja_1 else instrukcja_2 ; ________________________________________________________ if wyrażenie_logiczne then begin {ciąg_instrukcji_1} end else {ciąg_instrukcji_2} end;

Instrukcje warunkowe. Tworzenie programów z instrukcjami warunkowymi.

Instrukcje warunkowe. Tworzenie programów z instrukcjami warunkowymi. { Uporządkuj trzy liczby } var a, b, c : real ; begin write( ' Podaj pierwsza liczbe: ' ); readln( a ); write( ' Podaj druga liczbe: ' ); readln( b ); write( ' Podaj trzecia liczbe: ' ); readln( c ) ; if a>b then if b>c then writeln( a,b,c ) else if a>c then writeln( a,c,b ) writeln( c,a,b ) writeln( b,a,c ) writeln( b,c,a ) writeln( c,b,a ) readln; end.

Instrukcje warunkowe. Tworzenie programów z instrukcjami warunkowymi. INSTRUKCJA WYBORU: case wyróżnik of zakres_1: instrukcja_1; zakres_2: instrukcja_2; . . . zakres_N: instrukcja_N; end; ________________________________________________________ else instrukcja_M;

Instrukcje warunkowe. Tworzenie programów z instrukcjami warunkowymi.

Instrukcje iteracyjne. INSTRUKCJA ITERACYJNA REPEAT

Instrukcje iteracyjne. INSTRUKCJA ITERACYJNA WHILE

Instrukcje iteracyjne. INSTRUKCJA ITERACYJNA FOR TO

Instrukcje iteracyjne. Instrukcja iteracyjna FOR DOWNTO

Tworzenie programów z operatorami iteracyjnymi. Przykład 1 { odczytywanie klawiszy do momentu naciśnięcia klawisza k' } var znak:char; begin repeat { za pomoca petli REPEAT } write('podaj znak: '); znak:=readkey; until znak='k'; znak:=#0; { za pomoca petli WHILE } while znak<>'k' do end;

Tworzenie programów z operatorami iteracyjnymi. Przykład 2 { drukowanie na ekranie poziomej kreski o zadanej długości } var i,dlugosc:integer; begin write('Podaj zadana dlugosc kreski: '); readln(dlugosc); clrscr; { za pomoca petli REPEAT } i:=1; repeat write('-'); i:=i+1; until i>dlugosc; clrscr; { za pomoca petli WHILE } i:=1; while i<=dlugosc do begin write('-'); i:=i+1; end; clrscr; { za pomoca petli FOR } for i:=1 to dlugosc do

Tworzenie programów z operatorami iteracyjnymi. Przykład 3 { policzenie sumy N podanych liczb } var i,N:integer; liczba,suma:real; begin write('Podaj ile liczb chcesz zsumowac:'); readln(N); suma:=0; { za pomoca petli FOR } for i:=1 to N do write('Podaj ',i,' liczbe: '); readln(liczba); suma:=suma+liczba; end; writeln('Suma podanych liczb wynosi: ', suma );

Tworzenie programów z operatorami iteracyjnymi. Przykład 4 { sumowanie podawanych liczb aż ich wartość przekroczy granicę } var liczba,suma,granica:real; begin write('Podaj wartosc graniczna sumowania:'); readln(granica); suma:=0; { za pomoca petli REPEAT } repeat write('Podaj liczbe: '); readln(liczba); suma:=suma+liczba; until suma>granica; writeln('Suma podanych liczb przekroczyla ',granica, ' i wynosi: ', suma ); end;

Tworzenie programów z operatorami iteracyjnymi. Przykład 5 { sumowanie liczb naturalnych aż ich wartość przekroczy granicę } var i:integer; liczba,suma,granica:real; begin write('Podaj wartosc graniczna sumowania:'); readln(granica); suma:=0; { za pomoca petli WHILE } i:=0; while suma<=granica do suma:=suma+i; i:=i+1; end; writeln('Suma podanych liczb wynosi: ', suma );

Tworzenie programów z operatorami iteracyjnymi. Przykład 6 { wyznaczenie wartości maximum z podanych 10 liczb } var i:integer; liczba,maximum:real; begin maximum:=-1.7e38; {najmniejsza wartosc liczby real} for i:=1 to 10 do write('Podaj ',i,' liczbe: '); readln(liczba); if liczba>maximum then maximum:=liczba; end; write('Najwieksza wartosc wynosi: ',maximum);

Tworzenie programów z operatorami iteracyjnymi. Przykład 7 { wyznaczenie wartości i pozycji maximum z podanych liczb } var i,pozycja,N:integer; liczba,minimum:real; begin write('Podaj ile liczb chcesz sprawdzic:'); readln(N); minimum:=+1.7e38; {najwieksza wartosc liczby real} pozycja:=-1; i:=1; while i<=N do write('Podaj ',i,' liczbe: '); readln(liczba); if liczba<minimum then begin minimum:=liczba; pozycja:=i; end; i:=i+1; writeln('Najmniejsza byla ',pozycja, ' liczba o wartosci: ',minimum);

Tworzenie programów z operatorami iteracyjnymi. Przykład 8 { policzenie wartości n! } function SILNIA( n:word ):longint; var i:word; s:longint; begin s:=1; for i:=2 to n do s:=s*i; SILNIA:=s; end;{-------------------------------------------SILNIA}