[Pascal] weet niet hoe opdracht aan te pakken

Pagina: 1
Acties:
  • 201 views sinds 30-01-2008
  • Reageer

  • vandenhende
  • Registratie: Februari 2002
  • Laatst online: 12-04 22:27
Voor school moet ik een opdracht maken. Maak een programmaatje in pascal om records van studieboeken op te slaan in een bestand, deze sorteren (quicksort) en te zoeken. opdracht

Nu heb ik zelf als behoorlijk wat zitten stoeien maar weet niet goed hoe ik dit moet aanpakken stoeisel

Ik kan dus wel de gevraagde zaken opslaan in een tekstbestand, maar als ik nog een keer wat wil opslaan overschrijft hij de gegevens van de vorige keer. en als ik in die quicksort bijlage kijk dan wordt er gesproken over een array. Waar zou ik die array moeten verwerken dan?

Ook mag ik eigenlijk niet werken met globale variabelen maar moet ik parameteroverdracht gebruiken. Dat doe ik nu dus nog niet. Misschien dat jullie wat tips voor mij hebben. Is namelijk een behoorlijk belangrijke opdracht voor mij nu.
:9

  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

je leest bestand in array, quicksort, doe er eventueel nog wat mee en dan opslaan?

Multimonitor is relax :P


  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03-2025
Ik zie nergens records terug komen in je "stoeisel", je quicksort zit er niet in, ken je het verschil tussen Reset, Rewrite en Append?

Zo kan ik nog wel even doorgaan, maar het lijkt mij verstandiger om er eerst zelf goed over na te denken, en pas als je tegen een echt probleem aanloopt dat je dat dan hier vraagt.

Dus:
Hoe ga je op auteur sorteren? Auteur zal een string zijn, de quicksort verwacht een integer!! Hoe wil je dit oplossen?
Hoe ga je op titel zoeken? Pak je de hele string? gedeelten, woord voor woord, steekwoorden?

Je "stoeisel" is nu niet meer dan dat je een menuutje op het scherm kunt toveren, en dat is het wel zo'n beetje... Ik zie nergens iets waar je de eigenlijke problemen probeert aan te pakken...

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Voor een schoolopdracht is het niet belangrijk dat je iets werkends inlevert ongeacht hoe je er aan gekomen bent, maar dat je het leerproces doorloopt van oplossingen verzinnen, voor/tegens afwegen, beslissing nemen waarom wel/niet etc.

Daarom is het ook voor jou echt niet zinvol hier te vragen hoe die opdracht moet omdat je daar geen ene reet van leert ookal denk je van wel.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • vandenhende
  • Registratie: Februari 2002
  • Laatst online: 12-04 22:27
Ik vraag toch ook niet hoe het moet. Ik vraag alleen of iemand me inzichten kan verschaffen in hoe het aan te pakken. Je hebt mij hier niet om de kant en klare code horen vragen. Toch bedankt voor ieders reactie tot nu toe.

B)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14-04 03:50
Tja, ik weet niet hoe ik deze vraag moet aanpakken.

Het lijkt me dat het onderdeel van de opleiding die je deze opdrachten verschaft is om je te leren programmeren in Pascal, te leren werken met datastructuren (een array is toch wel de allersimpelste) en sorteeralgoritmen te schrijven en te gebruiken. (Volgens je opdracht hoef je 'm niet eens te begrijpen maar alleen te kunnen implementeren.)

Deze basiskennis is wel met Google (of op Wikipedia) te vinden; daar is dit forum niet nuttig voor. Je vraagt niet om kant en klare code, maar je stelt ons ook geen concrete vraag. Wat verwacht je nu, dat we je een Pascal tutorial gaan geven?

  • Robbemans
  • Registratie: November 2003
  • Laatst online: 17-07-2025
Tips:

- Wat doet Rewrite en wat doet Append, zoek dit uit;
- Je hebt een structuur nodig om gegevens in op te slaan. Deze kun je schrijven naar een bestand en er ook uit lezen. Zoek op hoe Read() en Write() werken. Op deze manier kun je namelijk ook records lezen en schrijven;
- Zoek op hoe het keyword "record" werkt en hoe je het gebruikt;
- Quicksort kun je overnemen uit je studiemateriaal, maar deze zul je moeten aanpassen ivm het sorteren op jouw gedefinieerde recordtype;
Delphi:
1
2
3
4
5
6
7
8
var
c:char;
bestand: text;

auteur :string;
titel  :string;
aantal :integer;
prijs  :real;

DIT zijn globale variabelen. Volgens de opdracht mogen die niet;

Je moet nu genoeg aanknopingspunten hebben om verder te komen. Als het echt niet lukt kunnen we je helpen, maar je zal er zelf iets voor moeten doen.

[ Voor 12% gewijzigd door Robbemans op 26-01-2006 13:00 ]


  • EfBe
  • Registratie: Januari 2000
  • Niet online
vandenhende schreef op donderdag 26 januari 2006 @ 12:44:
Ik vraag toch ook niet hoe het moet. Ik vraag alleen of iemand me inzichten kan verschaffen in hoe het aan te pakken. Je hebt mij hier niet om de kant en klare code horen vragen. Toch bedankt voor ieders reactie tot nu toe.
B)
Die inzichten zijn juist hetgeen je moet leren en waar je ook niet uitkomt. DAT moet je dus leren. Als hier iemand jou het pad wijst waar je over moet gaan lopen kun je het dan de volgende keer in een andere situatie wel vinden? Jij denkt nu "tuurlijk" maar dat is maar zeer de vraag, omdat je niet geleerd is hoe er in 1e instantie te komen.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:35

