IT Z Lab 6 7 2008 2009

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 1

SciLab - Podstawy programowania

(instrukcje warunkowe, pętle, funkcje)

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 2

Plan zajęć

Wprowadzenie -operatory porównawcze:

Pętle

Przerywanie pętli

Warunki

Definiowanie funkcji

Funkcje specjalne

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 3

Operatory porównawcze

Scilab posiada wiele wbudowanych narzędzi do programowania, np. pętle, warunki, wybór

przypadków.

Podstawową użyteczność Scilaba stanowią funkcje.

Istnieje pięć metod porównywania obiektów w Scilabie:

== równe
< mniejsze od
> większe od
<= mniejsze lub równe
>= większe lub równe
<> lub ~= nierówne
Przykład:
-->x = x=1;for k=1:6,x=x*k,end

Uwaga! - Pętla nie musi być wpisana w jednej linii.

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 4

Pętle

Pętla for

Definicja w jednej linii:

for zmienna=wyrażenie, instrukcja, instrukcja , end

Definicja w kilku liniach:

for zmienna=wyrażenie,
instrukcja,
instrukcja,
end
Przykład:
-->x=1;for k=[-1 3 0], x=x+k, end

x =
0.
x =
3.
x =
3.

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 5

Pętle

Pętla for – może również operować na listach

Przykład:
-->l=list(1, [1,2;3,4],'str');
-->for k=l, disp(k), end

1.

! 1. 2. !
! 3. 4. !

str

Ćwiczenie 1

Utwórz macierz o wymiarach 5x5, której wyrazy spełniają warunek a(i,j) = 1/(i+j-1)

(korzystaj z SciPada)

Zmodyfikuj wyrazy macierzy a tak aby na głównej przekątnej a(2,2)=2, a(3,3)=3

oraz a(4,4)=4

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 6

Pętla

Ćwiczenie 1

Utwórz macierz o wymiarze 5x5, której wyrazy spełniają warunek a(i,j) = 1/(i+j-1)

n=5;
for i = 1:n
for j = 1:n
a(i,j) = 1/(i+j-1);
end
end
a

a =

! 1. 0.5 0.3333333 0.25 0.2 !
! 0.5 0.3333333 0.25 0.2 0.1666667 !
! 0.3333333 0.25 0.2 0.1666667 0.1428571 !
! 0.25 0.2 0.1666667 0.1428571 0.125 !
! 0.2 0.1666667 0.1428571 0.125 0.1111111 !

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 7

Pętla

Ćwiczenie 1

Zmodyfikuj wyrazy macierzy a tak aby na głównej przekątnej a(2,2)=2, a(3,3)=3

oraz a(4,4)=4

for j = 2:n-1
a(j,j) = j;
end
a

a =

! 1. 0.5 0.3333333 0.25 0.2 !
! 0.5 2.0 0.25 0.2 0.1666667 !
! 0.3333333 0.25 3.0 0.1666667 0.1428571 !
! 0.25 0.2 0.1666667 4.0 0.125 !
! 0.2 0.1666667 0.1428571 0.125 0.1111111 !

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 8

Pętle

Pętla while

Definicja w jednej linii:

while równanie ,instrukcja,...[,else instrukcja], end

while równanie do instrukcja,...[,else instrukcja], end

while równanie then instrukcja,...[,else instrukcja], end

Przykład:
-->x=1;while x<14, x=2*x, end

x =
2.
x =
4.
x =
8.
x =
16.

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 9

Pętle

Kończenie pętli – instrukcja break – warunek if

Definicja w jednej linii:

Przykład:
-->a=0;for i=1:5:100,a=a+1,if i>10 then break,end;end
-->a

x =
3.

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 10

Pętle

Ćwiczenie 2

Utwórz skrypt o nazwie break.sce o treści:

for k=1:3
for j=1:4
if k+j>5 then
break;
else
disp(k);
end
end
end

Prześledź działanie instrukcji

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 11

Warunki

Definicja warunku if w kilku liniach:

if równanie1 then
instrukcja
....
elseif równanieX then
instrukcja
else instrukcja
end
Przykład:
-->x=1;
-->if x>0 then, y=-x, else, y=x,end
-->y

y
-1

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 12

Warunki

Ćwiczenie 3

