1 Inf Wyk1 2013


Wydział Inżynierii Mechanicznej i Robotyki
AGH w Krakowie
Studia Niestacjonarne, Rok 1, semestr 2
przedmiot:
Informatyka
Dr inż. Zbigniew Rudnicki
Katedra Konstrukcji i Eksploatacji Maszyn AGH
B-2, pok.301
AGH WIMiR Studia Niestacjonarne
Semestr 2: Informatyka
AiR 10 godz. wykładu, 10 godz. laboratorium
MiBM 8 godz. wykładu, 16 godz. laboratorium
" Wykłady: B2 sala 100 oraz 140
dr inż Zbigniew Rudnicki, B-2 pok.301
e-mail: zbigniew.rudnicki@agh.edu.pl
" Laboratoria: B2 sale: 320-322
- dr inż. Krystyna Prync-Skotniczny
- mgr inż. Piotr Bera
Informacje: w INTERNECIE:
http://www.kkiem.agh.edu.pl
i niektóre w gablotce B-2 III p. obok pokoju 301
2
1
Cele nauczania przedmiotu Informatyka
1) poznanie podstawowych idei konstruowania algorytmów
i programowania komputerów, z wykorzystaniem różnych
struktur danych i języków programowania;
2) nauczenie się podstaw użytkowania potężnego pakietu
oprogramowania jakim jest Matlab i poznanie niektórych,
jego możliwości;
3) poznanie zasad tworzenia programów z interfejsem
graficznym ( okienkowych ) w Matlabie i Visual Basic u
4) poznanie podstawowych idei, narzędzi i zastosowań
Baz Danych.
3
Wykłady (obecność sprawdzana)
Tematyka:
1) Algorytmy i struktury danych
2) Matlab - charakterystyka pakietu, tryby użytkowania.
3) Podstawy programowania w języku Matlab
4) Macierze i operacje macierzowe w Matlabie
5) Wykresy i obiekty graficzne w Matlabie
6) Matlab - tworzenie graficznego interfejsu użytkownika
7) Programowanie obiektowe w Matlabie i Visual Basic
8) Ogólna charakterystyka języka C i porównanie z Matlabem
9) Budowa i obsługa baz danych. Elementy języka SQL
10) Internetowe bazy danych i dynamiczne strony www
4
2
Ćwiczenia Laboratoryjne:
10 godz. Ćwiczeń Lab.:
" Algorytmy - śledzenie działań (oceniane), konstruowanie.
" MATLAB:
 działania w oknie komend i proste programy,
 tabelaryzacja funkcji, zapis do pliku, wykres XY,
 programy z pętlą i warunkiem,
 rozwiązywanie równań nieliniowych, pierwiastki wielomianu
 budowa interfejsu graficznego,
 interpolacja i aproksymacja,
 operowanie na macierzach i układy równań liniowych
 struktury i bazy danych
 test: podstawowe pojęcia z wykładów i ćwiczeń
