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

Iteration

Postad 2002-02-11 av Staffan Berg i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 4652, Betyg: 0%

Förord

Iteration och loopar är något som används i samtliga programmeringsspråk. I detta avsnitt fördjupar vi oss i hur det används i Delphi. Alla program kan tänkas vara uppbyggda av de tre programelementen sekvens, selektion och iteration. Detta avsnitt fokuserar vi på iteration, upprepning.
Innehåll
  » For-satsen
  » While-satsen
  » Repeat-satsen
Relaterade artiklar
  » Arraystrukturer
  » Händelser i Delphi
  » Introduktion till Delphi # 1
  » Procedurer och funktioner
  » Räkna med Delphi
  » Skapa program i Delphi
  » Strängkonstanter och strängvariabler


For-satsen

I de flesta programkonstruktioner finns det alltid ett behov av att upprepa en kodsats ett visst antal gånger. När man vet hur många gånger en sats skall behöva upprepas kan en s k For-sats vara lämplig.

En konstruktion med For-satsen innebär alltid en antalsstyrd upprepning, dvs en upprepning ett bestämt antal gånger. För att visa ett exempel kan du placera ut en listruta och två knappar på ett formulär. Nedanstående procedur kan du koppla till en knapp som skall räkna upp tal från 1 till 10 och sedan skriva ut dessa i listrutan på formuläret.

  • (a and b) har värdet true endast då både a och b är sanna.

  • (a or b) har värdet true om någon av a eller b är sann.

  • (a xor b) har värdet om a och b har olika värden.


Anta att variabeln x har värdet 25 och variabeln y har värdet 10. Nedan ges några sammansatta uttyck som har värdet true eller false.


procedure TForm1.Button1Click(Sender : TObject);
var i : integer;
begin
for i := 1 to 10 do
ListBox1.Items.Add(IntToStr(i));
end;

Nästa procedur har till uppgift att rensa listrutan och den kopplar du till den andra knappen.


procedure TForm1.Button2Click(Sender : TObject);
begin
ListBox1.Clear;
end;

När du sedan kör programmet och klickar på den första knappen kommer listrutan att räknas upp med talen 1 t o m 10. I exemplet antar styrvariabeln i succesivt varje värde 1..10. För vart och ett av dessa värde utförs iterationskroppen, dvs satsen efter do.

Iterationskroppen utgörs här av endast en sats men kan naturligtvis bestå av flera satser, som då omgärdas med begin-end.

Vi skall också demonstrera en procedur som räknar ned från 10 till 1, alltså omvänd ordning.


procedure TForm1.Button1Click(Sender : TObject);
var i : integer;
begin
for i := 10 downto 1 do
ListBox1.Items.Add(IntToStr(i));
end;


While-satsen

Ofta vet man inte hur många gånger en iteration skall utföras. Är detta fallet måste man använda sig av en iterationsmetod med antingen while-satsen eller repeat-satsen.

Detta är två loopkonstruktioner som är mera generella men också långsammare än for-satsen, som är optimerad för snabbhet. Båda konstruktionerna går att använda där for-satsen kan användas.

Här följer ett exempel för while-satsen.


procedure TForm1.Button1Click(Sender : TObject);
var i : integer;
begin
i := 1;
while i <= 10 do begin
ListBox1.Items.Add(IntToStr(i));
i := i + 1;
end;
end;

Orden while och do är reserverade ord.

Skillnaden mot for-satsen är att styrvariabeln ges startvärdet 1 innan loopen påbörjas. För varje varv testas om loopvillkoret, i<=10. är sant. Om villkoret är sant utförs villkoret efter do. Efter uppräkningen testas loopvillkoret igen osv. While-loopen avbryts här när styrvariabeln har uppnått värdet 11.

Lägg märke till att styrvariabeln i en while-sats inte räknas upp automatiskt som i for-satsen. Om man glömmer att räkna upp styrvariabeln hamnar man oförtrutet i en s k evighetsloop. Loopen upprepas i all oändlighet och man blir tvungen att gå "den hårda vägen" (CTRL+ALT+DELETE) för att avbryta loopen. Hela Delphi stängs då också ned och man förlorar icke sparat arbete. Ta för vana att alltid spara projektet innan testkörning, speciellt när loopar är inblandade.


Repeat-satsen

Ett alternativ till while-satsen är den s k repeat-satsen. Här kan du studera ett exempel på denna.


procedure TForm1.Button1Click(Sender : TObject);
var i : integer;
begin
i := 1;
repeat
ListBox1.Items.Add(IntToStr(i));
i := i + 1;
until i > 10;
end;
end;

Orden repeat och until är reserverade ord.

Viktiga fakta om repeat-satsen.

  • Iterationskroppen, satserna mellan repeat-until, upprepas tills att villkoret efter until blir sant.

  • Repeat-satsen är en eftertestad loop, dvs först kommer iterationskroppen och sedan testen.

  • Repeat-satsen utförs minst en eller flera gånger.

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
928
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