Stwórz procedurę tworzącą macierz kwadratową o dowolnym rozmiarze i cechach

jak następująca macierz (użyj SciPada):

! 2. - 1. 3. 3. 3. 3. 3. 3. 3. 3. !
! - 1. 2. - 1. 3. 3. 3. 3. 3. 3. 3. !
! 3. - 1. 2. - 1. 3. 3. 3. 3. 3. 3. !
! 3. 3. - 1. 2. - 1. 3. 3. 3. 3. 3. !
! 3. 3. 3. - 1. 2. - 1. 3. 3. 3. 3. !
! 3. 3. 3. 3. - 1. 2. - 1. 3. 3. 3. !
! 3. 3. 3. 3. 3. - 1. 2. - 1. 3. 3. !
! 3. 3. 3. 3. 3. 3. - 1. 2. - 1. 3. !
! 3. 3. 3. 3. 3. 3. 3. - 1. 2. - 1. !
! 3. 3. 3. 3. 3. 3. 3. 3. - 1. 2. !

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 13

Warunki

Ćwiczenie 3

n=10;
for i=1:n
for j = 1:n
if i == j then
a(i,j) = 2;
elseif abs(i-j) == 1 then
a(i,j) = -1;
else
a(i,j) = 3;
end
end
end
a

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 14

Warunki

Ćwiczenie 3 c.d.

-->a

a =

! 2. - 1. 3. 3. 3. 3. 3. 3. 3. 3. !
! - 1. 2. - 1. 3. 3. 3. 3. 3. 3. 3. !
! 3. - 1. 2. - 1. 3. 3. 3. 3. 3. 3. !
! 3. 3. - 1. 2. - 1. 3. 3. 3. 3. 3. !
! 3. 3. 3. - 1. 2. - 1. 3. 3. 3. 3. !
! 3. 3. 3. 3. - 1. 2. - 1. 3. 3. 3. !
! 3. 3. 3. 3. 3. - 1. 2. - 1. 3. 3. !
! 3. 3. 3. 3. 3. 3. - 1. 2. - 1. 3. !
! 3. 3. 3. 3. 3. 3. 3. - 1. 2. - 1. !
! 3. 3. 3. 3. 3. 3. 3. 3. - 1. 2. !

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 15

Warunek typu select-case

Definicja warunku if w kilku liniach:

select rówanie,
case rówanie1 then instrukcja,
case rówanie2 then instrukcja,
...
[else instrukcja],
end
Przykład:
-->x=-1;
-->select x,case 1, y=x+5,case -1, y=sqrt(x),end

y =
i

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 16

Warunek typu select-case

Ćwiczenie 4

Stwórz procedurę (w pliku select.sce), która będzie losowała liczby z przedziału

<0 , 2)

Liczby losowe (rozkład jednorodny) mają być następnie zaokrąglone - funkcja

round()

Przerwanie losowania ma następować po wylosowaniu liczby która po zaokrągleniu

daje 2

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 17

Warunek typu select-case

Ćwiczenie 4

while %t do
n=round(2*rand(1,1));
select n
case 0 then
disp(0);
case 1 then
disp(1);
else
break;
end
end

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 18

Definiowanie funkcji

Składnia dowolnej funkcji:

function [y1,y2,...,yn]=foo(x1,...xn)
.....
endfunction

Przykład:

function [x]=fact(k)
k=int(k);
if k<1 then k=1, end
x=1;
for j=1:k, x=x*j; end
endfunction
-->exists('fact')

ans
0.

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 19

Definiowanie funkcji

Jeśli funkcja nie istnieje należy ją “załadować” do Scilaba exec lub getf:

Przykład c.d.:

-->exec('~/fact.sci')
-->exists('fact')

ans
1.

-->x=fact(5)

x =
120

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 20

Definiowanie funkcji

Ćwiczenie 5

Zdefiniuj funkcje która będzie podawała sumę i różnicę dwóch liczb. Funkcję

zapisz do pliku sumroz.sce:

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 21

Definiowanie funkcji

Ćwiczenie 5

function [y1,y2]=f(x1,x2)
y1=x1+x2;
y2=x1-x2;
endfunction

wywołaj funkcję:

-->exec('~/f.sci')
-->[x,y]=f(5,5)

