"Heinrich Christiansen" <olfred@12_mail.dk> wrote in message
news:XNUUa.39838$Kb2.1655084@news010.worldonline.dk...
Hey Heinrich
Hell yeah, det giver mening og minder om alt det vi formodes at have "lært"
på datamatikkeren.
Jeg forstår godt dit gode eksempel og jeg sætter virkelig pris på hjælpen.
Hvis vi nu forudsætter at til at starte på, så består Olsen banden af 0
medlemmer. Så kommer Egon til verden og han stiller sig mit på en pløje mark
i øs regnvejr, skriger af Gud, og siger jeg vil være med i Olsen Banden!! Nu
ligger det sådan at Gud har været på druk så han siger bare ok.
Der går nu nogen tid og der er efterhånden kommet 15 medlemmer med i Olsen
banden. Nu er det sådant, at det dybest set er en flok børn der skændes
konstant, den ene stjæler den andens slikke pind etc., så de har besluttet
sig for at afgøre diverse tvistigheder ved at spille "Medal of Honor".
Derfor indtaster Gud en række felter i recorden. Felter som "PistolKill" og
"PistolDeath", disse felter er tomme da banden først skal have deres første
spil i morgen. Som jeg ser det kan vi kun finde Børge i rækket vha. af hans
navn og bande tilhørsforhold og det er liget meget, hvad der ellers er af
felter eller hvad?
Torben
> Hvis vi forudsætter at der kun er indtastet medlemmer af olsenbanden ind i
> listen så er det meget nemt at gøre det, det er imidlertid en smule
sværere
> at gøre det hvis der er andre bander i listen men absolut ikke
> uoverkommeligt!
>
> Kun Olsen Bande-medlemmer:
>
> Vi leger at vi ved at Børge er nr. 8 i listen!
>
> Stats[8] := Stats[15];
> Stats[15].Name:= '';
> Stats[15].Bande:= '';
>
> Så er det løst! men det vil ødelægge en evt sortering!
>
> Nu leger vi at vi ikke ved hvilken position Børge har i listen men at vi
ved
> at der er 15 personer i listen:
>
> > > > type
> > > > TStatsName = record
> > > > Name: string[50];
> > > Bande: string[50];
> > > > end;
> > > > TStats = ARRAY(.1..255.) OF TStatsName;
> > > > TStatsFile = File OF TStatsName;
> > >
> > > Tilføjelse:
> > > var
> > > Stats: TStats;
> Antal: Integer;
> Talt: Integer;
> FundetPost: Boolean;
> SoegtNavn: string[50];
> SoegtBande: string[50];
> > >
> > > begin
> ... klippet fra!
> Vi antager at Antal er 15
> Talt:= 1;
> FundetPost:= False;
> SoegtNavn:= 'Børge';
> SoegtBande:= 'Olsen Banden';
> Repeat
> If (SoegtNavn = Stats[Talt].Name)
> And (SoegtBande = Stats[Talt].Bande)
> Then FundetPost:= True;
> // Check på begge Name og Bande
> If FundetPost = True Then Begin // Kopier næste post ind i
denne
> post
> Stats[Talt]:= Stats[(Talt + 1)];
> End;
> Inc(Talt); Optæl talt position!
> Until Talt >= Antal;
> Dec(Antal); // Der er nu en mindre i listen!
> > > end.
> > >
> > > Så passer pengene!
>
> Tja! Det kan lade sig gøre!
>
> Det der sker er at Listen løbes igennem fra ende til anden! Listen starter
> jo ved 1 så det er Talt!
>
> Repeat - Until funktionen er en rimelig nem løkke at bruge!
>
> Vi checker om Name = SoegtNavn og om Bande = SoegtBande Og hvis det
matcher
> så skal fundetPost variablen være sand!
>
> Bagefter - ikke indeni - Checkes om FundetPost er sand - Hvis den er sand
> skal posterne rokeres en tand ned efter tur!
>
> Til sidst skal Antallet af registrerede personer nedtælles med den ene som
> børge var!
>
> Listen løbes kun igennem en gang så der er ikke det store tidsforbrug!
>
> Det er en lignende process når der skal indsættes en ny person og posterne
> altså skal sorteres i forbindelse med indtastningerne! Også her løbes
løkken
> kun igennem en gang!
>
> Det er noget andet hvis den skal sorteres efter noget tids usorteret
> indtastninger!
>
> Jeg håber det kan hjælpe dig!
>
> Mvh. Heinrich
>
>
> ---
> Denne mail er certificeret virusfri
> This mail is certified Virus Free.
>
> Checked by AVG anti-virus system (
http://www.grisoft.com).
> Version: 6.0.502 / Virus Database: 300 - Release Date: 18-07-2003
>
>