1
Podstawy programowania
wykład
dr inż. Robert Arsoba
Politechnika Koszalińska
Wydział Elektroniki i Informatyki
2009/2010
WYDZIAŁ
ELEKTRONIKI
POLITECHNIKA
KOSZALIŃSKA
i INFORMATYKI
2
Materiały do wykładu i
ćwiczeń
http://moskit.ie.tu.koszalin.pl/~bobby
3
Czym jest
programowanie?
Programowanie
to formułowanie ciągu
operacji rozwiązującego dany problem
w postaci akceptowalnej przez komputer.
inaczej:
Proces tworzenia programu (systemu)
komputerowego, na który składają się:
•
opracowanie założeń
•
kodowanie
•
testowanie
Dobre programowanie łączy elementy
inżynierii, „rzemiosła” i „sztuki”.
4
Podstawowe pojęcia
•
Algorytm
•
Język programowania
•
Program
•
Kod źródłowy i wynikowy
•
Kompilacja
•
Programowanie strukturalne i
obiektowe
•
Środowisko programistyczne
5
Algorytm
Algorytm
to dokładny, jednoznacznie sformułowany
sposób postępowania, umożliwiający rozwiązanie
określonego zadania w skończonej liczbie kroków.
(zbiór poleceń ze wskazaniem porządku, w jakim
mają
być realizowane).
Słowo
algorytm
pochodzi od przydomka
matematyka arabskiego (IX w.) Al-Chwarizmi
(Algorismus, Algorithmus).
Zapis algorytmu:
•
w postaci opisu słownego
•
w postaci pseudokodu
•
w postaci schematu blokowego
6
Schematy blokowe
Podstawowe symbole
początek lub koniec
algorytmu
operacja
wejścia/wyjścia
łączni
k
START
STOP
1
1
WE
WY
7
Schematy blokowe
Podstawowe symbole
blok operacyjny
(wykonanie
działania)
blok
decyzyjny
TAK
NIE
PRAWDA
FAŁSZ
8
Przykład schematu
blokowego
SIEĆ DZIAŁAŃ
DIAGRAM
PRZEPŁYWU
DANYCH
d >= 0
Start
Oblic
z
Wczytaj a, b,
c
Założenie:
a jest różne od
0
Brak
pierwiastków
rzeczywistych
ac
b
d
4
2
a
d
b
x
2
2
,
1
x1, x2
Stop
TAK
NIE
9
Język programowania
Język programowania
to zbiór:
•
zasad (tzw. składnia języka)
•
instrukcji
•
operatorów
•
…..
dzięki którym powstaje program
komputerowy
(a ściślej: kod źródłowy programu).
10
Dlaczego powstały języki
programowania?
Język naturalny
Język maszynowy
Język programowania
„Dodaj a do b,
wynik zapamiętaj w c”
c = a + b;
01001101001
10001011011
11010111001
Języki programowania
Niskiego
poziomu
Wysokiego poziomu
Pascal
Smalltalk
asembl
er
Eiffel
OBIEKTOW
E
STRUKTURALN
E
SQL
Forth
Lisp
Prolog
Object
Pascal
Modul
a
SPECJALIZOWAN
E
Java
C
C+
+
Perl
C#
Ruby
PHP
Python
SKRYPTOW
E
JavaScript
Visual
Basic
12
Program komputerowy
Program
to ciąg poleceń
(instrukcji) do wykonania dla
komputera.
Program
to algorytm zapisany
w języku programowania.
Program może występować w dwóch
postaciach:
•
kod źródłowy
•
kod wynikowy
13
Kod źródłowy i wynikowy
Kod źródłowy
to zapis programu
komputerowego w pewnym języku
programowania.
Jest to postać programu zrozumiała dla
programisty
(bez konieczności jego uruchamiania).
Kod wynikowy
to rezultat pracy translatora
(kompilatora, interpretera), nadający się do
bezpośredniego wykonywania przez procesor.
14
Kompilacja
Kompilator
to translator języka wysokiego
poziomu, którego programy wynikowe mogą
być wprowadzone do pamięci i wykonane
dopiero po zakończeniu tłumaczenia
(w odróżnieniu od interpretera, w którym
instrukcje wynikowe są wykonywane na bieżąco).
Kompilacja
to proces przekształcania
kodu
źródłowego na kod wynikowy
(maszynowy).
15
Kompilacja kodu źródłowego
w C
Kod źródłowy
*.C, *.H
Kod wynikowy
(pośredni)
*.OBJ
Kod
wynikowy
*.EXE
Biblioteki
KOMPILATOR
KONSOLIDATOR
(LINKER)
PREPROCESOR
16
Programowanie
strukturalne
Programowanie obiektowe
Dane i wykonywane na nich operacje
są połączone - tworzą tzw. klasę.
obiekt
Program podzielony jest na niewielkie
fragmenty (podprogramy) nazywane
procedurami lub funkcjami.
Komponentowe
Modularne
17
Środowisko
programistyczne
IDE (Integrated Development
Environment)
C++
Builder
Delph
i
JBuilder
Visual
Studio
PowerBuild
er
.NET
RAD (Rapid Application Development)
Eclipse
Szybkie tworzenie aplikacji
Kylix
NetBean
s
18
Etapy tworzenia programu
ANALIZA
PROBLEMU
POMYSŁ
(koncepcja)
PROJEKT
(struktury
danych,
algorytmy)
strukturalna
obiektowa
KODOWANIE
OPTYMALIZACJA
KODU
(szybkość,
rozmiar)
KOMPILACJA
DOKUMENTACJA
TESTOWANIE
Wybór języka
programowani
a
KONSERWACJA
C
Pasca
l
19
Język C
Historia języka
Zaprojektowany w 1972 w Bell Laboratories
(Dennis Ritchie).
Zrealizowany pod systemem
operacyjnym UNIX
dla komputera DEC PDP-11.
Początkowo był językiem oprogramowania systemowego
(powstał jako język do programowania systemu UNIX).
Szybko zyskał popularność jako uniwersalny język
programowania ogólnego przeznaczenia.
PDP 11/45
20
Zaglądamy do
muzeum…
21
Zaglądamy do muzeum…
22
Język C
Główne cechy
•
język proceduralny (strukturalny)
•
język wysokiego poziomu, ale dość „bliski”
sprzętowi
•
zwięzły i elastyczny
•
mały zestaw instrukcji
•
rozbudowany zestaw operatorów
•
duża przenośność kodu źródłowego
•
przerzuca dużą odpowiedzialności na
programistę
(np. brak wbudowanej kontroli indeksowania
tablic)
„Język C jest jak ostry nóż: w sprawnych
rękach narzędzie proste i użyteczne, które
jednak może skaleczyć nowicjusza”
(Andrew Koenig).
23
Język C
Standard języka (
ANSI C
)
ANSI (American National Standards
Institute)
Amerykański Narodowy Instytut
Normalizacyjny
Standaryzacja w latach 1983-1988
Standard ANSI X3.159-1989
„Programming Language C”
(1988 rok)
tzw. pure C („czysty” język C)
24
•
B. Kernighan, D. Ritchie: “Język ANSI C”, WNT, Warszawa,
2000.
•
J. Grębosz: “Symfonia C++. Programowanie w języku
C++ orientowane obiektowo”, Oficyna Kallimach,
Kraków, 1999.
•
K. Barteczko: “Praktyczne wprowadzenie do
programowania obiektowego w języku C++”,
Wydawnictwo Lupus, Warszawa 1993.
•
B. Stroustrup: “Język C++”, WNT, Warszawa, 2000.
•
S. Lippman: “Podstawy języka C++”, WNT, Warszawa,
1997.
•
S. Lippman, J. Lajoie: “Podstawy języka C++”, WNT,
Warszawa 2001.
•
B. Eckel: “Thinking in C++. Edycja polska”,
Wydawnictwo Helion, Gliwice 2002.
Literatura