Scilab Funktionen J. Koch, 28. Oktober 2015 Scilab Funktionen J. Koch, 28. Oktober 2015 1 / 15 Gliederung 1. Funktionen Scilab Funktionen J. Koch, 28. Oktober 2015 2 / 15 Gliederung 1. Funktionen Funktionsdeklaration Beispiele Kontrollstrukturen Ein- und Ausgabeargumente Scilab Funktionen J. Koch, 28. Oktober 2015 3 / 15 Lernziele I Sie kennen den Unterschied zwischen einem Skript und einer Funktion I Sie wissen wie Funktionen mit einer beliebigen Anzahl Ein- und Ausgabeargumente deklariert werden I Sie wissen wie Ein- und Ausgabeargumente bei einer Funktion übergeben werden I Sie können Funktionen ausführen und testen I Sie kennen die relationalen und logischen Operatoren I Sie kennen die if- -Bedingung I Sie kennen die case-Fallunterscheidung I Sie kennen die while- und for-Schleife I Sie wissen wie man globale Variablen verwendet Scilab Funktionen J. Koch, 28. Oktober 2015 4 / 15 Lernziele I Sie kennen den Unterschied zwischen einem Skript und einer Funktion I Sie wissen wie Funktionen mit einer beliebigen Anzahl Ein- und Ausgabeargumente deklariert werden I Sie wissen wie Ein- und Ausgabeargumente bei einer Funktion übergeben werden I Sie können Funktionen ausführen und testen I Sie kennen die relationalen und logischen Operatoren I Sie kennen die if- -Bedingung I Sie kennen die case-Fallunterscheidung I Sie kennen die while- und for-Schleife I Sie wissen wie man globale Variablen verwendet Scilab Funktionen J. Koch, 28. Oktober 2015 4 / 15 Lernziele I Sie kennen den Unterschied zwischen einem Skript und einer Funktion I Sie wissen wie Funktionen mit einer beliebigen Anzahl Ein- und Ausgabeargumente deklariert werden I Sie wissen wie Ein- und Ausgabeargumente bei einer Funktion übergeben werden I Sie können Funktionen ausführen und testen I Sie kennen die relationalen und logischen Operatoren I Sie kennen die if- -Bedingung I Sie kennen die case-Fallunterscheidung I Sie kennen die while- und for-Schleife I Sie wissen wie man globale Variablen verwendet Scilab Funktionen J. Koch, 28. Oktober 2015 4 / 15 Lernziele I Sie kennen den Unterschied zwischen einem Skript und einer Funktion I Sie wissen wie Funktionen mit einer beliebigen Anzahl Ein- und Ausgabeargumente deklariert werden I Sie wissen wie Ein- und Ausgabeargumente bei einer Funktion übergeben werden I Sie können Funktionen ausführen und testen I Sie kennen die relationalen und logischen Operatoren I Sie kennen die if- -Bedingung I Sie kennen die case-Fallunterscheidung I Sie kennen die while- und for-Schleife I Sie wissen wie man globale Variablen verwendet Scilab Funktionen J. Koch, 28. Oktober 2015 4 / 15 Lernziele I Sie kennen den Unterschied zwischen einem Skript und einer Funktion I Sie wissen wie Funktionen mit einer beliebigen Anzahl Ein- und Ausgabeargumente deklariert werden I Sie wissen wie Ein- und Ausgabeargumente bei einer Funktion übergeben werden I Sie können Funktionen ausführen und testen I Sie kennen die relationalen und logischen Operatoren I Sie kennen die if- -Bedingung I Sie kennen die case-Fallunterscheidung I Sie kennen die while- und for-Schleife I Sie wissen wie man globale Variablen verwendet Scilab Funktionen J. Koch, 28. Oktober 2015 4 / 15 Lernziele I Sie kennen den Unterschied zwischen einem Skript und einer Funktion I Sie wissen wie Funktionen mit einer beliebigen Anzahl Ein- und Ausgabeargumente deklariert werden I Sie wissen wie Ein- und Ausgabeargumente bei einer Funktion übergeben werden I Sie können Funktionen ausführen und testen I Sie kennen die relationalen und logischen Operatoren I Sie kennen die if- -Bedingung I Sie kennen die case-Fallunterscheidung I Sie kennen die while- und for-Schleife I Sie wissen wie man globale Variablen verwendet Scilab Funktionen J. Koch, 28. Oktober 2015 4 / 15 Lernziele I Sie kennen den Unterschied zwischen einem Skript und einer Funktion I Sie wissen wie Funktionen mit einer beliebigen Anzahl Ein- und Ausgabeargumente deklariert werden I Sie wissen wie Ein- und Ausgabeargumente bei einer Funktion übergeben werden I Sie können Funktionen ausführen und testen I Sie kennen die relationalen und logischen Operatoren I Sie kennen die if- -Bedingung I Sie kennen die case-Fallunterscheidung I Sie kennen die while- und for-Schleife I Sie wissen wie man globale Variablen verwendet Scilab Funktionen J. Koch, 28. Oktober 2015 4 / 15 Lernziele I Sie kennen den Unterschied zwischen einem Skript und einer Funktion I Sie wissen wie Funktionen mit einer beliebigen Anzahl Ein- und Ausgabeargumente deklariert werden I Sie wissen wie Ein- und Ausgabeargumente bei einer Funktion übergeben werden I Sie können Funktionen ausführen und testen I Sie kennen die relationalen und logischen Operatoren I Sie kennen die if- -Bedingung I Sie kennen die case-Fallunterscheidung I Sie kennen die while- und for-Schleife I Sie wissen wie man globale Variablen verwendet Scilab Funktionen J. Koch, 28. Oktober 2015 4 / 15 Lernziele I Sie kennen den Unterschied zwischen einem Skript und einer Funktion I Sie wissen wie Funktionen mit einer beliebigen Anzahl Ein- und Ausgabeargumente deklariert werden I Sie wissen wie Ein- und Ausgabeargumente bei einer Funktion übergeben werden I Sie können Funktionen ausführen und testen I Sie kennen die relationalen und logischen Operatoren I Sie kennen die if- -Bedingung I Sie kennen die case-Fallunterscheidung I Sie kennen die while- und for-Schleife I Sie wissen wie man globale Variablen verwendet Scilab Funktionen J. Koch, 28. Oktober 2015 4 / 15 Funktionsdeklaration I I I I I I I Textdatei mit Endung .sci Funktionsdeklaration f u n c t i o n [ o1 , o2 , . . . ] = f u nc t io n _n a me ( i 1 , i 2 , . . . ) ... endfunction Funktion mit Name function_name in Datei function_name.sci Beliebige Anzahl Eingabeargumente (i1,i2,...) in runden Klammern Beliebige Anzahl Ausgabeargumente [o1,o2,...] in eckigen Klammern Jedem Ausgabeargument o1,o2,... muss in der Funktion ein Wert zugewiesen werden Funktionsaufruf kann an jeder Stelle beendet werden return Scilab Funktionen J. Koch, 28. Oktober 2015 5 / 15 Funktionsdeklaration I I I I I I I Textdatei mit Endung .sci Funktionsdeklaration f u n c t i o n [ o1 , o2 , . . . ] = f u nc t io n _n a me ( i 1 , i 2 , . . . ) ... endfunction Funktion mit Name function_name in Datei function_name.sci Beliebige Anzahl Eingabeargumente (i1,i2,...) in runden Klammern Beliebige Anzahl Ausgabeargumente [o1,o2,...] in eckigen Klammern Jedem Ausgabeargument o1,o2,... muss in der Funktion ein Wert zugewiesen werden Funktionsaufruf kann an jeder Stelle beendet werden return Scilab Funktionen J. Koch, 28. Oktober 2015 5 / 15 Funktionsdeklaration I I I I I I I Textdatei mit Endung .sci Funktionsdeklaration f u n c t i o n [ o1 , o2 , . . . ] = f u nc t io n _n a me ( i 1 , i 2 , . . . ) ... endfunction Funktion mit Name function_name in Datei function_name.sci Beliebige Anzahl Eingabeargumente (i1,i2,...) in runden Klammern Beliebige Anzahl Ausgabeargumente [o1,o2,...] in eckigen Klammern Jedem Ausgabeargument o1,o2,... muss in der Funktion ein Wert zugewiesen werden Funktionsaufruf kann an jeder Stelle beendet werden return Scilab Funktionen J. Koch, 28. Oktober 2015 5 / 15 Funktionsdeklaration I I I I I I I Textdatei mit Endung .sci Funktionsdeklaration f u n c t i o n [ o1 , o2 , . . . ] = f u nc t io n _n a me ( i 1 , i 2 , . . . ) ... endfunction Funktion mit Name function_name in Datei function_name.sci Beliebige Anzahl Eingabeargumente (i1,i2,...) in runden Klammern Beliebige Anzahl Ausgabeargumente [o1,o2,...] in eckigen Klammern Jedem Ausgabeargument o1,o2,... muss in der Funktion ein Wert zugewiesen werden Funktionsaufruf kann an jeder Stelle beendet werden return Scilab Funktionen J. Koch, 28. Oktober 2015 5 / 15 Funktionsdeklaration I I I I I I I Textdatei mit Endung .sci Funktionsdeklaration f u n c t i o n [ o1 , o2 , . . . ] = f u nc t io n _n a me ( i 1 , i 2 , . . . ) ... endfunction Funktion mit Name function_name in Datei function_name.sci Beliebige Anzahl Eingabeargumente (i1,i2,...) in runden Klammern Beliebige Anzahl Ausgabeargumente [o1,o2,...] in eckigen Klammern Jedem Ausgabeargument o1,o2,... muss in der Funktion ein Wert zugewiesen werden Funktionsaufruf kann an jeder Stelle beendet werden return Scilab Funktionen J. Koch, 28. Oktober 2015 5 / 15 Funktionsdeklaration I I I I I I I Textdatei mit Endung .sci Funktionsdeklaration f u n c t i o n [ o1 , o2 , . . . ] = f u nc t io n _n a me ( i 1 , i 2 , . . . ) ... endfunction Funktion mit Name function_name in Datei function_name.sci Beliebige Anzahl Eingabeargumente (i1,i2,...) in runden Klammern Beliebige Anzahl Ausgabeargumente [o1,o2,...] in eckigen Klammern Jedem Ausgabeargument o1,o2,... muss in der Funktion ein Wert zugewiesen werden Funktionsaufruf kann an jeder Stelle beendet werden return Scilab Funktionen J. Koch, 28. Oktober 2015 5 / 15 Funktionsdeklaration I I I I I I I Textdatei mit Endung .sci Funktionsdeklaration f u n c t i o n [ o1 , o2 , . . . ] = f u nc t io n _n a me ( i 1 , i 2 , . . . ) ... endfunction Funktion mit Name function_name in Datei function_name.sci Beliebige Anzahl Eingabeargumente (i1,i2,...) in runden Klammern Beliebige Anzahl Ausgabeargumente [o1,o2,...] in eckigen Klammern Jedem Ausgabeargument o1,o2,... muss in der Funktion ein Wert zugewiesen werden Funktionsaufruf kann an jeder Stelle beendet werden return Scilab Funktionen J. Koch, 28. Oktober 2015 5 / 15 Ausgleichsgerade berechnen f u n c t i o n [m, b ] = g e r a d e ( x , y ) // // i n p u t : // x . . . x v a l u e s // y . . . y v a l u e s // // o u t p u t : // m . . . s l o p e // b . . . i n t e r c e p t I Funktionsname gerade I Dateiname gerade.sci I Funktion einbinden −−> e x e c g e r a d e . s c i ; I Funktion aufrufen −−> u = [ 1 ; 2 ; 3 ] ; −−> v = [ 1 ; 4 ; 9 ] ; −−> [ c , d ] = g e r a d e ( u , v ) I Lokale Variablen erhalten Werte a = X\ y ; aus Workspace b = a (1); u −→ x, v −→ y m = a (2); Workspace Variablen erhalten endfunction Werte der lokalen Variablen c ←− m, d ←− b scilab/gerade.sci I X = [ x .^0 x ] ; Scilab Funktionen J. Koch, 28. Oktober 2015 6 / 15 Ausgleichsgerade berechnen f u n c t i o n [m, b ] = g e r a d e ( x , y ) // // i n p u t : // x . . . x v a l u e s // y . . . y v a l u e s // // o u t p u t : // m . . . s l o p e // b . . . i n t e r c e p t I Funktionsname gerade I Dateiname gerade.sci I Funktion einbinden −−> e x e c g e r a d e . s c i ; I Funktion aufrufen −−> u = [ 1 ; 2 ; 3 ] ; −−> v = [ 1 ; 4 ; 9 ] ; −−> [ c , d ] = g e r a d e ( u , v ) I Lokale Variablen erhalten Werte a = X\ y ; aus Workspace b = a (1); u −→ x, v −→ y m = a (2); Workspace Variablen erhalten endfunction Werte der lokalen Variablen c ←− m, d ←− b scilab/gerade.sci I X = [ x .^0 x ] ; Scilab Funktionen J. Koch, 28. Oktober 2015 6 / 15 Ausgleichsgerade berechnen f u n c t i o n [m, b ] = g e r a d e ( x , y ) // // i n p u t : // x . . . x v a l u e s // y . . . y v a l u e s // // o u t p u t : // m . . . s l o p e // b . . . i n t e r c e p t I Funktionsname gerade I Dateiname gerade.sci I Funktion einbinden −−> e x e c g e r a d e . s c i ; I Funktion aufrufen −−> u = [ 1 ; 2 ; 3 ] ; −−> v = [ 1 ; 4 ; 9 ] ; −−> [ c , d ] = g e r a d e ( u , v ) I Lokale Variablen erhalten Werte a = X\ y ; aus Workspace b = a (1); u −→ x, v −→ y m = a (2); Workspace Variablen erhalten endfunction Werte der lokalen Variablen c ←− m, d ←− b scilab/gerade.sci I X = [ x .^0 x ] ; Scilab Funktionen J. Koch, 28. Oktober 2015 6 / 15 Ausgleichsgerade berechnen f u n c t i o n [m, b ] = g e r a d e ( x , y ) // // i n p u t : // x . . . x v a l u e s // y . . . y v a l u e s // // o u t p u t : // m . . . s l o p e // b . . . i n t e r c e p t I Funktionsname gerade I Dateiname gerade.sci I Funktion einbinden −−> e x e c g e r a d e . s c i ; I Funktion aufrufen −−> u = [ 1 ; 2 ; 3 ] ; −−> v = [ 1 ; 4 ; 9 ] ; −−> [ c , d ] = g e r a d e ( u , v ) I Lokale Variablen erhalten Werte a = X\ y ; aus Workspace b = a (1); u −→ x, v −→ y m = a (2); Workspace Variablen erhalten endfunction Werte der lokalen Variablen c ←− m, d ←− b scilab/gerade.sci I X = [ x .^0 x ] ; Scilab Funktionen J. Koch, 28. Oktober 2015 6 / 15 Ausgleichsgerade berechnen f u n c t i o n [m, b ] = g e r a d e ( x , y ) // // i n p u t : // x . . . x v a l u e s // y . . . y v a l u e s // // o u t p u t : // m . . . s l o p e // b . . . i n t e r c e p t I Funktionsname gerade I Dateiname gerade.sci I Funktion einbinden −−> e x e c g e r a d e . s c i ; I Funktion aufrufen −−> u = [ 1 ; 2 ; 3 ] ; −−> v = [ 1 ; 4 ; 9 ] ; −−> [ c , d ] = g e r a d e ( u , v ) I Lokale Variablen erhalten Werte a = X\ y ; aus Workspace b = a (1); u −→ x, v −→ y m = a (2); Workspace Variablen erhalten endfunction Werte der lokalen Variablen c ←− m, d ←− b scilab/gerade.sci I X = [ x .^0 x ] ; Scilab Funktionen J. Koch, 28. Oktober 2015 6 / 15 Ausgleichsgerade berechnen f u n c t i o n [m, b ] = g e r a d e ( x , y ) // // i n p u t : // x . . . x v a l u e s // y . . . y v a l u e s // // o u t p u t : // m . . . s l o p e // b . . . i n t e r c e p t I Funktionsname gerade I Dateiname gerade.sci I Funktion einbinden −−> e x e c g e r a d e . s c i ; I Funktion aufrufen −−> u = [ 1 ; 2 ; 3 ] ; −−> v = [ 1 ; 4 ; 9 ] ; −−> [ c , d ] = g e r a d e ( u , v ) I Lokale Variablen erhalten Werte a = X\ y ; aus Workspace b = a (1); u −→ x, v −→ y m = a (2); Workspace Variablen erhalten endfunction Werte der lokalen Variablen c ←− m, d ←− b scilab/gerade.sci I X = [ x .^0 x ] ; Scilab Funktionen J. Koch, 28. Oktober 2015 6 / 15 Ausgleichsgerade zeichnen I Funktionsname zeichne I Dateiname zeichne.sci I Funktion einbinden −−> e x e c z e i c h n e . s c i ; I Funktion aufrufen −−> z e i c h n e ( u , v , c , d ) function // // i n p u t : // x . . . // y . . . // m . . . // b . . . z e i c h n e ( x , y ,m, b ) x values y values slope intercept clf ; plot (x , y , ’∗r ’ ); xx = [ min ( x ) −1 ,max ( x ) + 1 ] ; yy = m∗ xx + b ; p l o t ( xx , yy , ’−b ’ ) ; endfunction scilab/zeichne.sci Scilab Funktionen J. Koch, 28. Oktober 2015 7 / 15 Ausgleichsgerade zeichnen I Funktionsname zeichne I Dateiname zeichne.sci I Funktion einbinden −−> e x e c z e i c h n e . s c i ; I Funktion aufrufen −−> z e i c h n e ( u , v , c , d ) function // // i n p u t : // x . . . // y . . . // m . . . // b . . . z e i c h n e ( x , y ,m, b ) x values y values slope intercept clf ; plot (x , y , ’∗r ’ ); xx = [ min ( x ) −1 ,max ( x ) + 1 ] ; yy = m∗ xx + b ; p l o t ( xx , yy , ’−b ’ ) ; endfunction scilab/zeichne.sci Scilab Funktionen J. Koch, 28. Oktober 2015 7 / 15 Ausgleichsgerade zeichnen I Funktionsname zeichne I Dateiname zeichne.sci I Funktion einbinden −−> e x e c z e i c h n e . s c i ; I Funktion aufrufen −−> z e i c h n e ( u , v , c , d ) function // // i n p u t : // x . . . // y . . . // m . . . // b . . . z e i c h n e ( x , y ,m, b ) x values y values slope intercept clf ; plot (x , y , ’∗r ’ ); xx = [ min ( x ) −1 ,max ( x ) + 1 ] ; yy = m∗ xx + b ; p l o t ( xx , yy , ’−b ’ ) ; endfunction scilab/zeichne.sci Scilab Funktionen J. Koch, 28. Oktober 2015 7 / 15 Ausgleichsgerade zeichnen I Funktionsname zeichne I Dateiname zeichne.sci I Funktion einbinden −−> e x e c z e i c h n e . s c i ; I Funktion aufrufen −−> z e i c h n e ( u , v , c , d ) function // // i n p u t : // x . . . // y . . . // m . . . // b . . . z e i c h n e ( x , y ,m, b ) x values y values slope intercept clf ; plot (x , y , ’∗r ’ ); xx = [ min ( x ) −1 ,max ( x ) + 1 ] ; yy = m∗ xx + b ; p l o t ( xx , yy , ’−b ’ ) ; endfunction scilab/zeichne.sci Scilab Funktionen J. Koch, 28. Oktober 2015 7 / 15 Relationale und logische Operatoren I Relationale Operatoren ==, ~=, <, >, <=, >= I Beispiele −−> x = 1 ; −−> x > 0 ans = T −−> x = [ 4 7 −1 1 ] ; −−> x > 0 ans = T T F T −−> a b s ( x ) ~= 1 ans = T T F F I Logische Operatoren &, | , ~ , mtlb_any , m t l b _ a l l I Beispiele −−> x < 0 | x > 3 ans = T T T F −−> m t l b _ a l l ( x > 0 ) ans = F I Suchen −−> f i n d ( x > 0 ) ans = 1. 2. 4. Scilab Funktionen J. Koch, 28. Oktober 2015 8 / 15 Relationale und logische Operatoren I Relationale Operatoren ==, ~=, <, >, <=, >= I Beispiele −−> x = 1 ; −−> x > 0 ans = T −−> x = [ 4 7 −1 1 ] ; −−> x > 0 ans = T T F T −−> a b s ( x ) ~= 1 ans = T T F F I Logische Operatoren &, | , ~ , mtlb_any , m t l b _ a l l I Beispiele −−> x < 0 | x > 3 ans = T T T F −−> m t l b _ a l l ( x > 0 ) ans = F I Suchen −−> f i n d ( x > 0 ) ans = 1. 2. 4. Scilab Funktionen J. Koch, 28. Oktober 2015 8 / 15 Relationale und logische Operatoren I Relationale Operatoren ==, ~=, <, >, <=, >= I Beispiele −−> x = 1 ; −−> x > 0 ans = T −−> x = [ 4 7 −1 1 ] ; −−> x > 0 ans = T T F T −−> a b s ( x ) ~= 1 ans = T T F F I Logische Operatoren &, | , ~ , mtlb_any , m t l b _ a l l I Beispiele −−> x < 0 | x > 3 ans = T T T F −−> m t l b _ a l l ( x > 0 ) ans = F I Suchen −−> f i n d ( x > 0 ) ans = 1. 2. 4. Scilab Funktionen J. Koch, 28. Oktober 2015 8 / 15 Relationale und logische Operatoren I Relationale Operatoren ==, ~=, <, >, <=, >= I Beispiele −−> x = 1 ; −−> x > 0 ans = T −−> x = [ 4 7 −1 1 ] ; −−> x > 0 ans = T T F T −−> a b s ( x ) ~= 1 ans = T T F F I Logische Operatoren &, | , ~ , mtlb_any , m t l b _ a l l I Beispiele −−> x < 0 | x > 3 ans = T T T F −−> m t l b _ a l l ( x > 0 ) ans = F I Suchen −−> f i n d ( x > 0 ) ans = 1. 2. 4. Scilab Funktionen J. Koch, 28. Oktober 2015 8 / 15 Relationale und logische Operatoren I Relationale Operatoren ==, ~=, <, >, <=, >= I Beispiele −−> x = 1 ; −−> x > 0 ans = T −−> x = [ 4 7 −1 1 ] ; −−> x > 0 ans = T T F T −−> a b s ( x ) ~= 1 ans = T T F F I Logische Operatoren &, | , ~ , mtlb_any , m t l b _ a l l I Beispiele −−> x < 0 | x > 3 ans = T T T F −−> m t l b _ a l l ( x > 0 ) ans = F I Suchen −−> f i n d ( x > 0 ) ans = 1. 2. 4. Scilab Funktionen J. Koch, 28. Oktober 2015 8 / 15 If-Bedingung I if-Bedingung i f e x p r e s s i o n then statements e l s e i f e x p r e s s i o n then statements else statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort then weglassen function m = fakultaet1 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! if n < 0 e r r o r ( ’ no n a t u r a l number ! ’ ) ; e l s e i f n == 0 m = 1; else m = n∗ f a k u l t a e t 1 ( n −1); end I Der elseif- und else-Zweig ist optional endfunction scilab/fakultaet1.sci Scilab Funktionen J. Koch, 28. Oktober 2015 9 / 15 If-Bedingung I if-Bedingung i f e x p r e s s i o n then statements e l s e i f e x p r e s s i o n then statements else statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort then weglassen function m = fakultaet1 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! if n < 0 e r r o r ( ’ no n a t u r a l number ! ’ ) ; e l s e i f n == 0 m = 1; else m = n∗ f a k u l t a e t 1 ( n −1); end I Der elseif- und else-Zweig ist optional endfunction scilab/fakultaet1.sci Scilab Funktionen J. Koch, 28. Oktober 2015 9 / 15 If-Bedingung I if-Bedingung i f e x p r e s s i o n then statements e l s e i f e x p r e s s i o n then statements else statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort then weglassen function m = fakultaet1 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! if n < 0 e r r o r ( ’ no n a t u r a l number ! ’ ) ; e l s e i f n == 0 m = 1; else m = n∗ f a k u l t a e t 1 ( n −1); end I Der elseif- und else-Zweig ist optional endfunction scilab/fakultaet1.sci Scilab Funktionen J. Koch, 28. Oktober 2015 9 / 15 Case-Fallunterscheidung I select-Bedingung select expression case e x p r e s s i o n then statements case e x p r e s s i o n then statements ... else statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort then weglassen function m = fakultaet2 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! select n case 0 m = 1; case 1 m = 1; else m = n∗ f a k u l t a e t 2 ( n −1); end endfunction scilab/fakultaet2.sci Scilab Funktionen J. Koch, 28. Oktober 2015 10 / 15 Case-Fallunterscheidung I select-Bedingung select expression case e x p r e s s i o n then statements case e x p r e s s i o n then statements ... else statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort then weglassen function m = fakultaet2 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! select n case 0 m = 1; case 1 m = 1; else m = n∗ f a k u l t a e t 2 ( n −1); end endfunction scilab/fakultaet2.sci Scilab Funktionen J. Koch, 28. Oktober 2015 10 / 15 While-Schleife I while-Schleife w h i l e e x p r e s s i o n do statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort do weglassen I continue überspringt die restlichen Anweisungen in der Schleife und beginnt den nächsten Schleifendurchlauf I break beendet den Schleifendurchlauf function m = fakultaet3 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! m = 1; while n > 0 m = n∗m; n = n −1; end endfunction scilab/fakultaet3.sci Scilab Funktionen J. Koch, 28. Oktober 2015 11 / 15 While-Schleife I while-Schleife w h i l e e x p r e s s i o n do statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort do weglassen I continue überspringt die restlichen Anweisungen in der Schleife und beginnt den nächsten Schleifendurchlauf I break beendet den Schleifendurchlauf function m = fakultaet3 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! m = 1; while n > 0 m = n∗m; n = n −1; end endfunction scilab/fakultaet3.sci Scilab Funktionen J. Koch, 28. Oktober 2015 11 / 15 While-Schleife I while-Schleife w h i l e e x p r e s s i o n do statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort do weglassen I continue überspringt die restlichen Anweisungen in der Schleife und beginnt den nächsten Schleifendurchlauf I break beendet den Schleifendurchlauf function m = fakultaet3 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! m = 1; while n > 0 m = n∗m; n = n −1; end endfunction scilab/fakultaet3.sci Scilab Funktionen J. Koch, 28. Oktober 2015 11 / 15 While-Schleife I while-Schleife w h i l e e x p r e s s i o n do statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort do weglassen I continue überspringt die restlichen Anweisungen in der Schleife und beginnt den nächsten Schleifendurchlauf I break beendet den Schleifendurchlauf function m = fakultaet3 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! m = 1; while n > 0 m = n∗m; n = n −1; end endfunction scilab/fakultaet3.sci Scilab Funktionen J. Koch, 28. Oktober 2015 11 / 15 For-Schleife I for-Schleife f o r i n d e x = v a l u e s do statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort do weglassen function m = fakultaet4 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! m = 1; I continue überspringt die restlichen Anweisungen in der Schleife und beginnt den nächsten Schleifendurchlauf f o r k = n : −1:2 m = k ∗m; end I break beendet den Schleifendurchlauf endfunction scilab/fakultaet4.sci Scilab Funktionen J. Koch, 28. Oktober 2015 12 / 15 For-Schleife I for-Schleife f o r i n d e x = v a l u e s do statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort do weglassen function m = fakultaet4 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! m = 1; I continue überspringt die restlichen Anweisungen in der Schleife und beginnt den nächsten Schleifendurchlauf f o r k = n : −1:2 m = k ∗m; end I break beendet den Schleifendurchlauf endfunction scilab/fakultaet4.sci Scilab Funktionen J. Koch, 28. Oktober 2015 12 / 15 For-Schleife I for-Schleife f o r i n d e x = v a l u e s do statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort do weglassen function m = fakultaet4 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! m = 1; I continue überspringt die restlichen Anweisungen in der Schleife und beginnt den nächsten Schleifendurchlauf f o r k = n : −1:2 m = k ∗m; end I break beendet den Schleifendurchlauf endfunction scilab/fakultaet4.sci Scilab Funktionen J. Koch, 28. Oktober 2015 12 / 15 For-Schleife I for-Schleife f o r i n d e x = v a l u e s do statements end I Wenn die statements in einer neuen Zeile beginnen, dann kann man das Schlüsselwort do weglassen function m = fakultaet4 (n) // // i n p u t : // n . . . n a t u r a l number // // o u t p u t : // m . . . n ! m = 1; I continue überspringt die restlichen Anweisungen in der Schleife und beginnt den nächsten Schleifendurchlauf f o r k = n : −1:2 m = k ∗m; end I break beendet den Schleifendurchlauf endfunction scilab/fakultaet4.sci Scilab Funktionen J. Koch, 28. Oktober 2015 12 / 15 Ein- und Ausgabeargumente I Dimension prüfen i f any ( s i z e ( x)~= s i z e ( y ) ) error ( ’ . . . ’ ); end I Dimension anpassen x = x (:); y = y (:); I Anzahl Eingabeargumente argn (2) I Anzahl Ausgabeargumente argn (1) Scilab Funktionen J. Koch, 28. Oktober 2015 13 / 15 Ein- und Ausgabeargumente I Dimension prüfen i f any ( s i z e ( x)~= s i z e ( y ) ) error ( ’ . . . ’ ); end I Dimension anpassen x = x (:); y = y (:); I Anzahl Eingabeargumente argn (2) I Anzahl Ausgabeargumente argn (1) Scilab Funktionen J. Koch, 28. Oktober 2015 13 / 15 Ein- und Ausgabeargumente I Dimension prüfen i f any ( s i z e ( x)~= s i z e ( y ) ) error ( ’ . . . ’ ); end I Dimension anpassen x = x (:); y = y (:); I Anzahl Eingabeargumente argn (2) I Anzahl Ausgabeargumente argn (1) Scilab Funktionen J. Koch, 28. Oktober 2015 13 / 15 Ein- und Ausgabeargumente I Dimension prüfen i f any ( s i z e ( x)~= s i z e ( y ) ) error ( ’ . . . ’ ); end I Dimension anpassen x = x (:); y = y (:); I Anzahl Eingabeargumente argn (2) I Anzahl Ausgabeargumente argn (1) Scilab Funktionen J. Koch, 28. Oktober 2015 13 / 15 Kontrollfragen 1. Erklären Sie den Unterschied zwischen einem Skript und einer Funktion. 2. Erklären Sie den Unterschied zwischen Variablen im Workspace, lokalen Variablen einer Funktion und globalen Variablen. 3. Wozu benötigt man den exec-Befehl? 4. Geben Sie einen Befehl an, mit dem man überprüft, ob sich die entsprechenden Elemente zweier Matrizen um höchstens 1 unterscheiden. 5. Schreiben Sie eine Funktion, die eine Ausgleichsparabel y = a x2 + b x + c durch die Punkte mit den Koordinaten x und y berechnet. 6. Schreiben Sie eine Funktion, die die Punkte mit den Koordinaten x und y und die Ausgleichsparabel y = a x2 + b x + c grafisch darstellt. Scilab Funktionen J. Koch, 28. Oktober 2015 14 / 15 Kontrollfragen 7. Die Formel zur Berechnung der Füllmenge eines bis zur Höhe h gefüllten liegenden Tanks in Form eines Kreiszylinders mit Radius r und Länge L lautet Quelle: Wikipedia ! √ 2 r − h 2rh − h V = r 2 L arccos − (r − h) . r r2 Schreiben Sie eine Funktion f u n c t i o n V = volumen ( r , L , h ) die das Volumen in Abhängigkeit der Eingabewerte r , L und h berechnet. Testen Sie die Funktion für verschiedene Werte von r , L und h. Scilab Funktionen J. Koch, 28. Oktober 2015 15 / 15
© Copyright 2024 ExpyDoc