TI-PS-0-
TI-PS-0-
TI-PS-0-WSTP
TI-PS-0-
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
1 PS/TP
000 - PROGRAMOWANIE STRUKTURALNE
TECHNIK INFORMATYK 312[01]
PROGRAM NAUCZANIA: 312[01]/T,SP/MENIS/2004.06.14
Przedmiot: Programowanie strukturalne i obiektowe
dla technikum 4-letniego
2 PS/TP
PROGRAMOWANIE STRUKTURALNE
LITERATURA POMOCNICZA:
" Wiesław Porębski. PASCAL. Wprowadzenie do programowania. Wyd. 5. HELP.
" Andrzej Marciniak. Turbo Pascal 5.5. wyd. II poprawione i uzupeł. Nakom Poznań 1993.
" Gra\yna Koba. Informatyka dla liceum ogólnokształcących. Cz. 1. Wydawnictwo MIGRA
" Gra\yna Koba. Informatyka dla liceum ogólnokształcących. Cz. 2. Wydawnictwo MIGRA
" Borland TP7 User s Guide
" Borland TP7 Language Guide
" Borland TP7 Programmer s Reference
" N. Wirth Algorytmy + struktury danych = Programy , WNT
3 PS/TP
PROGRAMOWANIE STRUKTURALNE
Polecane środowiska programowania języków Pascal, C++, Java:
Free Pascal Compiler
Borland Delphi 7.0
Borland C++ Builder 6.0 Personal Edition
Borland JBuilder
4 PS/TP
PROGRAMOWANIE STRUKTURALNE
Nauka tego przedmiotu, oprócz poznawania technik programowania,
doskonali znajomość języka angielskiego poprzez korzystanie z wersji
angielskiej oprogramowania oraz z dokumentacji technicznej napisanej w
języku angielskim.
Podczas projektowania programów będziesz:
o uczył się odczytywania ze zrozumieniem instrukcji,
o wydawania poleceń w języku angielskim,
o tłumaczenia na język polski angielskich tekstów
Programowanie jest umiejętnością przede wszystkim
praktyczną, dlatego
zdecydowaną większość czasu musisz poświecić na samodzielne
programowanie na zajęciach i w domu.
Niezbędne informacje znajdziesz w plikach w formacie PDF.
5 PS/TP
PROGRAMOWANIE STRUKTURALNE
BEZ MATEMATYKI
NIE MA
INFORMATYKI
6 PS/TP
PROGRAMOWANIE STRUKTURALNE
Cele kształcenia uczeń powinien umieć:
1. scharakteryzować budowę i zasadę działania programu
2. komputerowego,
3. wyjaśnić podstawowe pojęcia związane z programowaniem,
4. zastosować podstawowe algorytmy i sposoby ich zapisu,
5. posłu\yć się edytorem, kompilatorem, debugerem oraz dokumentacją
6. języka programowania,
7. zastosować czytelny styl programowania i opracować dokumentację
8. programu,
9. zlokalizować i usunąć błędy w programach, przetestować programy,
10.zastosować podstawowe typy danych, stałe, zmienne i funkcje,
11.zaprojektować wyra\enia z operatorami arytmetycznymi, logicznymi
12.oraz relacji,
13.zastosować w programach instrukcje: proste, zło\one, sterujące oraz
14.iteracyjne,
15.posłu\yć się podprogramami: własnymi i standardowymi z biblioteki,
7 PS/TP
PROGRAMOWANIE STRUKTURALNE
16.zaplanować podział zadania/problemu na moduły,
17.zastosować strukturalne typy danych: tablice, pliki, zbiory, rekordy,
18.posłu\yć się wskaznikami do budowy dynamicznych struktur danych:
stosów, kolejek, list, drzew, grafów,
16.wykorzystać w programach dzwięki, grafikę, animacje,
17.zaprojektować programy współpracujące z systemem operacyjnym,
18.zaprojektować programy odporne na błędne dane,
19.wyjaśnić ró\nice pomiędzy programowaniem strukturalnym
i obiektowym,
16.scharakteryzować pojęcia dotyczące programowania obiektowego:
obiekt, klasa, metoda, atrybut,
16.zastosować podstawowe konstrukcje języka obiektowego,
17.zaprojektować klasy i moduły, zastosować hermetyzacje,
18.posłu\yć się konstruktorem i destruktorem,
19.zastosować dziedziczenie, funkcje wirtualne, zaprzyjaznione,
operatorowe,
20.zaprojektować aplikację typu SDI oraz MDI,
8 PS/TP
PROGRAMOWANIE STRUKTURALNE
21.zaprojektować program o charakterze obliczeniowym, graficznym,
22.zaprojektować aplikacje sieciowe, bazodanowe,
23.wyjaśnić przeznaczenie i właściwości apletów,
24.zaprojektować aplikacje współbie\ne, wielowątkowe,
25.wykonać zło\ony system informatyczny pracując w zespole,
26.zmodyfikować kod zródłowy zapisany w języku programowania,
27.zaprojektować programy dla środowiska Windows,
28.skorzystać z informacji na temat programowania, zgromadzonych
29.w sieci Internet oraz w innych zródłach,
30.posłu\yć się angielską terminologią dotyczącą tematyki zawodowej.
9 PS/TP
PROGRAMOWANIE STRUKTURALNE
1. WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO
W PASCALU
Podstawowe pojęcia dotyczące programowania:
" program komputerowy,
" języki programowania,
" kompilator,
" interpretator,
" konsolidator.
Algorytmy i sposoby ich zapisu.
Etapy tworzenia programu:
" planowanie,
" pisanie,
" kompilacja,
" konsolidacja,
" testowanie
" optymalizacja.
10 PS/TP
PROGRAMOWANIE STRUKTURALNE
Zasady programowania strukturalnego.
Edytor środowiska systemu Pascal.
Podstawy zapisywania programu w języku Pascal:
" słowa kluczowe,
" identyfikatory,
" liczby,
" symbole podstawowe,
" komentarze,
" stałe logiczne.
11 PS/TP
PROGRAMOWANIE STRUKTURALNE
Typy danych:
" całkowity,
" rzeczywisty,
" znakowy,
" łańcuchowy,
" logiczny,
" okrojony,
" wyliczeniowy.
Struktura programu w języku Pascal.
Instrukcje wejścia/wyjścia.
Deklaracje zmiennych i stałych.
12 PS/TP
PROGRAMOWANIE STRUKTURALNE
Instrukcja przypisania.
Wyra\enia i operatory.
Standardowe funkcje i procedury.
Instrukcje:
" warunkowe,
" iteracyjne,
" zło\one.
13 PS/TP
PROGRAMOWANIE STRUKTURALNE
2. PODPROGRAMY
Ogólna postać funkcji i procedury.
Zmienne lokalne i globalne.
Parametry formalne i aktualne.
Przekazywanie parametrów przez wartość i przez zmienną.
Wywoływanie funkcji i procedur.
Rekurencja.
Stosowanie algorytmów interacyjnych i rekurencyjnych, algorytmu
Euklidesa, obliczania potęgi, wyznaczania liczb Fibonacciego.
Funkcje i procedury obsługi ekranu.
Moduły u\ytkownika - zasady budowy i korzystania z modułów.
14 PS/TP
PROGRAMOWANIE STRUKTURALNE
3. TYPY STRUKTURALNE
Tablice.
Pliki tekstowe i operacje na tekstach.
Pliki elementowe.
Operacje na plikach.
Zbiory.
Rekordy.
Ogólne zasady budowy systemów informatycznych.
15 PS/TP
PROGRAMOWANIE STRUKTURALNE
" Stosowanie tablic i wykonywanie podstawowych operacji na tablicach:
sortowanie, wyszukiwanie.
" Zamiana liczb dziesiętnych na binarne.
" Znajdowanie zera funkcji metodą połowienia przedziału.
" Operowanie plikami tekstowymi i elementowymi.
" Wykonywanie operacji na tekstach.
" Korzystanie z podstawowych algorytmów umo\liwiających wykonywanie
operacji na zbiorach.
" Wykorzystywanie rekordów do projektowania baz danych.
" Wykorzystywanie plików do projektowania systemu informatycznego typu
baza danych.
16 PS/TP
PROGRAMOWANIE STRUKTURALNE
4. DYNAMICZNE STRUKTURY DANYCH
Wskazniki.
Funkcje i procedury dynamicznego przydziału pamięci.
Tworzenie i przetwarzanie dynamicznych struktur danych:
" stos,
" kolejka,
" listy,
" drzewa.
17 PS/TP
PROGRAMOWANIE STRUKTURALNE
5. ELEMENTY ZAAWANSOWANEGO
PROGRAMOWANIA W PASCALU
Dyrektywy kompilatora.
Obsługa urządzeń peryferyjnych.
Rejestry procesora.
Wbudowany asembler.
Lokalizacja i usuwanie usterek w programie za pomocą debuggera.
18 PS/TP
PROGRAMOWANIE STRUKTURALNE
Poprawność i zło\oność obliczeniowa algorytmów.
Optymalizacja działania programu.
Dokumentacja programu.
19 PS/TP
PROGRAMOWANIE STRUKTURALNE
SPIS TREŚCI
1. Wprowadzenie do programowania strukturalnego w Pascalu
(pliki TI_PS_CZESC_1A.pdf, TI_PS_CZESC_1B.pdf,
TI_PS_CZESC_1C.pdf, TI_PS_CZESC_1D.pdf)
2. Podprogramy
(plik TI_PS_CZESC_2.pdf)
3. Typy strukturalne
(plik TI_PS_CZESC_3.pdf)
4. Dynamiczne struktury danych
(plik TI_PS_CZESC_4A.pdf)
5. Elementy zaawansowanego programowania w Pascalu
(plik TI_PS_CZESC_4B.pdf)
20 PS/TP
001
Wstęp
do
programowania
PROGRAM
OUTPUT
INPUT
Gdańsk 2002
21 PS/TP
CO TO JEST PROGRAMOWANIE ?
Programowaniem nazywamy zakodowanie danego
algorytmu za pomocą ciągu rozkazów napisanych w jakimś
języku programowania język programowania to stworzony
przez ludzi sztuczny język słu\ący do sterowania
komputerem.
BEGIN
READ
KODOWANIE
PROGRAM
IF WRITE
END
22 PS/TP
Algorytm obliczania średniej arytmetycznej
START
N 10
SUMA 0
I 1
CZYTAJ X
SUMA SUMA + X
I I + 1
T
N
I <= N
SREDNIA SUMA / N
WYPISZ SREDNIA
STOP
23 PS/TP
KODOWANIE
24 PS/TP
Program obliczający średnią arytmetyczną
Program przyklad;
(* obliczanie średniej z n liczb *)
const n = 10;
var i: integer;
x, suma, srednia: real;
begin
for i:=1 to n do
begin
readln(x);
suma:=suma+x;
end;
srednia:=suma/n;
writeln(srednia);
end.
25 PS/TP
GENERACJE JZYKÓW PROGRAMOWANIA
I GENERACJA
II GENERACJA
III GENERACJA
IV GENERACJA
26 PS/TP
I GENERACJA
Pierwszym językiem był kod binarny, składający się z ciągu
rozkazów w postaci zer i jedynek.
Dlatego język taki nazywamy językiem binarnym. Jak wiadomo
sercem ka\dego komputera jest procesor, który dysponuje swoim
zestawem rozkazów. Dlatego dla ka\dego typu procesora musiały
istnieć inne zestawy rozkazów. Języki binarne były więc
całkowicie uzale\nione od procesora, czyli konkretnego
komputera. Dlatego nazwano je językami maszynowymi lub
wewnętrznymi.
Główną wadą takiego programowania jest po prostu ucią\liwość
polegająca na pamiętaniu wszystkich kodów w postaci binarnej,
która nie jest dogodna dla człowieka wychowanego w świecie
liczb dziesiętnych.
27 PS/TP
PROGRAM BINARNY (MASZYNOWY)
00011110
01010010
01010000
10001110 11011001
10100000 00001001
01001101 00010101
01110000
01110010
00111110
Programowanie binarne komputera odbywało się za pomocą
przełączników oraz specjalnych kart lub taśm dziurkowanych.
Dlatego takie programowanie mo\na nazwać ręcznym.
28 PS/TP
II GENERACJA
Aby ułatwić programowanie wprowadzono języki symboliczne
zwane asemblerami. W asemblerze ka\dy pojedynczy rozkaz
procesora zastąpiono symbolami które były łatwiejsze do
zapamiętania. Jednak nadal ka\dy asembler był związany z danym
typem komputera (procesora).
PUSH DS
PUSH DX
PUSH AX
MOV DX, OFFSET Msg
MOV AH,09H
INT 21H
POP AX
POP DX
POP DS
29 PS/TP
Początkowo ka\dy rozkaz asemblera był kodowany ręcznie na
zera i jedynki, lecz znacznym ułatwieniem były tzw.
translatory programy tłumaczące symbole języka asemblera
na kody binarne. Programy te nazwano asemblerami a pózniej
makroasemblerami, poniewa\ sekwencje rozkazów często
u\ywanych nazwano makrami.
A S E M B L E R
( t r a n s la t o r )
P ro g r a m
P ro g r a m
b in a r n y
s y m b o lic z n y
( m a s z y n o w y )
( w ję z y k u
1 0 0 1 0 0 1
a s e m b le r a )
0 1 0 0 1 0 1
M O V A X ,0 1
1 1 1 1 0 0 0
A D D H L
0 0 0 1 1 0 1
R E T
30 PS/TP
III GENERACJA
Pózniej powstały języki tzw. wysokiego poziomu . W językach
wysokiego poziomu symbole asemblera zastąpiono kodem
zbli\onym do języka naturalnego (angielskiego) i matematycznego.
10 START
20 PRINT WITAM
30 STOP
Języki te były ju\ w małym stopniu zale\ne od konkretnego
typu komputera.
31 PS/TP
Wysoki poziom Asembler Kod binarny
Program w języku
wysokiego poziomu
Program
10 START
symboliczny
Translacja na asembler
20 PRINT WITAJ
(w języku
30 STOP
asemblera)
MOV AX,01
ADD HL
RET
Program binarny
(wykonywalny)
Translacja na kod binarny
00011101
01010100
11001001
10001111
00001111
32 PS/TP
Poniewa\ stworzone języki wysokiego poziomu były zrozumiałe
jedynie przez człowieka to musiano stworzyć specjalne programy
tłumaczące zwane kompilatorami i konsolidatorami (ang.
linkerami).
Oprócz kompilatorów stworzono równie\ interpretery.
W ogólności mo\na powiedzieć, \e translatory dzielimy na
kompilatory i interpretery o których bli\ej w następnym
rozdziale.
PAMITAJ:
TYLKO PROGRAM BINARNY MOśE BYĆ
WYKONYWANY PRZEZ PROCESOR.
33 PS/TP
IV GENERACJA
Właściwie to trudno powiedzieć do której generacji nale\ą
języki strukturalne oraz obiektowe.
Najpierw były języki strukturalne, za pomocą których pisano
programy składające się z wielu modułów jeden moduł był
zawsze głównym t.j. sterował pozostałymi.
m o d u le fir st;
fu n c tio n fu n (a ):re a l;
fu n := a + 1 0 0 ;
P ro g ra m m a in ;
e n d ;
b e g in
re a d ( x );
y := fu n (x );
d isp (y );
e n d .
m o d u le se c o n d ;
fu n c tio n d isp (b );
w rite ln (b );
e n d ;
34 PS/TP
Z tego okresu pozostało znane programistom określenie
prof. Niklausa Wirtha :
Struktury danych + Algorytmy = Programy (patrz rysunek).
Dane
Program przykład;
var
x: array[1..100] of integer;
i: integer;
y: integer;
Algorytm
begin
for i := 1 to 100 do
begin
readln(y);
x[i] := y;
end;
end.
Pózniej powstały, a właściwie wytworzono nową filozofię podejścia
do programowania a mianowicie programowanie zorientowane
obiektowo bazujące na językach strukturalnych.
35 PS/TP
V GENERACJA
Języki V generacji to grupa języków stosowana do tworzenia
programów ekspertowych lub t.z.w. aplikacji wykorzystujących
sztuczną inteligencję . Ich zastosowanie odnosi się na razie
głównie do sfery badawczej i dlatego nie będą omawiane.
KLASYFIKACJA TRANSLATORÓW
CO TO JEST TRANSLACJA?
Translacją nazywamy proces tłumaczenia kodu jednego
języka na kod innego języka.
36 PS/TP
Program lub grupa programów słu\ąca do translacji
nazywamy translatorem. Język z którego dokonuje się
translacji nazywamy postacią zródłową a język na który
translator tłumaczy nazywamy postacią wynikową.
Postać zródłowa Postać wynikowa
MOV AX,X
X:=X+21; ADD AX,21
MOV BX,AX
TRANSLATOR
Słownictwo Słownictwo
Gramatyka Gramatyka
Interpretacja Interpretacja
37 PS/TP
Jak wiadomo ka\dy język naturalny (angielski, polski, niemiecki
i.t.d.) ma swoje słownictwo, gramatykę oraz interpretację.
Translator musi więc znać słownictwo, gramatykę i interpretację
obu języków.
Zbiór reguł obowiązujących w danym języku (słownictwo
i gramatyka) nazywamy składnią danego języka, a sposób
interpretacji zdań zapisanych w danym języku nazywamy
semantyką.
SKAADNIA czyli odpowiedz na pytanie: JAK PISAĆ
POPRAWNY PROGRAM?
SEMANTYKA czyli odpowiedz na pytanie: CO POWODUJE
WYKONANIE PROGRAMU?
38 PS/TP
Translatory dzielimy na asemblery, kompilatory i interpretery
Translatory
Asemblery Kompilatory Interpretery
Języki programowania mo\na więc tak\e podzielić na języki
symboliczne asemblera, kompilowane oraz interpretowane.
Asembler tłumaczy ka\dy jeden rozkaz kodu asemblera na jeden
rozkaz binarny, a kompilator i interpreter tłumaczy jeden rozkaz
języka wysokiego poziomu na wiele rozkazów w kodzie
binarnym.
39 PS/TP
JAK DZIAAA KOMPILATOR ?
I Faza. Kompilowanie (tłumaczenie rozkazów programu zródłowego na rozkazy binarne)
Program zródłowy
KOMPILATOR Program wynikowy
np. test.pas
np. test.exe
II Faza. Wykonywanie (procesor komputera wykonuje rozkazy binarne)
Program wynikowy
np. test.exe
40 PS/TP
JAK DZIAAA INTERPRETER?
Działanie interpretera jest odmienne w porównaniu z
kompilatorem. Interpreter nie tłumaczy całego programu
zródłowego, lecz wykonuje go krok po kroku to znaczy rozkaz po
rozkazie.
Jego działanie dla ka\dej linii programu przebiega w
następujących fazach:
I Faza. Pobranie linii zawierającej rozkaz. Interpreter sprawdza
poprawność (składnię) rozkazu.
II Faza. Kompilowanie rozkazu (tłumaczenie rozkazu na
postać binarną)
III Faza. Wykonywanie rozkazu binarnego przez procesor
komputera.
41 PS/TP
UWAGA: jeśli interpreter stwierdzi błąd w składni rozkazu, to
natychmiast przerywa działanie programu i wyświetla komunikat
informujący o rodzaju błędu i numerze linii w której stwierdził błąd.
INTERPRETER
Program zródłowy
Pobranie kolejnego SPRAWDZENIE
rozkazu SKAADNI
np. test.js
ROZKAZU
WYGENEROWANIE
ROZKAZU BINARNEGO
Skok do następnego
rozkazu
WYKONANIE ROZKAZU
BINARNEGO
42 PS/TP
Języki interpretowane są łatwiejsze do
opanowania przez początkujących
programistów, lecz programy w nich
pisane działają na ogół wolniej.
Programy pisane w językach
kompilowanych są szybsze i lepiej
wykorzystują pamięć komputera.
43 PS/TP
CO TO JEST KONSOLIDACJA ?
P rog ram głów n y F A Z A 1 F A ZA 2
w język u
K O D
w ysok iego
A S E M B L E R O W Y
K O M P ILA C JA
p oziom u
kon solidacja
PR O G R A M U
C JA
G A Ó W N E G O
M od uł M 1 w K O D
język u w ysok iego A S E M B L E R O W Y
kon solidacja
K O M P ILA C JA
p oziom u M O D U A U M 1
C JA
M oduł M 2 w
K O D
język u w ysok iego
A S E M B L E R O W Y
kon solidacja
p oziom u
K O M P ILA C JA
M O D U A U M 2
C JA
44 PS/TP
PROGRAM BINARNY (WYNIKOWY)
PODSUMOWANIE:
W chwili obecnej pod pojęciem kompilacji środowisko programistów
rozumie fazę kompilacji i konsolidacji.
W uproszczeniu mo\emy powiedzieć \e kompilowanie programu
zródłowego to tłumaczenie instrukcji kodu zródłowego (plik o
rozszerzeniu n.p. PAS) na kod wynikowy (wykonywalny przez procesor
danej maszyny) w pliku o rozszerzeniu EXE.
Natomiast interpretowanie to pobieranie i wykonywanie przez maszynę
od razu kolejnych instrukcji kodu zródłowego. Dlatego w przypadku
języków interpretowanych nie powstaje plik o rozszerzeniu EXE.
Jednym z pierwszych translatorów który zrobił karierę był TURBO
PASCAL firmy Borland, bowiem potrafił w bardzo krótkim czasie
wykonać fazę kompilacji i fazę konsolidacji.
45 PS/TP
Program w języku PASCAL oblicza średnią arytmetyczną
Program przyklad;
(* obliczanie średniej z n liczb *)
const n = 10;
var i: integer;
x, suma, srednia: real;
begin
for i:=1 to n do
begin
readln(x);
suma:=suma+x;
end;
srednia:=suma/n;
writeln(srednia);
end.
46 PS/TP
Wyszukiwarka
Podobne podstrony:
pas czescpas czescpas czesc 3pas czescpas czescczesc rozdzialczesc 1Thaumasyt – Część 1 Droga do powszechnie przyjętego zrozumieniaczesc rozdzialczesc rozdzialwięcej podobnych podstron