1 Inf Wyk1 2013

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

n

- 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

.

N

- liczba powtórzeń

i - numer wczytywanej liczby

A

- 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

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

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
z 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


Wyszukiwarka

Podobne podstrony:
INFORMATOR ECTS dla INF 2012 2013
Wyznaczanie stałej siatki dyfrakcyjnej, Prz inf 2013, I Semestr Informatyka, Fizyka, SPRAWOZDANIA DU
SiS strona tytulowa spr, Prz inf 2013, I Semestr Informatyka, Fizyka, Wykłady-Fizyka, Sygnały i Syst
Tabela pomiarowa, Prz inf 2013, I Semestr Informatyka, Fizyka, [FIZYKA] Laborki, laboratorium stare
tabele 1B+, Prz inf 2013, I Semestr Informatyka, Fizyka, [FIZYKA] Laborki, laboratorium stare, 1b
ćw 23, Prz inf 2013, I Semestr Informatyka, Fizyka, [FIZYKA] Laborki, laboratorium stare, Fizyka Dam
Ćwiczenie nr 44 prawie dobre ale juz teraz lux, Prz inf 2013, I Semestr Informatyka, Fizyka, [FIZYKA
ćw 1 obliczenia, Prz inf 2013, I Semestr Informatyka, Fizyka, [FIZYKA] Laborki, laboratorium stare,
spr5, Prz inf 2013, I Semestr Informatyka, Fizyka, [FIZYKA] Laborki, laboratorium stare, bartochowsk
inf 2013 zas szk historia
inf 2013 gim jezyk rosyjski
inf 2013 gim jezyk francuski
inf 2013 zas szk wos
inf 2013 zas szk zaw jezyk rosyjski
obliczenia ćw23, Prz inf 2013, I Semestr Informatyka, Fizyka, [FIZYKA] Laborki, laboratorium stare,
Ćwiczenie nr 44, Prz inf 2013, I Semestr Informatyka, Fizyka, [FIZYKA] Laborki, laboratorium stare,
Wstęp teoretyczny ćw 44, Prz inf 2013, I Semestr Informatyka, Fizyka, [FIZYKA] Laborki, laboratorium

więcej podobnych podstron