[opgelost]Modula 2 vraag

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
Tom
Doctor in de forumwetenschappen
Doctor in de forumwetenschappen
Berichten: 3851
Lid geworden op: 05 okt 2008, 08:11
Locatie: Vilvoorde

[opgelost]Modula 2 vraag

Berichtdoor Tom » 03 feb 2009, 15:12

Ik heb een programmatje gemaakt voor de fun met 2 bewegende bollen, en een lijn die de bollen verbindt, nu wil ik de afstand tussen die 2 bollen op het scherm weergeven
Ik gebruik hiervoor:
RawOutText (500, 50,_clrCYAN, "Afstand:");

Nu wil ik echter dat de text luidt: "Afstand:" + a
Waarbij a de afstand is, uitgedrukt als REAL
maar aangezien een REAL geen tekst is, geeft dit uiteraard foutmeldingen
Dus ik zoek iets om dit getal om te zetten naar tekst
(in vb.net zou dit a.tostring zijn, maar in modula weet ik het niet :p )

Weet iemand het overeenkomstige commando? :)
Laatst gewijzigd door Tom op 03 feb 2009, 18:03, 1 keer totaal gewijzigd.
Beerend
IRW-FAN!
IRW-FAN!
Berichten: 313
Lid geworden op: 30 sep 2008, 18:15
Locatie: Mechelen
Contacteer:

Re: Modula 2 vraag

Berichtdoor Beerend » 03 feb 2009, 15:30

Je kan altijd eens kijken naar spelletjes van vorig jaar. Er is altijd wel eentje dat de score weergeeft.

In 1 van de standaardbibliotheken zou wel zo'n functie moeten zitten.

Ik heb even in Str.def gekeken en vond volgende functies:

Code: Selecteer alles

PROCEDURE IntToStr (     V: LONGINT;
                     VAR S: ARRAY OF CHAR;
                      Base: CARDINAL;
                    VAR OK: BOOLEAN);

PROCEDURE CardToStr(     V: LONGCARD;
                     VAR S: ARRAY OF CHAR;
                      Base: CARDINAL;
                    VAR OK: BOOLEAN);

PROCEDURE RealToStr(        V: LONGREAL;
                    Precision: CARDINAL;
                          Eng: BOOLEAN;
                        VAR S: ARRAY OF CHAR;
                      VAR OK : BOOLEAN);

PROCEDURE FixRealToStr(        V: LONGREAL;
                       Precision: CARDINAL;
                           VAR S: ARRAY OF CHAR;
                          VAR OK: BOOLEAN);
Tom
Doctor in de forumwetenschappen
Doctor in de forumwetenschappen
Berichten: 3851
Lid geworden op: 05 okt 2008, 08:11
Locatie: Vilvoorde

Re: Modula 2 vraag

Berichtdoor Tom » 03 feb 2009, 15:48

ik had het ook net gevonden, maar het gebruik ervan lukt precies niet goed

Hoe zet je om van REAL naar LONGREAL?

En waarvoor staan al die booleans in die procedure RealToStr?
Beerend
IRW-FAN!
IRW-FAN!
Berichten: 313
Lid geworden op: 30 sep 2008, 18:15
Locatie: Mechelen
Contacteer:

Re: Modula 2 vraag

Berichtdoor Beerend » 03 feb 2009, 16:12

tom_ schreef:ik had het ook net gevonden, maar het gebruik ervan lukt precies niet goed

Hoe zet je om van REAL naar LONGREAL?

En waarvoor staan al die booleans in die procedure RealToStr?


REAL naar LONGREAL zou moeten lukken met de VAL(type, variabele) functie moeten lukken.

En die boolean is volgens mij een variabele waarin dan wordt aangegeven of de type-conversie succesvol uitgevoerd is, wat ik persoonlijk een beetje idioot vind aangezien dat evengoed als resultaat van de functie kan gestuurd worden.

Nogmaals: sowieso dat het gebruikt wordt in spelletjes van vorige jaren.
Tom
Doctor in de forumwetenschappen
Doctor in de forumwetenschappen
Berichten: 3851
Lid geworden op: 05 okt 2008, 08:11
Locatie: Vilvoorde

Re: Modula 2 vraag

Berichtdoor Tom » 03 feb 2009, 16:24

ja ik heb gekeken in andere spelletjes, maar ik vond dat het vaag bleef :p

Ik heb
RealToStr(VAL(LONGREAL,a),0,TRUE,b,TRUE);
Maar hoe moet ik mijn b declareren?

Ik probeerde al ARRAY OF CHAR, maar dat gaat niet
Beerend
IRW-FAN!
IRW-FAN!
Berichten: 313
Lid geworden op: 30 sep 2008, 18:15
Locatie: Mechelen
Contacteer:

Re: Modula 2 vraag

Berichtdoor Beerend » 03 feb 2009, 17:05

Je moet de array een dimensie meegeven? ARRAY[1..10] lijkt me wel voldoende voor een afstand in op te slaan.
Tom
Doctor in de forumwetenschappen
Doctor in de forumwetenschappen
Berichten: 3851
Lid geworden op: 05 okt 2008, 08:11
Locatie: Vilvoorde

Re: Modula 2 vraag

Berichtdoor Tom » 03 feb 2009, 17:20

had dat gedaan, maar had 3 puntjes gezet ipv 2, dom :p

Nu krijg ik:designator is read-only
als foutmelding
Het heeft met die RealToStr te maken

edit: dan werkt het nog niet, je kan string constant niet combineren met array of char
Beerend
IRW-FAN!
IRW-FAN!
Berichten: 313
Lid geworden op: 30 sep 2008, 18:15
Locatie: Mechelen
Contacteer:

Re: Modula 2 vraag

Berichtdoor Beerend » 03 feb 2009, 17:24

Laatste parameter moet een variabele zijn van het boolean type, niet TRUE of FALSE.

Aangezien het in Str.def is, is er misschien een speciaal type gedefinieerd voor strings dat je kan gebruiken ipv direct een ARRAY of CHAR.
Tom
Doctor in de forumwetenschappen
Doctor in de forumwetenschappen
Berichten: 3851
Lid geworden op: 05 okt 2008, 08:11
Locatie: Vilvoorde

Re: Modula 2 vraag

Berichtdoor Tom » 03 feb 2009, 17:32

ok, het RealToStr is gelukt nu
Enkel nog die string + ARRAY of Char
Volgens mij lijkt het me evidenter om die string constant om te zetten naar een array of char
(maar dan kom ik met de RawOutText vast in de problemen)

in de str module vind ik niks meer dat ik kan gebruiken op het eerste zicht


Edit: het is gelukt, echter met een tamelijk non-chalante oplossing :p
(2x een rawouttext gemaakt, en naast elkaar gezet)
Beerend
IRW-FAN!
IRW-FAN!
Berichten: 313
Lid geworden op: 30 sep 2008, 18:15
Locatie: Mechelen
Contacteer:

Re: Modula 2 vraag

Berichtdoor Beerend » 03 feb 2009, 17:47

Je kan niet zomaar strings optellen in Modula. In VB(.NET) is het allemaal erg makkelijk omdat daar een standaard stringtype is dat automatisch bepaalde functies ondersteunt.

In Modula werk je met arrays en niet met 'echte' strings zoals in VB, dus moet je zelf een procedure schrijven die teksten bij elkaar voegt.

Terug naar “Informatica”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast

cron