ik heb een probleem bij een delphi opgave die ik aan het doen ben. het programma moet in een tekst de klinkers en medeklinkers tellen en deze als percentage van de totale lengte weergeven in een messagebox. eigenlijk ging alles goed, de for loop om de characters te tellen werkt ook prima.
maar als ik de integers van het aantal klinkers en medeklinkers om wil zetten in een percentage gebeurt er iets geks. ik gebruik deze berekening: (lengtetekst div iklinker) * 100. als ik bijvoorbeeld 5 keer een a invul dan is de lengte van de tekst 5 en komt er dus 100 % uit, dat klopt. dit werkt ook voor de medeklinkers.
het probleem komt als ik zowel klinkers als medeklinkers in mijn tekstvak typ. dan geeft hij als percentage opeens allebei 0 %?? hieronder staat de code die ik gemaakt heb, de fout zit hem in de berekening van de percentages denk ik, maar ik kan het probleem niet vinden. misschien jullie wel?
ik bebruik trouwens borland delphi 7.
ik hoop dat iemand me kan helpen, ik kan het probleem niet vinden. de search leverde me niet echt iets op, en google gaf niet het specifieke probleem wat ik had. vast bedankt!
maar als ik de integers van het aantal klinkers en medeklinkers om wil zetten in een percentage gebeurt er iets geks. ik gebruik deze berekening: (lengtetekst div iklinker) * 100. als ik bijvoorbeeld 5 keer een a invul dan is de lengte van de tekst 5 en komt er dus 100 % uit, dat klopt. dit werkt ook voor de medeklinkers.
het probleem komt als ik zowel klinkers als medeklinkers in mijn tekstvak typ. dan geeft hij als percentage opeens allebei 0 %?? hieronder staat de code die ik gemaakt heb, de fout zit hem in de berekening van de percentages denk ik, maar ik kan het probleem niet vinden. misschien jullie wel?
Delphi:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
| procedure TForm1.btnBerekenClick(Sender: TObject); var stekst: String ; cklinker, cmedeklinker: Char ; iKlinker, iMedeklinker, iPositiek, iPositiem, iLengtetekst, iPerklinkers, iPermedeklinkers: Integer; begin sTekst := mTekstinvoer.Text; iKlinker := 0; iMedeklinker := 0; //klinkers berekenen en opslaan for iPositiek := 1 to Length (sTekst) do begin cKlinker := UpCase (sTekst[iPositiek]); if cKlinker in ['A', 'E', 'I', 'O', 'U'] then iKlinker := iKlinker + 1 end; //medeklinkers berekenen en opslaan for iPositiem := 1 to Length (sTekst) do begin cMedeklinker := UpCase (sTekst[iPositiem]); if cMedeklinker in ['B'..'D','F'..'H', 'J'..'N', 'P'..'T', 'V'..'Z'] then iMedeklinker := iMedeklinker + 1 end; //percentages berekenen en weergeven, hier zit denk ik de fout. iLengtetekst := Length (sTekst); iPerklinkers := (iKlinker div iLengtetekst)*100; iPermedeklinkers := (iMedeklinker div iLengtetekst)*100; showmessage ('Percentage klinkers in uw tekst: ' + IntToStr (iPerklinkers) + ' Percentage medeklinkers in uw tekst: ' + IntToStr (iPermedeklinkers)); end; procedure TForm1.btnOpnieuwClick(Sender: TObject); begin mTekstinvoer.clear ; mTekstinvoer.setfocus ; end; end. |
ik bebruik trouwens borland delphi 7.
ik hoop dat iemand me kan helpen, ik kan het probleem niet vinden. de search leverde me niet echt iets op, en google gaf niet het specifieke probleem wat ik had. vast bedankt!
[ Voor 6% gewijzigd door newpegasus op 26-09-2004 10:50 ]