9 wpr petle id 48409 Nieznany

background image

Instytut Konstrukcji Budowlanych

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 1

Programowanie w Scilab

background image

Instytut Konstrukcji Budowlanych

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 2

Plan zajęć

Wprowadzenie -operatory porównawcze:

Pętle

Przerywanie pętli

Warunki

Definiowanie funkcji

Funkcje specjalne

background image

Instytut Konstrukcji Budowlanych

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

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

background image

Instytut Konstrukcji Budowlanych

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 4

Warunki

Definicja warunku if

(w kilku liniach):

if warunek-1 then
instrukcja
....
[ elseif warunek-2 then
instrukcja ]
[ else
instrukcja ]
end

Przykład (zapis w kilku liniach):

x=1;
if x>0 then,
y=-x,
else,
y=x,
end
y

y=
-1

lub w jednej linii:

if x>0 then, y=-x, else, y=x, end; y

y=
-1

background image

Instytut Konstrukcji Budowlanych

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 5

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 6

Pętle

Pętla for

Przykład:

x=1;
for k=1:6
x=x*k
end

lub

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 7

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 8

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 9

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 10

Pętle

Pętla while

Definicja :

while warunek
instrukcja
...
[else
instrukcja
...
]
end

lub (w jednej linii):

while warunek do instrukcja,...[,else instrukcja], end

while warunek then instrukcja,...[,else instrukcja], end

background image

Instytut Konstrukcji Budowlanych

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 11

Pętle

Pętla while

Przykład:

x=1;
while x<14,
x=2*x,
end

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

background image

Instytut Konstrukcji Budowlanych

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 12

Pętle

Przerwanie pętli – instrukcja break – warunek if

Przykład:

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

a =
3.

background image

Instytut Konstrukcji Budowlanych

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 13

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 14

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 15

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 16

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 17

Warunek typu select-case

Definicja warunku if w kilku liniach:

select wyrażenie,
case wartość_1 then instrukcja,
case wartość_2 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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 18

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 19

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 20

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 21

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 22

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 23

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 24

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 25

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 26

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 27

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 28

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 29

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 30

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 31

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

Informatyka Stosowana

Zakład Komputerowego Wspomagania Projektowania

Semestr 1.

5 styczeń, 2006

Programowanie w Scilab

Slajd 32

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


Wyszukiwarka

Podobne podstrony:
Informa wyklad petle id 716506 Nieznany
7 petle id 45551 Nieznany
Algorytmy Lab2 PETLE id 57742 Nieznany (2)
Motywy i petle id 308705 Nieznany
cwiczenia3 skrypty petle id 124 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany
Probiotyki antybiotyki id 66316 Nieznany
miedziowanie cz 2 id 113259 Nieznany
LTC1729 id 273494 Nieznany
D11B7AOver0400 id 130434 Nieznany
analiza ryzyka bio id 61320 Nieznany
pedagogika ogolna id 353595 Nieznany

więcej podobnych podstron