" Visual Basic - budowa prostych programów
5
Materiały do zajęć z Matlaba
http://www.kkiem.agh.edu.pl/dydakt/matlab/2012/index.html
Przeczytać!!
Pobrać, wydrukować
i korzystać !!
6
3
TREŚĆ Kompendium Matlaba (48 str.):
7
8
4
9
Wykład 1:
ALGORYTMY I STRUKTURY
DANYCH
- przypomnienie podstawowych pojęć
Opracował: Zbigniew Rudnicki
5
Podstawy programowania to:
" Umiejętność tworzenia algorytmów
" Znajomość struktur danych
i sposobów ich wykorzystywania
11
ALGORYTM
Algorytm to:
a) opis danych oraz
b) opis procedury realizacji zadania z pewnej, ściśle określonej
klasy zadań, np..: rozwiązywania dowolnego równania
kwadratowego
Opis procedury składa się ze skończonej liczby jednoznacznie
określonych poleceń (kroków) jakie należy wykonać
w określonej kolejności dla uzyskania celu.
Polecenia muszą być zrozumiałe i możliwe do realizacji dla
wykonawcy algorytmu.
Np.: wykonawcą algorytmu obliczeń będzie komputer
a wykonawcÄ… algorytmu pieczenia placka - pani domu
12
6
Algorytmy w programowaniu
" Algorytm to koncepcja działania programu lub jego
wydzielonego fragmentu (podprogramu),
" Każdy algorytm i program powinien być tak skonstruowany aby:
działać dla wielu różnych zestawów danych
" To znaczy:
algorytm ma być procedurą rozwiązywania:
DOWOLNEGO ZADANIA z określonej KLASY ZADAC
" Uzyskuje siÄ™ to przez operowanie NAZWAMI zmiennych
oraz dzięki umiejętności abstrakcyjnego uogólniania
13
Abstrakcyjne uogólnianie
Tworzenie programu to NIE OBLICZENIA!
KonstruujÄ…c algorytm:
" przeanalizuj na konkretnych przykładach - jakie operacje
komputer ma wykonywać i w jakiej kolejności a następnie uogólnij tak
aby algorytm mógł działać dla dowolnych danych
" nie myśl o liczbach tylko o ROLI jaką pełnią i zastąp je odpowiednio
nazwanymi zmiennymi
" uwzględnij wszelkie sytuacje - na przykład jak unikniesz dzielenia
przez zero, ...
" przykłady liczbowe posłużą do testowania poprawności działania
algorytmu czy programu
Przykładowe oznaczenia i role zmiennych:
c - wyraz wolny w równaniu kwadratowym
n - liczba elementów ciągu
i - licznik elementów a zarazem numer elementu
14
7
 Cegiełki do budowy
algorytmów obliczeniowych
Do budowania algorytmów obliczeniowych
oraz tworzenia programów obliczeniowych,
w dowolnym języku programowania,
wystarczy znać:
7
podstawowych typów poleceń:
15
7 podstawowych typów poleceń:
1) Wprowadzanie danych = wczytanie
Wczytaj A, B
wartości do zmiennej (z klawiatury lub
innego urzÄ…dzenia lub z pliku tekstowego)
2) Podstawianie = obliczenie wartości
A=A+2*B
wyrażenia i podstawienie do zmiennej
3) Wyprowadzanie wyników i objaśnień na
Drukuj A, B
ekran lub drukarkÄ™ lub do pliku, ...
4) Instrukcja warunkowa  Jeżeli... to -
Tak Nie
A>100
zależnie od spełnienia lub nie spełnienia
określonego warunku - wybranie jednego z
dwu wariantów
Pętle dla powtarzania czynności
5) typu  Dla ... 6) typu  Podczas...
7) Wywołanie podprogramu
16
8
Zmienne
" Algorytmy i programy nie powinny zawierać
danych liczbowych
" Zamiast nich należy używać NAZWY
reprezentujÄ…ce zmienne proste lub zmienne
złożone czyli struktury danych
" Każda zmienna musi mieć ściśle określoną rolę
" Najlepiej gdy nazwa zmiennej kojarzy siÄ™ z rolÄ… tej
zmiennej
17
Przykład 1: Utworzyć algorytm wyznaczania sumy
ciÄ…gu N dowolnych liczb wczytywanych z klawiatury
Przy realizacji wielu podobnych operacji dążymy do takiego
ich sformułowania aby mogły być wielokrotnie
powtarzane przy pomocy pętli programowej
Najprostszy
jest wariant c:
S := S+Ai
oznacza:
 dotychczasowÄ…