y =
0
x =
10

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 22

Funkcje specjalne

Scilab posiada wiele wbudowanych komend pomocniczych funkcji:

argn – zwraca liczbę argumentów wejściowych i wyjściowych funkcji

error – używana do wyświetlania komunikatu o błędach

warning –

pause – używana do chwilowego zatrzymania działania funkcji

break – zatrzymanie pętli

Return lub resume -wyprowadzenie lokalnych zmiennych ze środowiska funkcji

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 23

Definiowanie funkcji

Ćwiczenie 6

Zdefiniuj funkcje która będzie obliczała iloczyn Cauchego dwóch macierzy.

Funkcję zapisz do pliku mult.sce:

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 24

Definiowanie funkcji

Ćwiczenie 6

function [c]=mult(a,b)
[m,n]=size(a);
[k,l]=size(b);
if n~=k then,
c='Blad - n~=k';
resume
end

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 25

Definiowanie funkcji

Ćwiczenie 6 c.d.

c=zeros(m,l);
for i=1:m,
for j=1:l,
for p=1:n,
c(i,j)=c(i,j)+a(i,p)*b(p,j);
end
end
end
endfunction

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 26

Definiowanie funkcji

Ćwiczenie 6 c.d.

wywołaj funkcję:

-->exec('~/mult.sci')
-->a=[2,4;4,5];b=[3, 6];
-->c=mult(a,b)

c =
Blad - n~=k

-->a=[2,4;4,5];b=[3; 6];
-->c=mult(a,b)

c =
! 30. !
! 42. !

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 27

Definiowanie funkcji

Ćwiczenie 7

Zdefiniuj funkcje która będzie obliczała sumę dwóch macierzy. Funkcję zapisz

do pliku add.sce:

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 28

Definiowanie funkcji

Ćwiczenie 7

function [c]=add(a,b)
[m,n]=size(a);
[k,l]=size(b);
if m~=k | n~=l then,
c='Blad - rozmiary macierzy nie sa identyczne';
return,
end

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 29

Definiowanie funkcji

Ćwiczenie 7 c.d.

c=zeros(m,n);
for i=1:m,
for j=1:n,
c(i,j)=a(i,j)+b(i,j);
end
end
endfunction

background image

Instytut Konstrukcji Budowlanych

Technologia Informacyjna

Zakład Komputerowego Wspomagania Projektowania

Semestr 3.

16 styczeń 2009

SciLab - Podstawy programowania

Slajd 30

Definiowanie funkcji

Ćwiczenie 7 c.d.

wywołaj funkcję:

-->exec('~/add.sci')
-->a=[2,4;4,5];b=[3; 6];
-->c=add(a,b)

c =
Blad – rozmiary macierzy nie są identyczne

-->a=[2,4;4,5];b=[3 5; 6 5];
-->c=add(a,b)

c =
! 5. 9. !
! 10. 10.!


Document Outline


Wyszukiwarka

Podobne podstrony:
Lab 6 7 2008 2009 id 258170 Nieznany
LAB systematyka 2008 2009 2010 2011 druk
Wzorniki cz 3 typy serii 2008 2009
download Prawo PrawoAW Prawo A W sem I rok akadem 2008 2009 Prezentacja prawo europejskie, A W ppt
choroby trzustki i watroby 2008 2009 (01 12 2008)
Egzamin 2008 2009
geografia konkurs gim 2008 2009
Poprawkowy IBM 2008 2009
Poprawkowy AiR 2008 2009
Patomorfologia+2008+2009, patomorfologia-nowe pliki
Spotkanie 15, 3 Tydzień Biblijny, Prezentacje, UNIWERSYTET BIBLIJNY, II. ROK DRUGI, I. Rok szkolny 2
05.Grupy społeczne, 12.PRACA W SZKOLE, ZSG NR 4 2008-2009, PG NR 5
harmonogram 2008 2009
2008 2009 kolokwium 1id 26585
windows, 12.PRACA W SZKOLE, ZSG 4 2008-2009 II
02.Człowiek istota społeczna, 12.PRACA W SZKOLE, ZSG NR 4 2008-2009, PG NR 5
Gr A, 12.PRACA W SZKOLE, ZSG NR 4 2008-2009, PG NR 5

więcej podobnych podstron