background image

1

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

2

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

background image

2

3

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

.

4

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

background image

3

5

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

Ćwiczenia Laboratoryjne:

6

Materiały do zajęć z Matlaba

http://www.kkiem.agh.edu.pl/dydakt/matlab/2012/index.html

Pobrać, wydrukować

i korzystać !!

Przeczytać!!

background image

4

7

TREŚĆ Kompendium Matlaba 

(48 str.):

8

background image

5

9

Wykład 1:

ALGORYTMY I STRUKTURY

DANYCH

- przypomnienie podstawowych pojęć

Opracował: Zbigniew Rudnicki

background image

6

11

Podstawy programowania to:

• Umiejętność tworzenia 

algorytmów

• Znajomość 

struktur danych

i sposobów ich wykorzystywania

12

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

background image

7

13

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 ZADAŃ

• Uzyskuje się to przez operowanie NAZWAMI zmiennych

oraz dzięki umiejętności abstrakcyjnego uogólniania

14

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

liczba elementów ciągu

i

 - licznik elementów a zarazem numer elementu

background image

8

15

„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ń:

16

7

  podstawowych typów poleceń:

1) Wprowadzanie danych = wczytanie

wartości do zmiennej (z klawiatury lub
 innego urządzenia lub z pliku tekstowego)

2) Podstawianie = obliczenie wartości

wyrażenia i podstawienie do zmiennej

3) Wyprowadzanie wyników i objaśnień na

ekran lub drukarkę lub do pliku, ...

4) Instrukcja warunkowa „Jeżeli... to” -

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

Wczytaj A, B

A=A+2*B

Drukuj A, B

A>100

Tak

Nie

background image

9

17

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

18

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+A

i

oznacza:

dotychczasową

wartość S

zwiększ o A

i

i zapamiętaj

jako nowe S”

background image

10

19

Przykład 1 c.d.

Algorytm wyznaczania sumy ciągu N dowolnych liczb
wczytywanych z klawiatury c.d

.

- liczba powtórzeń

 i  - numer wczytywanej liczby

- wczytana i-ta liczba

S

 - suma już wczytanych liczb

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:

20

Przykład 2:

 Utworzyć algorytm wyznaczania średniej

oraz wariancji i odchylenia standardowego ciągu N liczb

(wyników pomiarów)

background image

11

21

Przykład 2  c.d. - potrzeba tablicy

- 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

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:

22

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

background image

12

23

Przykład 2  c.d. -  podprogramy

24

background image

13

25

Więcej o zmiennych

i

strukturach danych

26

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ść ...”.

background image

14

27

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Ę

28

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ą.

background image

15

29

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.

30

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ść)

background image

16

31

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ą
a identyfikowany przez nazwę

• 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)

128.5

M1

32

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

background image

17

33

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

34

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.

background image

18

35

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”)

36

PROGRAM

to

ALGORYTM

zapisany w języku programowania

background image

19

37

Polecenia DLA KOMPUTERA

Pamiętaj, że: algorytm i program mają się składać

nie z równań i nierówności ale
POLECEŃ 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

38

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

background image

20

39

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

40

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

background image

21

41

algorytm obliczania kwadratów dowolnych liczb

 

postać 2:

 

schemat blokowy

42

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

background image

22

43

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.

44

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

background image

23

45

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();
    }

}

46

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

np. wyświetl:  

Sila=

a wpisaną liczbę wstaw do zmiennej 

F

------------------------------------------------------------------------------------------

Zażądaj wprowadzenia z klawiatury liczby

np.: wyświetl:   

Ramie=

a wpisaną liczbę wstaw do zmiennej 

R

Wczytaj F

Wczytaj R

background image

24

47

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

48

Podstawowe polecenia:

c.d. Podstawianie lub inaczej przypisanie

Przykłady:

Wartość 5,75 prześlij do pamięci komputera, do

miejsca zarezerwowanego dla zmiennej A

Wykorzystując aktualną wartość zmiennej A

oblicz wartość wyrażenia 2*A^2-3 i podstaw ją
do zmiennej B

Do dotychczasowej wartości zmiennej X dodaj 2 i

wynik wstaw do X jako jej nową wartość.

Krócej mówiąc: 

Zwiększ X o 2

A = 5,75

B:=2*A^2 -3

X=X+2

background image

25

49

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

2)

Drukuj A, B

50

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)

A>100

Tak

Nie

background image

26

51

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)

52

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

background image

27

53

Podstawowe polecenia:

6) Wywołanie podprogramu

 (wcześniej zdefiniowanego)

Przykład:

Wywołanie podprogramu

rozwiązywania równania
kwadratowego:

[X1, X2] = RRKW(-3,  7.45,  0.9)

RRKW

podprogram rozwiązywania

równania kwadratowego

a

b

c

X2

X1

54

Ś

ledzenie działań algorytmu

background image

28

55

Ś

ledzenie działań algorytmu

56

Ś

ledzenie działań algorytmu

background image

29

57

Ś

ledzenie działań algorytmu

58

Ś

ledzenie działań algorytmu

background image

30

59

Ś

ledzenie działań algorytmu

60

Ś

ledzenie działań algorytmu

background image

31

61

Ś

ledzenie działań algorytmu

62

Ś

ledzenie działań algorytmu

background image

32

63

Ś

ledzenie działań algorytmu

64

Ś

ledzenie działań algorytmu

background image

33

65

Ś

ledzenie działań algorytmu

66

Algorytm porządkowania