Creepy

Tactical Espionage Splatterer

Wat voor inzichten wil je nog hebben dan? De opdracht is vrij helder en als je de eerste regel van de opdracht lees dan voldoet je eigen programma daar al helemaal niet aan. Dat is toch echt iets wat je zelf moet kunnen oplossen, zeker omdat de stof al behandeld zou moeten zijn.

Aangezien je de eerste zin van de opdracht al niet helemaal door lijkt te hebben gaat bijna vanzelfsprekend ook de rest van de opdracht mis.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • vandenhende
  • Registratie: Februari 2002
  • Laatst online: 12-04 22:27
Ik heb dus bedacht dat het zo moet:
code:
1
2
3
4
5
6
type Boek = record
                auteur :string;
                titel  :string;
                aantal :integer;
                prijs  :real;
              end;

Deze gegevens sla ik dan op in een bestand:
code:
1
2
assign(Boekbestand,'c:\Studieboeken');
   rewrite(Boekbestand);

Maar als ik deze gegevens dan later wil weergeven hoe doe ik dit dan?
Als ik bijvoorbeeld zo zou doen kan ik alleen maar integers lezen. Maar mijn file bestaat uit records met verschillende gegevens (string, integer, real)
code:
1
2
3
4
5
6
7
8
 assign(fint, ‘c:\Studieboeken’);
   reset(fint);
   for I:=1 to 10 do
   begin
      read(fint, x);
      writeln(x);
   end;
   close(fint);

Met andere woorden hoe moet ik dit aanpakken.

Als ik gewoon in het bestandje kijk: c:\Studieboeken dan zie ik alleen maar rare tekens (in wordpad notepad etc...)

Ik hoop trouwens dat deze vraag wat concreter is dan de voorgaande waar ik nogal wat negatieve reacties op kreeg.
(8>

Mijn PAS file

Verwijderd

vandenhende schreef op zondag 29 januari 2006 @ 16:33:
Ik heb dus bedacht dat het zo moet:
code:
1
2
3
4
5
6
type Boek = record
                auteur :string;
                titel  :string;
                aantal :integer;
                prijs  :real;
              end;
Als ik me niet vergis, wordt hier een grote fout gemaakt...
Strings in een record kunnen geen variabele lengte hebben. Je moet dus expliciet de grootte van de string opgeven.

http://www.cs.ru.nl/G.Paulussen/B1/Hfdst13/13HetRECORDdatatype.html
vandenhende schreef op zondag 29 januari 2006 @ 16:33:
code:
1
2
3
4
5
6
7
8
 assign(fint, ‘c:\Studieboeken’);
   reset(fint);
   for I:=1 to 10 do
   begin
      read(fint, x);
      writeln(x);
   end;
   close(fint);
Is x van het type Boek?
Zo ja, wat probeer je dan met writeln(x) te doen?
Je moet elk item uit het record apart benaderen...

x.auteur
x.titel
x.aantal
x.prijs

[ Voor 26% gewijzigd door Verwijderd op 29-01-2006 22:11 ]

Pagina: 1