wartość S
zwiększ o Ai
i zapamiętaj
jako nowe S
18
9
Przykład 1 c.d.
Algorytm wyznaczania sumy ciÄ…gu N dowolnych liczb
wczytywanych z klawiatury c.d.
Jeśli wczytywana liczba będzie zaraz po wczytaniu zwiększała sumę
i nie będzie potem potrzebna, to kolejną liczbę można wczytać
do tej samej zmiennej.
W takim przypadku nie jest potrzebne pamiętanie całego ciągu
w tablicy więc
wystarczÄ… zmienne:
N - liczba powtórzeń
i - numer wczytywanej liczby
A - wczytana i-ta liczba
S - suma już wczytanych liczb
19
Przykład 2: Utworzyć algorytm wyznaczania średniej
oraz wariancji i odchylenia standardowego ciÄ…gu N liczb
(wyników pomiarów)
20
10
Przykład 2 c.d. - potrzeba tablicy
Wariancja to średnia z ciągu kwadratów odchyleń od średniej.
Po wyznaczeniu sumy oraz średniej arytmetycznej, ciąg liczb będzie
więc znowu potrzebny do wyznaczania odchyleń poszczególnych
liczb od tej średniej.
W takim przypadku trzeba zapamiętać cały ciąg liczb w tablicy, więc
potrzebne sÄ… zmienne:
N - liczba powtórzeń
i - numer wczytywanej liczby
A(i) - i-ta liczba wczytana do i-tego elementu tablicy
S - suma już wczytanych liczb
µ - srednia z ciagu wyników pomiarów
µ
µ
µ
V - wariancja
à - odchylenie standardowe
Ã
Ã
Ã
D(i) - ciag kwadratów odchylen
21
Przykład 2 c.d. - potrzeba podprogramów
Wczytywanie z pliku dyskowego ciÄ…gu liczb o niewiadomej
długości to często występujące w różnych problemach zadanie
więc:
- warto zdefiniować wczytywanie z pliku jako osobny podprogram
Wyznaczanie średniej w naszym zadaniu odbędzie się dwa razy:
1) średnia z ciągu wyników pomiarów
2) średnia z ciągu kwadratów odchyleń
wyników od średniej
- warto więc utworzyć podprogram funkcyjny (funkcję) do
obliczania średniej
22
11
Przykład 2 c.d. - podprogramy
23
24
12
Więcej o zmiennych
i
strukturach danych
25
ZMIENNA
Zmienna:
" w dziedzinie modeli matematycznych: zmienna to symboliczna
reprezentacja cechy modelowanego obiektu, procesu, lub
samego modelu
" a w dziedzinie programów komputerowych: zmienna to obszar
pamięci komputera, dostępny poprzez przypisaną mu nazwę i
przechowujący wartość określonego typu.
Skoro zmienną w algorytmie i programie można traktować jak
"pojemnik" na dane określonego typu, więc zamiast mówić:
 zmiennej X przypisano wartość ... , lub  nadano wartość
będziemy także mówić:  do zmiennej X wstawiono wartość ... .
26
13
Każda zmienna posiada:
" NAZW (lub inny identyfikator np.: adres)
" TYP wartości jakie może przyjmować
(oraz zakres i strukturę - jeśli jest to zmienna złożona)
" WARTOŚĆ - określoną w każdym momencie
(a jeśli jest to zmienna złożona to zbiór wartości)
ale przede wszystkim pełni OKREŚLON ROL
27
Zmienne w komputerze
" Każdej zmiennej przypisany jest określony obszar
w pamięci operacyjnej komputera identyfikowany
adresem pierwszej jego komórki
" Obszar ten przechowuje wartość zmiennej a
odwołujemy się do niego przez jej nazwę.
" Nowo nadana wartość zmiennej zastępuje wartość
dotychczasowÄ….
" Jeśli zmienna musi przechowywać wiele wartości
to musi być zmienną złożoną
np. wektorem, tablicÄ…, rekordem, listÄ….
28
14
Zakres i czas trwania zmiennej
Zmienne w programach mogą się też różnić:
" Zakresem widoczności:
 globalne - widziane w całym programie
 lokalne - widziane tylko w jednym bloku (podprogramie)
 wspólne (common) dla określonych podprogramów
" Czasem trwania:
 statyczne - istniejące przez cały czas działania programu
 dynamiczne - tworzone i usuwane w trakcie działania progr.
