Introduktion till Pascal - Del 03: Selektion
Förord
Den här artikeln kommer att handla om selektion, valsituationer. I verkliga livet gör du val hela tiden, och gissa vad, i programmering gäller samma sak ;) Vi kommer i den här delen av min artikelserie gå igenom if och else och deras användning i Pascal.Innehåll
»»
»
»
»
»
»
»
Relaterade artiklar
» Introduktion till Pascal - Del 04: Sammansatta villkor» Introduktion till Pascal - Del 02: Variabler 1/2
Valsituationer
Som sagt så utsätts man dagligen för en mängd olika val. I olika situationer måste man anpassa sig på olika sätt. Till exempel kanske du vill cykla till skolan/jobbet om vädret är bra, men om det regnar vill du ta bilen eller bussen. Det är det här som selektion går ut på, att ställa villkor och anpassa resultatet efter villkoret.
If-satser
If – Om. Med If-satser ställer du villkor för om något ska hända, de används oftast i tillsammans med Else som vi ska gå igenom lite längre ner i artikeln. Vi tar ett exempel med en gång.
program Selektion;
uses Crt;
{$APPTYPE Console}
var Regn : Char;
begin
WriteLn(’Regnar det ute? (J/N)’);
ReadLn(Regn);
{If-sats}
If (Regn = ’J’) Then
begin
WriteLn(‘Ta bilen!’);
end;
WriteLn(’Ha en bra dag!’);
ReadLn;
end.
Else
Men om det inte regnar, kan vi inte skriva ut något roligt då? Jo, det kan vi, med hjälp av else.
program Selektion;
uses Crt;
{$APPTYPE Console}
var Regn : Char;
begin
WriteLn(’Regnar det ute? (J/N)’);
ReadLn(Regn);
{If-sats}
If (Regn = ’J’) Then {notera: inget semikolon}
begin
WriteLn(‘Ta bilen!’);
end;
else {om det första villkoret inte uppfylls så sker följande}
begin
WriteLn(’Ta cykeln!’);
end;
WriteLn(’Ha en bra dag!’);
ReadLn;
end.
Jämförelseoperatorer
Det finns flera jämförelsemetoder att använda i if-satser. Den vi sett användas hitils är likhetstecknet (=). Här är några fler.Jämförelseoperator | Förklaring |
---|---|
if (a = b) then | Om a är lika med b. |
if (a > b) then | Om a är större än b. |
if (a < b) then | Om a är mindre än b. |
if (a >= b) then | Om a är större än eller lika med b. |
if (a <= b) then | Om a är mindre än eller lika med b. |
if (a <> b) then | Om a inte är lika med b. |
Nästlade if-satser
Man kan även ha en if-sats i en if-sats, och en if-sats i den if-satsen, och en i den… Detta kallas för nästlade if-satser. Det kan se ut så här:
program NastladIf;
uses Crt;
{$APPTYPE Console}
var Regn, Mycket : Char;
begin
WriteLn(’Regnar det ute? (J/N)’);
ReadLn(Regn);
{If-sats}
If (Regn = ’J’) Then {notera: inget semikolon}
begin
WriteLn(‘Regnar det mycket? (J/N)’);
ReadLn(Mycket);
If (Mycket = ’J’) Then {regnar det mycket eller duggar det bara lite?}
begin
WriteLn(’Det regnar mycket, ta bilen!’);
end;
else
begin
WriteLn(’Det regnar lite, du kan nog ta cykeln i alla fall.’);
end;
end;
else {om det första villkoret inte uppfylls så sker följande}
begin
WriteLn(’Ta cykeln!’);
end;
WriteLn(’Ha en bra dag!’);
ReadLn;
end.
Else If
Ibland vill man ställa flera villkor, då används Else If.
program AnnarsOm;
uses Crt;
{$APPTYPE Console}
var Regn : Char;
begin
WriteLn(’Regnar det ute? (J/N)’);
ReadLn(Regn);
{If-sats}
If (Regn = ’J’) Then {notera: inget semikolon}
begin
WriteLn(‘Ta bilen!’);
end;
else if (Regn = ’N’) Then {om nej så}
begin
WriteLn(’Ta cykeln!’);
end;
WriteLn(’Ha en bra dag!’);
ReadLn;
end.
Övningar
1. Skriv ett program som låter användaren mata in sitt namn. Om namnet inte är det magiska namnet Nisse ska utskriften bli ”Hej Namn!”. Är namnet Nisse så blir utskriften istället ”Nämen tjenare Nisse, kul att ses!”.1.5. Utöka programmet så att även ditt eget namn är ett ”magiskt” namn.
2. Gör ett program som kan omvandla Celsius till Fahrenheit, eller Fahrenheit till Celsius om användaren vill. F = 1.8 * C +32
3. Programmera spelet Sten, Sax, Påse. För exempel se: Sten, Sax, Påse
0 Kommentarer