//--- Taschenrechnerfunktionen ---//

5+6
7-9
8*6
13/3

// . nicht ,
34,56
34.56

7^3 // Potenzen

exp(5) // Exponentialfunktion zur Basis e

sin(a) // Winkel in Bogenmaß
cos(%pi)

log(15) // Logarithmus zur Basis e
log(%e))  // %e: vorgegebene Variable e
log10(43) // Logarithmus zur Basis 10
log2(11) // Logarithmus zur Basis 2

//  Scilab kennt zum Rechnen nur runde Klammern
sin((20*(70-3/5)+5)^2)

//  und kennt natürlich "Punkt vor Strich"
20 - 4 * 5
(20 - 4) * 5

// hinter zwei Schrägstrichen steht Kommentar

// --- Variablen, Vektoren und Matrizen

//  Variable = Zahl
//  Variable = Rechenoperation
 
//  Variablendefinition
a = 5; // mit Strichpunkt abgeschlossen => keine Anzeige
a       // Aufrufen der Variable

//  Freie Namenwahl
hanswurst = 3*exp(6 - sin(25));
hanswurst

//  Vektoren. Definition mit eckigen Klammern

//  Spalten werden mit ,
EinZeilenvektor = [3.5, 5,7.392,3 ,6]

//  Zeilen mit ; getrennt
EinSpaltenvektor = [2.56;234;30;92.56]

//  Abruf von Komponenten
EinZeilenvektor(3:5)

//  Matrixdefinition
EineMatrix = [1,2,3,4;5,6,7,8;13,14,15,0.5]
EineMatrix(1:3,3:4)

D = EineMatrix(2:3,1:2);
D

//  Definition von Vektoren mit äquidistanten Elementen 
// der Größe nach geordnet
c = [1:0.5:3]

//  Matrixoperationen
M=[1,2,3,4;5,6,7,8]
N=[1,1,1,1;2,2,2,2]
P=[0,9;8,7;6,5;4,3]

//  komponentenweise Addition / Subtraktion !Vorsicht mit Dimensionen!
M+N
M-N
M-P

a=[1,2,3,4]
b=[5,6,7,8]'  // ' -> transponieren

//  Vektormultiplikation
b*a
a*b

//  Vektor-Matrixmultiplikation
M*b

//  Matrixmultiplikation
M*P

// elementweise Operationen
//      bei Matrizen mit gleicher Dimension
M.*N
M./N


// --- Abfragen - if then else select ---%

a = 5;
b= 8;

//  Vergleichsoperatoren
//  <, <=, ==, >=, >, & (und), | (oder)

if a==b | b>9
  a=a^2;
  b=b^2;
elseif a<b & b<9
  a=b-a;
else
  b = a+b;
end
a
b


a=2;
select a
  case 1
    b = a^2;
  case 2
    b=a;
else
    b=a+7;
end

b



// ----- Schleifen - loops --------%

// for zaehler = beginn:schrittweite:ende

for x=1:0.5:5
  y(x)=5*x+13;
end
y



j = 128;
i = 0;

while j>1
  j=j/2;
  i=i+1;
end
i

// !Achtung, dass die Schleifen terminieren!


// -------- Funktionen ------------%

//  function [Ausgabevariablen] = funktionsname(Parameter)

function [e,f] =tausch(c,d)
  e=d;
  f=c;
endfunction


a = 15;
b = 11;

[k,l] = tausch(a,b)
k
l



// --------- Grafikbefehle -----------%

xset("window",2)   // Grafikfenster öffnen, 2 steht für die Nummer des Graphikfensters

t=0:0.01:1;
t=t';
x = 5*t^10-3;
y = -4*t+6;

//  graphische Ausgabe mit plot2d

plot2d(t,[x,y],style=[3 -3])

//  Legende hinzufügen
legends(['style 3','style -3'],[3 -3],2)


t=1:10;
x = 5*t-3;
y = -4*t+6;

//  mehrere Bilder in einem Graphikfenster
subplot(1,2,1) // Graphikfenster in i*j Teilfenster unterteilen
plot2d(t,x)

//  Plot mit Titel und/oder Achsenbeschriftung versehen
xtitle('Linker Plot','y-Achsenbeschriftung','x-Achsenbeschriftung')

subplot(1,2,2)
plot2d(t,y)
xtitle('Rechter Plot')







