[OPGELOST]CHR(0)

Jaarvak op 7 studiepunten
Forumregels
Misschien werd je vraag al vorig jaar gesteld? Gebruik dus eerst de zoekoptie!

Er zijn formularia/samenvattingen aanwezig op de volgende link: viewtopic.php?f=19&t=93
Gebruikersavatar
Minnebo
IRW-FAN!
IRW-FAN!
Berichten: 454
Lid geworden op: 29 sep 2008, 19:00

[OPGELOST]CHR(0)

Berichtdoor Minnebo » 23 jun 2009, 14:53

Is er iemand waarbij dat ding deftig werkt?

Want bij oefening CS3 moet je dat gebruiken.

Ik het het als volgt aangepakt:

Code: Selecteer alles

MODULE CS3;
<* WOFF + *> <* NOOPTIMIZE + *>
    FROM IO IMPORT RdChar, WrChar, WrStr, RdStr, WrLn, RdCard, WrCard, RdInt, WrInt, RdReal, WrReal, RdLn, RdKey;     (* import general procedures *)

    CONST ARRAY_SIZE=30;             (* constants *)

    VAR String: ARRAY[1..ARRAY_SIZE] OF CHAR;
    a:CHAR;              (* variable-declarations *)
    i,j,palindroom,lengte:CARDINAL;

BEGIN
    WrLn;
    (*beginwaarden*)
    i:=1;
    palindroom:=0;
    WrStr("geef a.u.b. het woord in"); WrLn;

    (*array vullen*)
    REPEAT
    String[i]:=RdChar();
    WrChar(String[i]);WrCard(i,10);
    WrLn;
    i:=i+1;
    UNTIL String[i-1]=CHR(0);
    END CS3.


het ding is vooral dat hij bij mij niet uit m'n Repeat-lus gaat.
Nogtans zeg ik dat als de waarde van de stringarray van het element dat hij juist heeft ingevuld CHR(0) is hij moet stoppen...
Snars er de snap van!
Afbeelding
It's ok, I'm a ninja.
murda
Regelmatig forumgebruiker
Regelmatig forumgebruiker
Berichten: 57
Lid geworden op: 26 okt 2008, 17:10

Re: CHR(0)

Berichtdoor murda » 23 jun 2009, 15:00

Code: Selecteer alles

MODULE C3;

FROM Graph IMPORT Init, Plot, Exit;
FROM Graph IMPORT _clrBLUE, _clrGREEN, _clrRED, _clrWHITE, _clrBLACK;
FROM IO IMPORT RdCard, WrStr, WrChar, WrCard, WrLn, RdLn, RdChar, RdStr, KeyPressed, WrFixReal, RdLnOnWr,RdKey;
FROM RealMath IMPORT sin, pi, cos;
FROM Lib IMPORT Delay;  (* Wait n milliseconds *)

CONST
  MAXLETTERS = 30;

VAR
  length,index : CARDINAL;
  woord : ARRAY [1..MAXLETTERS] OF CHAR;
  palindrome : BOOLEAN;
BEGIN
  WrLn;
  WrStr('Wat is uw woord?' );
  RdStr(woord);
  palindrome:=TRUE;
  length:=1;
  WHILE woord[length+1] <> CHR(0) DO
  length:=length+1
  END;

  IF (length MOD 2) = 1 THEN
    FOR index:=1 TO ((length-1)/2) DO
      IF (woord[index] <> woord[length-index+1]) THEN
        palindrome := FALSE;
      END;
    END;
  ELSE
    FOR index:=1 TO (length/2) DO
      IF (woord[index] <> woord[length-index+1]) THEN
        palindrome := FALSE;
      END;
    END;
  END;

  IF palindrome THEN
  WrStr('Het woord is een palindroom');
  ELSE
  WrStr('Het woord is geen palindroom');
  END        
END C3.


Voila das mijn code kijk er is naar :)
Tom
Doctor in de forumwetenschappen
Doctor in de forumwetenschappen
Berichten: 3851
Lid geworden op: 05 okt 2008, 08:11
Locatie: Vilvoorde

Re: CHR(0)

Berichtdoor Tom » 23 jun 2009, 15:11

Code: Selecteer alles

MODULE Palindrome;
<* WOFF + *> <* NOOPTIMIZE + *>
    FROM IO IMPORT RdChar, WrChar, WrStr, RdStr, WrLn, RdCard, WrCard, RdInt, WrInt, RdReal, WrReal, RdLn;     (* import general procedures *)

    VAR string,nstring:ARRAY[1..30] OF CHAR;
        i,k,l:CARDINAL;
BEGIN
k:=0;
WrLn;
WrStr("Give a word");
    WrLn;
    RdStr(string);   
   REPEAT   
   INC(k);
   UNTIL string[k] = CHR(0);
   k:=k-1;
FOR i:=1 TO k DO
nstring[i]:=string[k-i+1];
END;
WrStr("Aantal Tekens:"); WrCard(k,0); WrLn;
WrStr("Nieuw Woord:");WrStr(nstring); WrLn;



   
FOR i:=1 TO k DO
IF nstring[i] = string[i] THEN
 INC(l);
 END;
 END;
 IF l=k THEN
 WrStr("Dit is een palindroom!");
 ELSE
 WrStr("Dit is geen palindroom!");
 END;
 WrLn;
END Palindrome.



Dit is wat ik ervan maakte
Het kan wss efficienter enzo , maar goed...
Gebruikersavatar
AdamCooman
The IRW God
The IRW God
Berichten: 2376
Lid geworden op: 28 nov 2007, 18:19
Locatie: Aalst
Contacteer:

Re: CHR(0)

Berichtdoor AdamCooman » 23 jun 2009, 15:18

Code: Selecteer alles

    (* laat de string invullen *)
    WrStr("geef a.u.b. het woord in"); WrLn;
    RdStr(String);

(* bepaal de lengte *)
i := 1
REPEAT
i:=i+1;
UNTIL String[i]=CHR(0);
i := i-1;

(* check of het een palindroom is *)
palindroom := TRUE
FOR j:=1 TO i/2 DO
   IF NOT(String[j]=String[i-j]) THEN
      palindroom := FALSE;
   END;
END;

(* zeg wat het is *)
IF palindroom THEN
WrStr("Het is een palindroom");WrLn;
ELSE
WrStr("Het is geen palindroom");WrLn;
END;


das een andere
AdamCooman The IRW God
Als een link niet meer werkt, bezoek mijn site om het bestand te vinden
Afbeelding

Mooiste avatar: AdamCooman
Beste moderator: AdamCooman

Terug naar “Informatica”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast

cron