Hjælp jeg ved intet om løkker!!!

Tags:    delphi

<< < 12 > >>
Jeg udd.
Jeg har fået en sjov ide til et program. Men først skal man da undersøge om det er muligt. Jeg ved nemlig ikke helt om det er muligt. Og da jeg tænkte det igennem, opdagede jeg at jeg faktisk ikke ved helt hvordan man laver en løkke.
Jeg har læst et eks. i en bog men forstår ikke meget.
Så mit spr. er om en gider skrive ca. 20 linier og et par kode eksempler til hvordan jeg kan lave det. Skriv gerne i hvilken sammen hænge du bruge denne gentagelses funktion, og ja en god forklaring på det. Det er jo ikke bare at skrive en kode og bagefter skrive at den skal gøre det med sådan her:
begin
label1.caption := 'hej';
do it over 100 times;
end;

Det er lidt sværrer.

På forhånd tak.

I Fight For The FUTUR!!!,
eller sådan noget...



11 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Oki, lads os tage det skridt for skridt!

//For-to-do løkke (Det kalder jeg det altså stadig, selv om din bog siger noget andet :) )

//Definere en variant
var

//Varianten kaldes jeg I og er en Integer (Hele tal)
I : Integer;

//Begynder selve koden
begin

//Lader min I være et tal fra 0 - 10 i en For-To-Do løkke
for I := 1 to 10 do

//Skriver en besked IntToStr() konventer min Integer til en string!
ShowMessage(IntToStr(I));

//Afslutter mit kode
end;


//Repeat løkke

//Definere en variant
var

//Kalder min variant for I og er af typen Integer
I : Integer;

//Begynder mit kode
begin

//Sikre mig at I starter med at være nul
I := 0;

//Starter min Reapeat løkke
repeat

//Forhøjer I med 1 (Lægger et tal til hele tiden!)
Inc(I);

//Skriver besked om I
ShowMessage(IntToStr(I));

//Afslutter løkken hvis I er 10
until I = 10;

//Afslutter mit kode!
end;




for I := startværdi to slutværdi do
negin
{
I er en integer.
Denne kode køres for alle I-værdier fra startværdi til slutværdi (værdierne inklusiv).
Hvis slutværdi er mindre end startværdi skal der bruges downto i stedet for to.
startværdi og slutværdi beregnes kun én gang i starten. De kan altså ikke opdateres efter hvert loop.
Efter loopet er I ikke defineret.
}
end;


while test do
begin
{
I begyndelsen af hvert loop testes test.
Hvis den er true køres loopet, og der testes igen indtil den er false.
Hvis test er false fra starten bliver loopet udført 0 gange.
}
end;


repeat
{
Der loopes en gang, og hvis test er false loopes igen indtil test bliver true.
Dette loop køres mindst én gang.
I modsætningen til while testes der EFTER loopet, og den stopper når test bliver true (i stedet for false som i while)
}
until test;



Når jeg har fået et svar. går jeg videre på nogle andre ting jeg skal have hjælp med i en anden forum...



Der er flere måder at lave løkker på i Delphi. Her er 2 måder:

//For-to-do løkke
var
I : Integer;
begin
for I := 1 to 10 do
ShowMessage(IntToStr(I));
end;

//Repeat løkke
var
I : Integer;
begin
I := 0;
repeat
Inc(I);
ShowMessage(IntToStr(I));
until I = 10;
end;

Begge eksempler viser en besked 10 gange!




Det kan godt være du skulle overveje at læse dine bøger igen! :D



Det kan godt være du skulle overveje at læse dine bøger igen! :D


Naaa. Lige de linier står også. Men bare på en ulæselig måde.
Men en ting fandt jeg ud af. Det hedder ikke For-To-Do løkke, men bare For løkke.

Kan du skrive om de andre arder af løkker eks. While-løkken


tak

Theis
I Fight For The FUTUR!!!,
eller sådan noget...



Du får lige et eks. på hvad bogen skriver af random-løkker:

I := 0;
repeat
beloeb := * 1.05;
I := I + 1;
until beloeb >= 10000;
edit.text := beløbet skal forrentes '+inttostr(I) +' gange';



Kan du give et sammen hæng i den?
Og hvad er beloeb? Også integer?

Det er måske mig der er tung nem!!!



Det var nemlig en hurtig forklaring for 15 up.
Jeg kunne nu godt tænke mig lidt flere koder. Og en hurtig forklaring der fortalte hvad der sker. Og hvad foreskellen er mellem repeat og for løkken?

I Fight For The FUTUR!!!,
eller sådan noget...



Du får up + jeg læser svaret i morgen (vis du svare igen) i morgen, da jeg skal gå.

I mens. Må alle da gerne skrive. Men han skal have minst 10 af upne



While Løkke

var
S: string;
begin
S := ' 123.5';
{ Convert spaces to zeroes }
while Pos(' ', S) > 0 do
S[Pos(' ', S)] := '0';
end;

Taget fra Delphi's hjælpe fil!

Det koden gør er at erstatte alle mellemrums tegn fra stregen S med nuller! Funktionen Pos() er fra system.pas uniten (...Ja, den følger med Delphi ;) )!



<< < 12 > >>
t