%Loopar och if-satser


%% Två procenttecken separerar s.k. celler.
% En cell är en bit av ett program som går att köra
% separat från övriga programmet. Testa t.ex. att köra
% just denna cellen genom att först ha den markerad,
% och därefter trycka på knappen uppe till vänster,
% som ser ut som en pil som pekar på den första
% av två rektanglar.
% Notera att de rader som kommer i nästa cell, B=3,
% inte körs.

A=2

%%
B=3

%% If-satser
% En if-sats är något man kan använda för att be
% matlab göra saker om ett visst villkor är uppfyllt.
% T.ex:

if A==2
    disp('A är helt klart lika med två.')   
else
    B=4
    disp('A är inte lika med två, och nu är B=4..')
end
 
% Dessa rader kod gör:
% 1. Kollar om A verkligen är exakt lika med 2,
% och skriver isfåll ut "A är helt ..."
% 2. Annars, dvs om A ej är 2, skriver ut "A är inte ..." 

% Kommandot disp skriver ut text i kommandofönstret
  
% Kolla noga vilka delar som ingår, och kom ihåg att matlab
% inte fattar att if-satsen är slut förrän den har kommit
% till ett end. Testa att ändra på A för att få satsen att göra
% annorlunda. Man använder == i villkor för att testa likhet


%% Man behöver inte ha ett else i en if-sats:

if A==2
    disp('Nä, nu får det vara nog.')    
    return          %return-kommandot avbryter programmet
end


%% If-satser kan också innehålla flera villkor:

if A==2 && B==3
    disp('Nu är både villkoren att A=2 och B=3 uppfyllda')
elseif A==2 && B<3     
    disp('Nu är A=2 och B mindre än 3')
elseif B==3 && A~=2     %Tecknen ~= betyder ej lika med
    disp('Nu är B=3 men A ej lika med 2')
end

% elseif är praktiskt om man vill testa flera fall. Lek nu lite
% med if-satser och disp, och få en känsla för hur det fungerar.

%% Loopar

% Loopar används när man vill göra något flera gånger i matlab,
% t.ex. iterera fram ett visst värde, plotta kurvor flera gånger
% med lite olika värden varje gång, eller summera vissa tal.

% Det finns två typer av loopar vi ska lära oss. For-loopen och
% while-loopen. 

%% For-loopar används när man vill göra en händelse ett visst antal
% gånger. I exemplet nedan lägger vi till 1 till a varje gång
% loopen går om:

a=0
for i=1:5
    a=a+1
    i
end

% Denna loop körs fem gånger, och varje gång blir i ett heltal 
% större. Första gången är i=1, andra i=2 osv.
% Detta faktum kan användas:

for i=1:4
    b(i)=i^2
end

% Denna loop placerar 1^1 på första platsen i b, och andra rundan
% i loopen är ju i=2, så andra platsen i b blir 2^2, och så vidare.



%% While-loopar använder likt if-satser villkor. Om vi t.ex. vill
% dividera ett tal med 2 tills en viss tolerans är nådd, använder
% vi en while-loop:

a=251
tolerans=1e-4   %Detta är samma som 1*10^(-4)
antal=0;
while a>tolerans        %Ett villkor, är det uppfylls körs loopen
    a=a/2
    antal=antal+1
end

% Här finns en rad som räknar antalet gånger loopen har loopat.
% Det är ofta intressant i matematiken att veta hur många 
% iterationer som krävs för att nå en viss tolerans.

%% Uppgifter på loopar

Ni skall skapa loopar som gör:
1. Plottar y=x^2+c flera gånger i samma figur, men med olika
värden på c varje gång. Fundera först ut vilken loop som passar.
2. Skapar en vektor med alla heltal i kvadrat upp till 7, och 
matlab skall ropa HEJ! när den kommit till talet 5. T.ex. om
vektorn namn är h så är h(2)=4 och h(3)=9 osv.
3. Skapa en loopa som summerar alla heltal från 1 och uppåt tills
summan överskrider en viss tolerans. Testa med olika toleranser.
4. Super-extrauppgift. Skapa en fibonacci-sekvens med hjälpa
av loopning. Är begreppet okänt, googla och se vad 