Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Introduktion till Pascal - Del 04: Sammansatta villkor

Postad 2006-04-25 av Christoffer Lejdborg i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 3898, Betyg: 0%

Förord

Sammansatta villkor är ett sätt att kompletera if-satser som vi lärde oss om i förra artikeln.
Innehåll
  » Case
  » And
  » Or
  » xor
  » not
  » Övningar
  » Avslutning
Relaterade artiklar
  » Introduktion till Pascal - Del 03: Selektion


Case

Case-satser är i vissa situationer mycket enklare att använda än if-satser. Det gäller speciellt när man har ett villkor med många olika val.


program LunchMeny;

uses Crt;

{$APPTYPE Console}

var Val : Byte;

begin
WriteLn(’Dagens lunch:’);
WriteLn(‘1. Fiskpinnar med potatis’);
WriteLn(‘2. Köttfärssås och spaghetti’);
WriteLn(‘3. Kycklingklubbor med ris’);
WriteLn(‘Pannkakor’);
Write(’Vad vill du ha?: ’);
ReadLn(Val);
Write(‘Beställt: ‘);
{case}
case Val of
1 : WriteLn(‘Fisk’);
2 : WriteLn(‘Pasta’);
3 : WriteLn(‘Fågel’);
4 : WriteLn(’Pannkakor’);
end;
else
begin
WriteLn(’Felaktig beställning’);
end;
{case slut}
ReadLn;
end.


Om du nu vill göra fler val, vi säger att menyvalen 1-4 är fisk. Då skriver man:

case Val of
1 .. 4 : WriteLn(‘Fisk’);
5 .. 8 : WriteLn(‘Pasta’);
9 .. 12 : WriteLn(‘Fågel’);
13 .. 16 : WriteLn(’Pannkakor’);
end;


Eller om exempelvis 1, 3 och 9 är fisk:

case Val of
1,3,9 : WriteLn(‘Fisk’);
2,4 : WriteLn(‘Pasta’);
5,7 : WriteLn(‘Fågel’);
6,8 : WriteLn(’Pannkakor’);
end;



And

Om flera villkor ska uppfyllas samtidigt använder man and. Exmpelvis om du måste vara både glad och hungrig för att få komma in på en restaurang.


program Restaurang;

uses Crt;

{$APPTYPE Console}

var Glad, Hungrig : Char;

begin
WriteLn(‘Är du glad? (J/N)’);
ReadLn(Glad);
WriteLn(’Är du hungrig? (J/N)’);
ReadLn(Hungrig);
If (Glad = ’J’) and (Hungrig = ’J’) then
begin
WriteLn(‘Välkommen in!’);
end;
else
begin
WriteLn(’Tyvärr, man måste vara både glad och hungrig för att få äta här.’);
end;
ReadLn;
end.



Or

Tvärtom från and så används or när man vill att minst ett av flera villkor ska uppfyllas. Om vi ska skriva om ovanstående program så att det räcker om man är antingen glad eller lycklig för att få komma in. Då ändrar vi bara i if-satsen så att det nu står:


If (Glad = ’J’) or (Hungrig = ’J’) then



xor

Xor används när något av alternativen ska vara sant för att något ska hända, men båda villkoren får absolut inte uppfyllas samtidigt. Ska du till exempel på en finare tillställning måste du kanske ha antingen frack eller smoking. Men hur skulle det se ut om du hade båda samtidigt, det kan vi ju inte tillåta.


program SmokingEllerFrack;

uses Crt;

{$APPTYPE Console}

var Smoking : Boolean; {boolean är en variabel som antingen är true eller false, inget annat}
Frack : Boolean;
Svar : Char;

begin
WriteLn(’Har du frack?’);
ReadLn(Svar);
Frack := ((Svar = ’J’) or (Svar = ’j’)) {frack sätts till true om Svar är J eller j (j är alltså INTE lika med J)}
WriteLn(’Har du smoking?’);
ReadLn(Svar); {samma variabel används igen, det går eftersom svaret redan är kopierat till Frack}
Smoking := ((Svar = ’J’) or (Svar = ’j’)); {samma gäller som för Frack}
if Frack xor Smoking then
begin
WriteLn(‘Välkommen in!’);
end;
else
begin
WriteLn(’Tyvärr, du får gå någon annanstans.’);
end;
ReadLn;
end.



not

Ibland kanske det inte spelar så stor roll vem som släpps in på din restaurang, men vi vill ju inte ha några stupfulla personer som kommer och stör våra gäster. I det här fallet används not.


program Berusad;

uses Crt;

{$APPTYPE Console}

var Full : Char;

begin
WriteLn(’Är du berusad?’);
ReadLn(Full);
if not ((Full = ’J) or (Full = ‘j’)) then
begin
WriteLn(‘Välkommen in!’);
end;
else
begin
WriteLn(’Tyvärr, du är välkommen tillbaka imorgon.’);
end;
ReadLn;
end.



Övningar

1. Skapa en enkel miniräknare som låter användaren mata in två tal och sedan ett av de fyra räknesätten (+-*/).


Avslutning

Nu börjar vi komma någon vart och programmeringen börjar bli lite mer intressant. Nästa artikel kommer att handla om iteration, upprepningar.
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
1 059
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies