[Delphi] Probleem bij opdracht

Pagina: 1
Acties:
  • 65 views sinds 30-01-2008

  • SuperPotato
  • Registratie: Oktober 2001
  • Laatst online: 04-06 22:25
Ik post dit voor een vriend die TI doet, en strafwerk moet maken 8)7

----------------

De opdracht:
Bouw een programma, dat een ingetypte zin analyseert-
Bijvoorbeeld, de gebruiker typt de volgende zin in:

- Ik heb 1+1=3 wel 100 maal gelezen! -

in en drukt daarna op de knop Analyseer zin.
Het programma zal vervolgens:

* het aantal zuivere woorden berekenen en weergeven in de betreffende edit-box,
Een zuiver woord is hier gedefinieerd als een aaneengesloten reeks letters omgeven
door spaties en/ofhet begin en/of einde van de zin. Zuivere woorden in ons voorbeeld:
Ik, heb, wel, maal.

* het aantal zuivere getallen berekenen en weergeven in de betreffende edit-box,
Een zuiver getal is hier gedefinieerd als een aaneengesloten reeks cijfers omgeven
door spaties en/ofhet begin en/of einde van de zin. Zuivere woorden in ons voorbeeld: 100
het percentage spaties berekenen en weergeven in de betreffende edit-box.


Het programma dient gebruik te maken van de volgende subroutines, die ook gecodeerd dienen te worden:


function AantalSpaties (sZin: String) : Integer;
{
Retourneert het aantal spaties in sZin.
pre: ...< vul zelf in > ...
}
function IsZuiverWoord (sZin: String; iPos: Integer) : Boolean;
{
Deze functie retourneert TRUE dan en slechts dan als op positie ipos in de zin
sZin een zuiver woord begint. Een zuiver woord is gedefinieerd als een
aaneengesloten reeks letters ('a' t/m 'z' en JA' t/m 'Z') omgeven door
spaties en/of het begin en/of einde van de zin.
pre: ...< vul zelf in > ...
}
function IsZuiverGetal (sZin: String; iPos: Integer) : Boolean;
{
Deze functie retourneert TRUE dan en slechts dan als op positie iPos in de zin
sZin een geheel getal begint. Een zuiver getal is gedefinieerd als een
aaneengesloten reeks cijfers ('0' t/m '9') omgeven door spaties en/of het
begin en/of einde van de zin.
pre: ...< vul zelf in > ...
}
Tot nog toe het bereikte resultaat (niet veel):


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    btnAnalyserenvanzin: TButton;
    edtInvoer: TEdit;
    edtZuiverewoorden: TEdit;
    edtZuiveregetallen: TEdit;
    edtSpaties: TEdit;
    procedure btnAnalyserenvanzinClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.btnAnalyserenvanzinClick(Sender: TObject);
var
  iInvoer: Integer;
  sZin: String

begin
  iInvoer := StrToInt (edtInvoer.Text)



end;

end.



Hoe moet dit verder? Iemand suggesties?

  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

Dit is wel heel erg het laten maken van een huiswerk opdracht... Ik zou zeggen begin eerst eens met het implementeren van de functie die in de opdracht staan.

If you are not wiping out you are nog pushing enough...


  • Harmsen
  • Registratie: November 2000
  • Laatst online: 12:44
Als je begint met die functie aantalspaties te maken. Die is niet zo moeilijk.

De functie Iszuiverwoord is ook wel te doen. Stel je zet voor de zin een spatie, dat is makkelijk te doen door het volgende. Dan ga je zoeken naar de eerste spatie, dat is dan automatisch de eerste karakter van de zin. Sla de postitie van die op, dan zoek je de 2e spatie op. Sal ook die positie op in een variabele. Dan ga je met een for lusje simpel door door het woord wat tussen de 2 spaties zit heen. Als er een karakter in het woord zit dat geen letter is dan is het automatisch een false. Anders een true.

De andere functie mag je nou zelf bedenken.

What a fine day for Science! | Specs


Verwijderd

Doe eens crea, en help een student in nood :)... is er niemand die hem wil helpen, met verstand van dat delphi gebeuren. Jammer genoeg weet ik er niet veel vanaf (lees nix :P)

Post dan de hele code ;) .. Naja iig veel suc6 dude enneuh hopelijk helpt iemand je :)

  • Harmsen
  • Registratie: November 2000
  • Laatst online: 12:44
Verwijderd schreef op 03 november 2002 @ 15:38:
Doe eens crea, en help een student in nood :)... is er niemand die hem wil helpen, met verstand van dat delphi gebeuren. Jammer genoeg weet ik er niet veel vanaf (lees nix :P)

Post dan de hele code ;) .. Naja iig veel suc6 dude enneuh hopelijk helpt iemand je :)
Ik kan hem wel helpen en wil dat ook wel. Maar volgens mij is deze opdracht bedoeld zodat hij er zelf wat van leert. Zijn vraag was toch ook : Hoe nu verder?

What a fine day for Science! | Specs


  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

Inderdaad, de code is wel te maken, maar je moet het zelf leren anders heb je er niets aan.

If you are not wiping out you are nog pushing enough...


Verwijderd

Hmm ja idd, dat klopt maar kennelijk heeft hij de hersenen ter grootte van een Pinda ;). Ik denk ook wel dat hij zijn lesje heeft geleerd (ik zou dat iig wel hebben gedaan) mja. Wat als jij hem was Pinda, en jij snapte er nix van? Dan is het toch erg zuur als niemand je concreet wil helpen. Naja anywayz niet meer doen dan hae vriend van RMW .. hoop dat je je lesje geleerd hebt.... Tweakers Unite en help deze "beginner"

  • Harmsen
  • Registratie: November 2000
  • Laatst online: 12:44
Verwijderd schreef op 03 november 2002 @ 15:53:
Hmm ja idd, dat klopt maar kennelijk heeft hij de hersenen ter grootte van een Pinda ;). Ik denk ook wel dat hij zijn lesje heeft geleerd (ik zou dat iig wel hebben gedaan) mja. Wat als jij hem was Pinda, en jij snapte er nix van? Dan is het toch erg zuur als niemand je concreet wil helpen. Naja anywayz niet meer doen dan hae vriend van RMW .. hoop dat je je lesje geleerd hebt.... Tweakers Unite en help deze "beginner"
Ben al bezig. Maar ik ben nog steeds voor het id dat je hem beter uit kan leggen hoe hij het zou kunnen programmeren, dus in normale taal. en dat RMW het zelf in delphi schrijft.

What a fine day for Science! | Specs


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 13:49

Reptile209

- gers -

Dan gaan we toch bekvechten om eigen implementaties :)
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function AantalSpaties (sZin: String) : Integer;
{
Retourneert het aantal spaties in sZin (>=0).
pre:
  sZin bevat max. 255 tekens, zie copy-statement
denk na over:
  dubbele spaties worden nu dubbel geteld. Dat zal er nog uit moeten
}
var
  TempStr: string;
  SpatiesGevonden: integer;
begin
  SpatiesGevonden := 0;
  TempStr := sZin;

  while Pos(' ', TempStr)>0 do
  begin
    Inc(SpatiesGevonden);
    TempStr := copy(TempStr, Pos(' ', TempStr)+1, 255);
  end;
  Result := SpatiesGevonden;
end;

Nog wat om over na te denken: maar er in de header (const sZin: string) van, da's netter. Disclaimer: untested code!

Zo scherp als een voetbal!


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 13:49

Reptile209

- gers -

-RMW- schreef op 03 november 2002 @ 14:52:
Delphi:
1
2
3
4
5
6
7
8
9
10
procedure TForm1.btnAnalyserenvanzinClick(Sender: TObject);
var
  iInvoer: Integer;
  sZin: String

begin
  iInvoer := StrToInt (edtInvoer.Text)
end;

end.
Ik zie een exception :+ Wat wil hij hier in verdesnaam mee??

Zo scherp als een voetbal!


  • Harmsen
  • Registratie: November 2000
  • Laatst online: 12:44
Reptile209 schreef op 03 november 2002 @ 16:04:
Dan gaan we toch bekvechten om eigen implementaties :)
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function AantalSpaties (sZin: String) : Integer;
{
Retourneert het aantal spaties in sZin (>=0).
pre:
  sZin bevat max. 255 tekens, zie copy-statement
denk na over:
  dubbele spaties worden nu dubbel geteld. Dat zal er nog uit moeten
}
var
  TempStr: string;
  SpatiesGevonden: integer;
begin
  SpatiesGevonden := 0;
  TempStr := sZin;

  while Pos(' ', TempStr)>0 do
  begin
    Inc(SpatiesGevonden);
    TempStr := copy(TempStr, Pos(' ', TempStr)+1, 255);
  end;
  Result := SpatiesGevonden;
end;

Nog wat om over na te denken: maar er in de header (const sZin: string) van, da's netter. Disclaimer: untested code!
Nou ben ik niet een super progger maar als je net begint met delphi lijkt mij dat een for lusje net wat handiger is.

Delphi:
1
2
3
4
5
6
7
8
9
10
function AantalSpaties (sZin: String) : Integer;
var
  i, AantalSpat : Integer;
begin
  AantalSpat :=0;
  for i := 1 to length(sZin) do
    if sZin[i] = ' '  then
      inc(AantalSpat);  
  Result := AantalSpat
end;



die exception is best wel cool ja :)

What a fine day for Science! | Specs


Verwijderd

Nou ik hoop dat die vriend van RMW hiero wat aan heeft :). En hoe zit het met die "function IsZuiverWoord" of zoiets, wat er ook in staat.. is dat soms niet ook iets van dat programma? Net zoals die andere IsZuiverGetal. Bah, misschien ga ik me toch een keer verdiepen in dat delphi. Ziet er wel geinig uit. Iemand tips misschien hoe/waar je er materiaal voor kunt vinden (Boeken etc. ;))

Thnx alvast

  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

Verwijderd schreef op 03 november 2002 @ 15:53:
Hmm ja idd, dat klopt maar kennelijk heeft hij de hersenen ter grootte van een Pinda ;). Ik denk ook wel dat hij zijn lesje heeft geleerd (ik zou dat iig wel hebben gedaan) mja. Wat als jij hem was Pinda, en jij snapte er nix van? Dan is het toch erg zuur als niemand je concreet wil helpen. Naja anywayz niet meer doen dan hae vriend van RMW .. hoop dat je je lesje geleerd hebt.... Tweakers Unite en help deze "beginner"
Maar het probleem is dat hij het naar mijn insziens net echt heeft geprobeerd. Ik bedoel denk er even een half uurtje over na en probeer eens wat. Wat in zijn eerste posting staat is gewoon de opdracht omschrijving. Ik neem aan dat je zelf toch eerst een voorzetje kunt geven?

If you are not wiping out you are nog pushing enough...


  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

Verwijderd schreef op 03 november 2002 @ 16:44:
Nou ik hoop dat die vriend van RMW hiero wat aan heeft :). En hoe zit het met die "function IsZuiverWoord" of zoiets, wat er ook in staat.. is dat soms niet ook iets van dat programma? Net zoals die andere IsZuiverGetal. Bah, misschien ga ik me toch een keer verdiepen in dat delphi. Ziet er wel geinig uit. Iemand tips misschien hoe/waar je er materiaal voor kunt vinden (Boeken etc. ;))

Thnx alvast
www.devq.com/pascal heeft wel wat aardige dingen dacht ik, verder zijn er heel veel tuts te vinden op het wereld 'weide' web :)

If you are not wiping out you are nog pushing enough...


Verwijderd

thnx pinda :) ik zal eens een kijkje gaan nemen in dat Wereld Weide Web :P :)

  • Harmsen
  • Registratie: November 2000
  • Laatst online: 12:44
Nou, het progje van mij is al af :) Wel iets anders gedaan dan de opdracht was, maar dat merk je van de buitenkant niet.

Link naar progje Klik :)

Nee het is geen virus of trojan. Puur een delphi progje.

What a fine day for Science! | Specs


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 13:49

Reptile209

- gers -

Huntor schreef op 03 november 2002 @ 19:35:
Nou, het progje van mij is al af :) Wel iets anders gedaan dan de opdracht was, maar dat merk je van de buitenkant niet.

Link naar progje Klik :)

Nee het is geen virus of trojan. Puur een delphi progje.
Leuk begin, maar als je: "Dit is een zin, om RMW progje te testen." invoert, krijg je 8 spaties (klopt) en 7 zuivere woorden (klopt niet: moeten er 9 zijn). Je vergeet de woorden aan het begin en het einde van de zin mee te tellen, of om leestekens (komma en punt) als woordbegrenzer te gebruiken. Stond niet helemaal zo in de omschrijving, maar gevoel zegt dat het wel moet... :Y)
Kijk eens in je code en zeg eens waar het "mis" gaat? Volgens mij zit het hem inderdaad in de komma en de punt... Maar een punt zou ik "het einde van de zin" noemen, zoals in de opdracht.
(Zou RMW nu zitten te debuggen om de zo verkregen assembler weer naar Delphi om te zetten? :X)

