Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
PROGRAMOWANIE
PROGRAMOWANIE
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Algorytmy + Struktury Danych = Programy
Algorytmy + Struktury Danych = Programy
*
*
Algorytmy + Struktury Danych = Programy
Algorytmy + Struktury Danych = Programy
*
*
*
Nikolas Wirth – twórca języka PASCAL
Program to sformalizowany zapis algorytmu w rygorze
składni języka programowania.
Programowanie liniowe:
Programowanie liniowe:
Programowanie strukturalne:
Programowanie strukturalne:
START
START
KONIEC
KONIEC
Instrukcja
Instrukcja
Instrukcja
Instrukcja
Instrukcja
Instrukcja
Instrukcja
Instrukcja
START
START
KONIEC
KONIEC
Blok Instrukcji
Blok Instrukcji
Blok Instrukcji
Blok Instrukcji
Blok Instrukcji
Blok Instrukcji
Blok Instrukcji
Blok Instrukcji
Algorytm
jest to sposób postępowania, który ma prowadzić w sposób
automatyczny do rozwiązania określonego zadania.
Zakłada się, że pewne instrukcje tego sposobu postępowania są wykonywalne,
tzn. że są one zdefiniowane i nazywają się
instrukcjami pierwotnymi
.
Dziedzina algorytmiczna
to zbiór obiektów wraz z instrukcjami pierwotnymi
i relacjami pomiędzy elementami zbioru.
m
n
r
r
f
f
A
,...
,
,...
,
1
1
A – zbiór niepusty,
f
1
..f
n
– funkcje określone dla argumentów ze zbioru A,
r
1
..r
n
– relacje zachodzące między elementami zbioru A
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
,
mod,
,
,*,
,
,
div
Z
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Dziedzina liczb całkowitych:
10 + 3 = 13
10 – 3 = 7
10 * 3 = 30
10 div 3 = 3
10 mod 3 = 1
10 = 3 : fałsz
3 < 10 :
prawda
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Język maszynowy
...01100100111011...
Język naturalny
...niech mi Pan nie przerywa, Panie...
Język niskiego poziomu
Język niskiego poziomu
Język wysokiego poziomu
Język wysokiego poziomu
Języki programowania
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Proste typy zmiennych:
Zmienne alfanumeryczne
Zmienne alfanumeryczne
Znaki
(char)
Znaki
(char)
Łańcuchy
(string)
Łańcuchy
(string)
Zmienne numeryczne
Zmienne numeryczne
Całkowite
(integer)
Całkowite
(integer)
Rzeczywiste
(real)
Rzeczywiste
(real)
X
X
Identyfikat
or
zmiennej
Identyfikat
or
zmiennej
Wartość
zmiennej
Wartość
zmiennej
X równa się
5
X
5
Zmienne logiczne
Zmienne logiczne
Prawda
(true)
Prawda
(true)
Fałsz
(false)
Fałsz
(false)
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Stałe:
Stałe liczbowe
Stałe liczbowe
Dziedzina Liczb
Całkowitych:
-12, 3, 12345, 0
Dziedzina Liczb
Całkowitych:
-12, 3, 12345, 0
Dziedzina Liczb
Rzeczywistych:
1.23, -0.345, 234.5
Dziedzina Liczb
Rzeczywistych:
1.23, -0.345, 234.5
Stałe logiczne
Stałe logiczne
Prawda
True, T, 1
Prawda
True, T, 1
Fałsz
False, Nil, 0
Fałsz
False, Nil, 0
Inne
Inne
np. PI
3.14...
np. PI
3.14...
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Operatory:
Operatory arytmetyczne:
Operatory arytmetyczne:
+
: suma
-
: różnica
*
: iloczyn
/
: iloraz
div
: iloraz całkowity
mod
: reszta z
dzielenia
+
: suma
-
: różnica
*
: iloczyn
/
: iloraz
div
: iloraz całkowity
mod
: reszta z
dzielenia
=
: równe
<>
: różne (/=)
>
: większe
<
: mniejsze
>=
: większe-równe
<=
: mniejsze-
równe
=
: równe
<>
: różne (/=)
>
: większe
<
: mniejsze
>=
: większe-równe
<=
: mniejsze-
równe
Operatory relacji:
Operatory relacji:
Operatory logiczne:
Operatory logiczne:
AND
: koniunkcja
OR
: alternatywa
NOT
: negacja
AND
: koniunkcja
OR
: alternatywa
NOT
: negacja
AND
Prawda
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Prawda
Prawda
Prawda
OR
Prawda
Fałsz
Prawda
Fałsz
Fałsz
Fałsz
Prawda
Prawda
Prawda
NOT
Prawda
Fałsz
Fałsz
Prawda
X równa się
5
X
5
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Instrukcja przypisania:
Formalna postać instrukcji przypisanie związana jest ze składnią
konkretnego języka programowania:
X := 5
X := 5
(setq X 5)
(setq X 5)
X = 5
X = 5
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Instrukcja warunkowa:
Instrukcja 1
Instrukcja 1
Instrukcja 2
Instrukcja 2
Warunek
Warunek
Fałsz
Prawda
Pętla z warunkiem na początku:
Pętla z warunkiem na końcu:
Warunek może mieć postać:
- zmiennej logicznej posiadającej
wartość prawda lub fałsz
- relacji o wartość prawda lub fałsz
Instrukcja
Instrukcja
Warunek
Warunek
Fałsz
Prawda
Blok instrukcji
Blok instrukcji
Instrukcja
Instrukcja
Warunek
Warunek
Fałsz
P
ra
w
d
a
Blok instrukcji
Blok instrukcji
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Programowanie Strukturalne: Funkcja Użytkownika
Pole okręgu o promieniu R wynosi *R*R
2
R
F
funkcja PoleOkregu: argument R
wynik = *R*R
koniec
funkcja PoleOkregu: argument R
wynik = *R*R
koniec
...
X = PoleOkregu 5
Y = PoleOkregu 10
P = Y - X
...
X = PoleOkregu 5
Y = PoleOkregu 10
P = Y - X
Argument
Argument
formalny
formalny
Argument
aktualny
Argument
aktualny
...
function PoleOkregu(R:real):real;
begin
result:=PI*R*R
end;
...
X:=PoleOkregu(5);
Y:=PoleOkregu(10);
P:=Y-X;
...
...
function PoleOkregu(R:real):real;
begin
result:=PI*R*R
end;
...
X:=PoleOkregu(5);
Y:=PoleOkregu(10);
P:=Y-X;
...
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
Programowanie metodą „Step Down”:
od ogółu do szczegółu
R
w
R
z
Problem: Napisać program obliczający pole fragmentu
pierścienia kołowego na podstawie danych R
z
, R
w
i
uzyskanych od użytkownika.
Start Programu
rz = Pytanie „Podaj promień R
z
”
rw = Pytanie „Podaj promień R
w
”
alfa = Pytanie „Podaj kąt [º]”
alfa = Radian alfa
f1 = PoleWycinka rz alfa
f2 = PoleWycinka rw alfa
wynik = f1 – f2
Koniec Programu
Start Programu
rz =
Pytanie
„Podaj promień R
z
”
rw =
Pytanie
„Podaj promień R
w
”
alfa =
Pytanie
„Podaj kąt [º]”
alfa =
Radian
alfa
f1 =
PoleWycinka
rz alfa
f2 =
PoleWycinka
rw alfa
wynik = f1 – f2
Koniec Programu
funkcja
Radian
argument
deg
wynik = deg * PI / 180
koniec