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 02: Variabler 2/2

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

Förord

Variabler; den första grundstenen i Pascal-programmering. Variabler är lagringsplatser för olika typer av data och används i alla program som gör något annat än att bara skriva ut text. När jag satte mig för att skriva artikeln upptäckte jag att den blev väldigt lång, så jag har delat upp den i två delar. Det här är den andra.
Innehåll
  » Räkna med variabler
  » Olika sätt att avrunda tal på
  » Konstanter
  » Omvandlingar
  » Övningar
  » Avslutning
Relaterade artiklar
  » Introduktion till Pascal - Del 03: Selektion
  » Introduktion till Pascal - Del 02: Variabler 1/2


Räkna med variabler

Addition
Addition sker precis så som du tror, med ett vanligt plustecken:


01: program AdditionsTest;
02:
03: uses Crt;
04:
05: {$APPTYPE Console}
06:
07: var Tal1, Tal2, Summa : Integer;
08:
09: begin
10: Write(’Tal1: ’);
11: ReadLn(Tal1);
12: Write(’Tal2: ’);
13: ReadLn(Tal2);
14: Summa := Tal1 + Tal2;
15: WriteLn(’Summan av talen ’, Tal1, ’ och ’, Tal2, ’ är ’, Summa);
16: ReadLn;
17: end.


Subtraktion
Subtraktion sker som ovan fast med ett minustecken (-) istället för plus (+).

Multiplikation
För multiplikation används en asterisk (*).

Division
Nu blir det lite mer intressant, man kan nämligen dividera på två olika sätt. Om du har en flyttalsvariabel (exempelvis Real) går det utmärkt att använda ett vanligt divitionstecken (/). Men om du istället använder dig av ett heltal (Ex. Integer) så kan du ju inte få några decimaler över. Då används funktionen div.


10/3 = 3.3333333…
10 div 3 = 3


Men nu försvinner ju tal. 3*3 är 9, inte 10!
Det är helt riktigt, och det är därför funktionen mod finns. I mod hamnar restprodukten.


10 div 3 = 3
10 mod 3 = 1


Förstår du? När man gör en heltalsdivision blir det ofta något över. Det som skulle bli decimaler i en vanlig division. Dessa lagras i funktionen mod.


Olika sätt att avrunda tal på

Det finns tre sätt att göra avrundningar på. Vi börjar med den enklaste:

Vi tänker oss att vi har gjort en miniräknare, men vi vill inte uppleva tiotals decimaler, vi vill att resultatet ska presenteras med endast två decimaler. Då gör vi så här:


WriteLn(Summa:0:2);


Den sista siffran (2:an) är antalet decimaler. Experimentera och se vad som händer om du ändrar på 0:an.

De två andra funktionerna heter Round och Trunc. De används för att avrunda heltal som vid beräkningar eventuellt råkar innehålla decimaler. Funktionen Round används när du vill avrunda ett tal till närmsta heltal. Funktionen Trunc kommer däremot bara att kapa av decimalerna. Kör följande program och se vad som händer:


program Avrundning;

{$APPTYPE Console}

var Flyttal : Real;
Heltal : Integer;

begin
Flyttal := 4.7;
Heltal := Round(Flyttal);
WriteLn(’Avrundat blir det ’, Heltal);
Heltal := Trunc(Flyttal);
WriteLn(’Avhugget blir det ’, Heltal);
ReadLn;
end.



Konstanter

Konstanter, de är variablernas motsats men kan vara precis lika nyttiga. Säg att du gör ett program där du vill omvandla dollar till kronor. Dollarvärdet i förhållande till kronan är inte speciellt stabilt eller hur? Det vore ju fruktansvärt jobbigt att räkna med om du varje dag ska ändra i programmet på alla de platser där dollarns värden är utskrivna. Då blir det mycket lättare med konstanter.


01: program AdditionsTest;
02:
03: uses Crt;
04:
05: {$APPTYPE Console}
06:
07: const Dollar = 7,41; {notera likhetstecknet}
08:
09: var Kronor, Summa : Real;
10:
11: begin
12: Write(’Antal kronor som ska omvandlas till dollar: ’);
13: ReadLn(Kronor);
14: Summa := Dollar*Kronor;
15: WriteLn(Kronor, ’kr är lika med ’, Summa:0:2, ’ dollar.’); {Summa:0:2, Vad i hela friden?}
16: ReadLn;
17: end.


På rad 7 skapar vi en konstant som vi döper till Dollar, värdet sätts till 7,41 (notera att det är ett ensamt likhetstecken). I detta exempel användes Dollar bara på en plats så det kan tyckas onödigt med konstanten just här, men du förstår principen.


Omvandlingar

Man kan omvandla heltal till tecken och tvärtom med hjälp av Chr och Ord. Detsamma gäller strängar och heltal med funktionerna StrToInt och IntToStr. Här följer ett litet exempel på hur dessa fungerar.


program Konverteringar

uses Crt; SysUtils; {notera att vi behöver lägga till SysUtils i usessatsen}

{$APPTYPE Console}

var Heltal, Error : Integer;
Tecken : Char;
Strang : String;

begin
Tecken := 'A';
WriteLn('Bokstaven A har ASCII-värdet ', Ord(Tecken));
Heltal := 66;
WriteLn('Detta blir ett B: ', Chr(Heltal));

{Heltal görs nu om till en sträng}
Strang := IntToStr(Heltal);
Strang := Strang+'6';
WriteLn('Detta är den oheliga treenigheten: ', Strang);

{Strängen görs nu om till ett heltal}
Heltal := StrToInt(Strang);
Heltal := Heltal div 2;
WriteLn('Heltal innehåller nu ', Heltal);
ReadLn;
end.



Övningar

1. Skriv ett program som frågar efter namn. Låt användaren skriva in sitt namn och skriv därefter ut (om användarens namn är Christoffer) ”Hej Christoffer!”.
2. Skriv ett program som kastar om två variabler. Exempel på utskrift:

Tal1 = 5
Tal2 =7
Men nu är:
Tal1 = 7
Tal2 = 5

3. Gör ett program som omvandlar inmatade sekunder till timmar:minuter:sekunder. Använd mod och div.



Avslutning

Nu var det slut på variabler och konstanter. I nästa artikel är det dags att börja använda villkor.
Återigen, ge mig feedback ;)
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 204
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