Zo scherp als een voetbal!


  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

Als ik je opdracht goed begreep zijn zuivere woorden alleen maar omgeven door twee spaties en lijkt de uitkomst me goed!

If you are not wiping out you are nog pushing enough...


  • SuperPotato
  • Registratie: Oktober 2001
  • Laatst online: 04-06 22:25
Vanuit die vriend van me > bedankt iedereen, ik zie dat jullie aardig je best hebben gedaan :)

Ik krijg zojust de vraag door of iemand de sourcecode kan posten, omdat hij dll errors krijgt in combinatie met Delphi 5...

  • Michael Knight
  • Registratie: November 2002
  • Laatst online: 28-08 09:22

Michael Knight

Moderator Consumentenelektronica

KITT, I need you buddy!

Hoi ik ben dus die vriend van -RMW- Ik wil jullie ff hartstikke bedanken voor jullie inzet.
Ik hoop dat ik ooit hetzelfde kan betekenen....

toch heb ik 1 klein vraagje: ikzelf gebruik delphi v.5 en dit progje is met een andere versie gemaakt.

Zou je de directe code misschien willen posten aangezien delphi v5 hem niet kan openen .....of iemand die dat kan...nogmaals bedankt.

ZOU WIE DAN OOK HET PROGJE (zie link paar posts boven) FF KUNNEN INLEZEN\
IN DELPHI EN DAN DE CODE KUNNEN POSTEN.......ECHT HARTSTIKKE BEDANkT!!

:)

(Zeldzame) retrogames en meer --> Aangeboden op V&A


  • Harmsen
  • Registratie: November 2000
  • Laatst online: 12:44
Michael Knight schreef op 04 november 2002 @ 09:45:
Hoi ik ben dus die vriend van -RMW- Ik wil jullie ff hartstikke bedanken voor jullie inzet.
Ik hoop dat ik ooit hetzelfde kan betekenen....

toch heb ik 1 klein vraagje: ikzelf gebruik delphi v.5 en dit progje is met een andere versie gemaakt.

Zou je de directe code misschien willen posten aangezien delphi v5 hem niet kan openen .....of iemand die dat kan...nogmaals bedankt.

ZOU WIE DAN OOK HET PROGJE (zie link paar posts boven) FF KUNNEN INLEZEN\
IN DELPHI EN DAN DE CODE KUNNEN POSTEN.......ECHT HARTSTIKKE BEDANkT!!

:)
Dude, dat is een .exe bestand. Die kan je niet zomaar openen in Delphi om dan te source code te zien. De source code kan je wel krijgen, mits je je eigen probeersel hier post, zodat wij kunnen zien dat je er zelf ook mee bezig bent. Anders leer je er helemaal niks van.
Leuk begin, maar als je: "Dit is een zin, om RMW progje te testen." invoert, krijg je 8 spaties (klopt) en 7 zuivere woorden (klopt niet: moeten er 9 zijn). Je vergeet de woorden aan het begin en het einde van de zin mee te tellen, of om leestekens (komma en punt) als woordbegrenzer te gebruiken. Stond niet helemaal zo in de omschrijving, maar gevoel zegt dat het wel moet...
Kijk eens in je code en zeg eens waar het "mis" gaat? Volgens mij zit het hem inderdaad in de komma en de punt... Maar een punt zou ik "het einde van de zin" noemen, zoals in de opdracht.
(Zou RMW nu zitten te debuggen om de zo verkregen assembler weer naar Delphi om te zetten? )
Zoals ik las, moest een woord omgeven zijn door spaties of het einde/begin van de zin en geen leesteken bevatten. De punt achter de zin reken ik dus als een leesteken en daarom telt hij die niet mee. Kijk maar naar het voorbeeld, daar rekent hij de uitroepteken aan het eind ook niet mee. Maar eventueel is dat makkelijk te veranderen.

What a fine day for Science! | Specs


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 29-08 22:51

D2k

tja ik vind het toch te ver gaan
we zijn hier niet om je aan het handje te nemen

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.