29
Zmienne proste i złożone
czyli STRUKTURY DANYCH
Oprócz zmiennych prostych czyli skalarnych
mogą występować zmienne złożone czyli struktury
danych takie jak:
 wektory
 macierze dwu (lub więcej) wymiarowe
 rekordy
 listy (zmienna długość)
30
15
Struktury danych (1)
" Zmienna skalarna - jej wartość w każdym momencie jest
pojedynczÄ… liczbÄ…
Zmienną skalarną można traktować
jak pojemnik zawierający wartość liczbową M1
a identyfikowany przez nazwÄ™
128.5
" Wektor n wymiarowy - to ciÄ…g n ponumerowanych
składowych z których każda jest skalarem;
rozróżniane są wektory wierszowe i kolumnowe.
Np.: trzyelementowy wektor wierszowy w MATLABIE:
a) definiowanie: Vkr = [3.75, 2.87, 9.32];
b) wybranie drugiego elementu: Vkr(2)
31
Struktury danych(2)
" Macierz- to prostokÄ…tna tablica,
każda jej kolumna jest wektorem
Przykład macierzy w Matlabie:
>> M = [9.88, 12.4, 3.5; 8.45, 0, -6.23]
M =
9.8800 12.4000 3.5000
8.4500 0 -6.2300
32
16
Struktury danych (3)
" Rekord to zbiór n danych o pojedynczym obiekcie lub zdarzeniu
(np. twoje dane personalne: Nazwisko, rok urodzenia, ...), przy
czym każda z tych danych ma określony typ i nie muszą one być
jednakowego typu
zbiór rekordów (wierszy) tworzy tabelę (kartotekę) bazy danych
W Matlabie typ rekordowy nazywa siÄ™ struct
33
Struktury danych o zmiennej długości
- Listy
" Lista jednokierunkowa - to ciąg danych z których każda
oprócz wartości zawiera identyfikator (lub adres) swego
następnika lub znacznik końca listy
" Lista dwukierunkowa - to ciąg danych z których każda
oprócz wartości zawiera identyfikator (lub adres) swego
następnika lub znacznik końca listy oraz identyfikator
poprzednika lub znacznik poczÄ…tku.
34
17
Struktury danych o zmiennej długości
Stos i kolejka
" Kolejka to lista o zmiennej długości do której elementy można
dołączać na końcu listy a usuwać na początku listy
Może być sprzętowo realizowana jako
rejestr FIFO (ang.: First In First Out
-  ten co pierwszy przyszedł
ten pierwszy odejdzie )
_______________________________________________________
" Stos to lista o zmiennej długości w której zarówno
dołączanie jak usuwanie elementów odbywa się
na końcu listy. Może być sprzętowo realizowana
jako rejestr LIFO (ang.: Last In First Out
-  ostatni przyszedł pierwszy wyjdzie )
35
PROGRAM
to
ALGORYTM
zapisany w języku programowania
36
18
Polecenia DLA KOMPUTERA
Pamiętaj, że: algorytm i program mają się składać
nie z równań i nierówności ale
z POLECEC DLA KOMPUTERA
zwanych też:
instrukcjami, rozkazami, komendami, ...
Np.:  Wczytaj wartość do zmiennej A
oznacza, że komputer ma zażądać liczby i jak ją
otrzyma to ma wstawić do miejsca w pamięci
zarezerwowanego dla zmiennej A
37
Podstawowe struktury w algorytmach
" Sekwencja (stuktura liniowa)
" Rozgałęzienie  Jeśli ... to ... w przeciwnym razie ...
" Pętla z daną liczbą powtórzeń
np.:  Dla i zmieniajacego siÄ™ od 1 do 10...
" Pętla warunkowa  Powtarzaj tak długo jak...
" Podprogram:
 Procedura
 Funkcja 38
19
Postacie zapisu algorytmów
Ten sam algorytm może być zapisywany przy użyciu różnych
środków (języków) np.:
1) w języku naturalnym - po polsku, w postaci ponumerowanych
poleceń,
2) w postaci schematu blokowego
3) w języku programowania komputera - jako program
" . . . . . . . . . . . .
Tak więc ważna jest merytoryczna treść algorytmu oraz
zrozumiałość, jednoznaczność i wykonalność poleceń a nie
środki zapisu
39
Przykład:
algorytm obliczania kwadratów dowolnych liczb
postać 1: opis słowny
1) Będą użyte zmienne liczbowe: X, Y, oraz tekstowa: P
2) Wyświetl:  Obliczanie kwadratów. Podaj liczbę:
3) Wczytaj liczbÄ™ do zmiennej X
4) Oblicz: X*X i wynik wstaw do Y
5) Wyświetl tekst  Kwadrat liczby = oraz wartość Y
6) Wyświetl pytanie:  Czy nowe obliczenie? (T/N):
7) Wczytaj znak z klawiatury do zmiennej P
8) Jeśli wartość P =  T lub P =  t to skocz do (2)
9) KONIEC
40
20
algorytm obliczania kwadratów dowolnych liczb
postać 2: schemat blokowy
41
algorytm obliczania kwadratów dowolnych liczb
postać 3: program w języku BASIC
' w tym języku nie musimy deklarować zmiennych
2 PRINT "Obliczanie kwadratów"
INPUT "Podaj liczbe:"; X
Y = X * X
PRINT "Kwadrat liczby ="; Y
INPUT "Czy nowe obliczenie? (T/N):"; P$
IF P$ = "T" OR P$ = "t" GOTO 2
STOP
42
21
algorytm obliczania kwadratów dowolnych liczb
postać 4: program w języku PASCAL
program kwadraty;
uses crt, dos; VAR x,y:real; p:char; label 2;
BEGIN
2: writeln('Obliczanie kwadratow.');
write('Podaj liczbe:'); readln(x);
y:=x*x;
write('Kwadrat liczby='); writeln(y);
write('Czy nowe obliczenie? (T/N):'); readln(p);
if (p='T') OR (p='t') then goto 2
END.
43
algorytm obliczania kwadratów dowolnych liczb
postać 5: program w języku MATLAB
% Program oblicza kwadraty liczb
p= 't';
while p=='T' | p=='t'
disp('Obliczanie kwadratow.');
x = input('Podaj liczbe :');
y = x^2;
disp('Kwadrat liczby = '); disp(y);
p=input('Czy nowe obliczenie? (T/N):', 's');
end
44
22
algorytm obliczania kwadratów dowolnych liczb
postać 6: program w języku C
main()
{
float x,y; char p;
p='t';
while(p=='t'| p=='T')
{
printf("\n OBLICZANIE KWADRATOW. Podaj liczbe:");
scanf("%f",&x);
y=x*x;
printf("\n Kwadrat liczby= %f",y);
printf("\n Czy nowe obliczenia? (T/N):");
p=getch();
}
}
45
Podstawowe polecenia:
1) Wczytywanie - czyli polecenie wprowadzenia wartości danej
z urządzenia wejściowego do zmiennej.
Na przykład:
Oznacza:
Zażądaj wprowadzenia z klawiatury liczby
Wczytaj F
np. wyświetl: Sila=
a wpisanÄ… liczbÄ™ wstaw do zmiennej F
------------------------------------------------------------------------------------------
Zażądaj wprowadzenia z klawiatury liczby
Wczytaj R
np.: wyświetl: Ramie=
a wpisanÄ… liczbÄ™ wstaw do zmiennej R
46
23
Podstawowe polecenia:
2) Podstawianie lub inaczej przypisanie
- to nadanie zmiennej, wartości obliczonego wyrażenia
a najprostsze wyrażenie to stała (liczba) lub zmienna.
Stosowane są różne symbole podstawiania:
:= =
w algorytmach, Mathcadzie, Algolu, Pascalu: zmienna := wyrażenie
w algorytmach: zmienna wyrażenie
w algorytmach, Matlabie, Basic u: zmienna = wyrażenie
47
Podstawowe polecenia:
c.d. Podstawianie lub inaczej przypisanie
Przykłady:
Wartość 5,75 prześlij do pamięci komputera, do
A = 5,75
miejsca zarezerwowanego dla zmiennej A
Wykorzystując aktualną wartość zmiennej A
B:=2*A^2 -3
oblicz wartość wyrażenia 2*A^2-3 i podstaw ją
do zmiennej B
Do dotychczasowej wartości zmiennej X dodaj 2 i
X=X+2
wynik wstaw do X jako jej nową wartość.
Krócej mówiąc: Zwiększ X o 2
48
24
Podstawowe polecenia:
3) Wyprowadzanie wyników (napisów i wartości
zmiennych) przez urządzenie wyjściowe (ekran,
drukarkÄ™) lub do pliku dyskowego
Przykłady (w algorytmach):
1) Wyświetl (lub wydrukuj) tekst  Moment=" oraz
wartość zmiennej Moment
Drukuj A, B
2)
49
Podstawowe polecenia:
4) Rozgałęzienie "Jeśli... to ... w przeciwnym przypadku ...
(w Matlabie instrukcja IF ... ELSE ...END)
Przykład 1:
1) Jeśli wyrażenie Delta>0 jest prawdziwe to
wykonaj grupę instrukcji S1 a jeśli nie to wykonaj
grupÄ™ instrukcji S2
Przykład 2:
2) Tak Nie
A>100
50
25
Podstawowe polecenia:
5a) Pętla typu "Dla wartości ... wykonuj ... koniec"
(instrukcja pętli "FOR ... END")
Przykład (w algorytmie):
Dla poszczególnych wartości
zmiennej X, zmieniajÄ…cej siÄ™
od XP do XK z przyrostem DX
wykonuj ciÄ…g instrukcji
zapisanych poniżej aż do słowa
KONIEC (tyle razy ile będzie
wartości X)
51
Podstawowe polecenia:
5b) Pętla typu "Dopóki ..."
(instrukcja pętli "WHILE ... END")
Przykład (w algorytmie):
Tak długo jak spełnione
jest wyrażenie logiczne
 warunek powtarzaj
wykonywanie instrukcji
zapisanych poniżej aż
do słowa KONIEC
52
26
Podstawowe polecenia:
6) Wywołanie podprogramu (wcześniej zdefiniowanego)
Przykład:
a b c
Wywołanie podprogramu
rozwiązywania równania
RRKW
kwadratowego:
podprogram rozwiÄ…zywania
[X1, X2] = RRKW(-3, 7.45, 0.9)
równania kwadratowego
X1 X2
53
Śledzenie działań algorytmu
54
27
Śledzenie działań algorytmu
55
Śledzenie działań algorytmu
56
28
Śledzenie działań algorytmu
57
Śledzenie działań algorytmu
58
29
Śledzenie działań algorytmu
59
Śledzenie działań algorytmu
60
30
Śledzenie działań algorytmu
61
Śledzenie działań algorytmu
62
31
Śledzenie działań algorytmu
63
Śledzenie działań algorytmu
64
32
Śledzenie działań algorytmu
65
Algorytm porzÄ…dkowania
66
33


Wyszukiwarka

Podobne podstrony:
inf 13 gim jezyk niemiecki
inf 13 zas szk zaw jezyk francuski
inf 13 gim jezyk angielski
inf 13 zas szk wos
inf 13 zas szk historia
inf 13 gim jezyk rosyjski
inf 13 zas szk zaw jezyk rosyjski
inf 13 zas szk zaw jezyk niemiecki
inf 13 zas szk zaw jezyk angielski
inf 13 gim jezyk francuski
inf petla ciag k=2 16 04 13
inf 13 zas szk zaw jezyk polski
UAS 13 zao
er4p2 5 13

więcej podobnych podstron