QBasic

in ben in QBasic een programma aan het schrijven.
een stukje:

INPUT "Getal: ", getal%

Nu wil is dat er gecontroleerd word of de ingevulde waarde wel cijfers zijn en geen letters.

Weet iemand hoe dat moet?

Hugo Welther

Moderator

Input validatie routine maken.

Zie hier voor voorbeelden: http://members.lycos.co.uk/brisray/qbasic/qind.htm
"Input" aanklikken. Nadat je door de lycos reclame heen bent.

Het enige dat tussen jou en je doel staat is alles wat jij jezelf verteld dat je het niet kan.

Je variabele is een integer. QB geeft dan toch automatisch een foutmelding als er letters ingevuld worden?

Hello, I'm a signature virus. Please copy me into Hello, I'm a signature virus scanner. I succesfully deleted your signature virus.

Het is 15 jaar geleden bij mij , ik zal mijn best doen .
Ik loste dat op met IF.....then ....else en for ...next
Dim A ( 10 ) ( naargelang de situatie bij u)
for A = 1 to 10
read A
if A <>( ongelijk? vergeten) 1,2,3 etc then .....
next A
Ik twijfel over het rteken "ongelijk"....Spijtig heb ik dat boek weggedaan .....
Zoals gezegt , het is bij mij 15 jaar of langer geleden , en ik had atari basic ,maar veel dingen zijn hetzelfde
Je moet in basic veel improviseren .Die commas die ik tussen de getalklen zette kunnen ook ; zijn ( punt - comma)

Sine

Moderator

Idd, als je gewoon zegt "input A" errort hij standaard op alles wat niet numeriek is.

wil je dat niet wordt je variabele A$

Hugo Welther

Moderator

Op 16 december 2005 21:35:48 schreef Sine:
Idd, als je gewoon zegt "input A" errort hij standaard op alles wat niet numeriek is.

wil je dat niet wordt je variabele A$

Da's toch een "fatal error" je programma stopt dan, voor zover ik mij kan herinneren van vroeger.

Het enige dat tussen jou en je doel staat is alles wat jij jezelf verteld dat je het niet kan.

En eenmaal "error" verbeterd , moet je daar nog weggeraken ....zonder opnieuw te moeten beginnen

Op 16 december 2005 21:48:01 schreef Hugo Welther:
[...]
Da's toch een "fatal error" je programma stopt dan, voor zover ik mij kan herinneren van vroeger.

Met basic kon en kun je veel improviseren . Als je het juiste commando gaf ging hij wel verder , ( Bij A$ leest hij alles ) . Je moest de computer zover krijgen dat hij dat onthield en op het einde melde . Ik weet niet of dat kon . Ik kon het niet

free_electron

Silicon Member

input a
if str$(val(a)) <> a then
print " not a number"
end if

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM

Tja , zo , maar dn print hij dat wel , midden in je programma ...Dat dan wel om zeep is .
Ik geloof dat je de computer kon doen fluiten , en zelfs wachten met "wait" . Q basic had die commandos .

Op 16 december 2005 21:02:54 schreef nj:
in ben in QBasic een programma aan het schrijven.
een stukje:

INPUT "Getal: ", getal%

Nu wil is dat er gecontroleerd word of de ingevulde waarde wel cijfers zijn en geen letters.

Weet iemand hoe dat moet?

kijk als de asc() van de invoer wel tussen de waardes van de getallen ligt.

wel eerst met mid, de invoer opsplitsen in afzonderlijke karakters, en de controle doen voor elke letter.

als er eentje tussenzit die niet mocht --> de lus verlaten, en opnieuw invoer vragen ofzo

Er was wel een naam (basic) maar er waren vele verschillende versies van . De basic die in electuur gebruikt werd werd dikwijls niet aanvaard door Atari . En Qbasic was weer anders .....

Hugo Welther

Moderator

Voor de PC: (80x86 chip)

QBacic was van IBM en werd standaard met de originele IBM PC (XT) meegeleverd.

GW-Basic was de Microsoft variant, meegeleverd met de klonen.

Turbo-Basic van Borland, nu R.I.P.

PowerBasic was van Australisch origine, en bestaat nog steeds.

En zo had je nog wat vrianten.

Het enige dat tussen jou en je doel staat is alles wat jij jezelf verteld dat je het niet kan.

Zelfs een basic met commando's in het Frans, maar ik ben de naam vergeten!

KT88

Overleden

Op 16 december 2005 22:48:53 schreef Bertrix:
Zelfs een basic met commando's in het Frans, maar ik ben de naam vergeten!

Basique.

" Ratings are for transistors.....tubes have guidelines" - www.audioconsultancy.nl -
Hugo Welther

Moderator

Op 16 december 2005 22:49:37 schreef KT88:
[...]
Basique.

Dat draaide ook niet op een computer, maar op een ordinateur.

Het enige dat tussen jou en je doel staat is alles wat jij jezelf verteld dat je het niet kan.

Het was plezant als je een boek gekocht had met comandos uit een andere versie ....
Vooral met die "save" formules . Ik bedoel om gegevens op te slaan die je de volgende dag weer wilde gebruiken .
Die waren altijd foetsie ....
Op het laatst met QBasic lukte me dat goed

Evarist

Golden Member

Op 16 december 2005 21:02:54 schreef nj:
in ben in QBasic een programma aan het schrijven.
een stukje:

en ik maar visual basic leren :)

Nihil est verum, quod non probatur primo.
free_electron

Silicon Member

Op 16 december 2005 23:11:44 schreef Hugo Welther:
[...]
Dat draaide ook niet op een computer, maar op een ordinateur.

en twas ook geen programma maar 'un logiciel' :)

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
free_electron

Silicon Member

Op 16 december 2005 22:11:33 schreef Mon1935:
Tja , zo , maar dn print hij dat wel , midden in je programma ...Dat dan wel om zeep is .
Ik geloof dat je de computer kon doen fluiten , en zelfs wachten met "wait" . Q basic had die commandos .

code:


leesgetal:
 fouteingave=0 
 input a
 if str$(val(a)) <> a then
    Beep
    fouteingave=1
 end if
 if fouteingave=1 then goto leesgetal

enzovoort.

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM

was het niet met var# dat het type als real benaderde?

free_electron

Silicon Member

Op 16 december 2005 22:45:12 schreef Hugo Welther:
Voor de PC: (80x86 chip)

QBacic was van IBM en werd standaard met de originele IBM PC (XT) meegeleverd.

GW-Basic was de Microsoft variant, meegeleverd met de klonen.

Turbo-Basic van Borland, nu R.I.P.

PowerBasic was van Australisch origine, en bestaat nog steeds.

En zo had je nog wat vrianten.

Vergeet BasicA niet. die zat in de BIOS van de originele ibm PC XT en startte op als ie geen bootsector vond op zijn schijven.

Turbo Basic was in feite PowerBasic 1.1 . Borland zat in lastige papieren en wou niet blijven betalen voor de licentierechten ervoor. dus is het terug standalone gegaan.

Powerbasic is inderdaad nog altijd in omloop en een van de weinige compilers die nog een echte executable kunnen maken die (ook) kan lopen onder DOS. Powerbasic heeft geen runtime library nodig. je kan ook inline assembler schrijven. ik gebruik het ding wel eens om DLL's te maken met speciale bewerkingen in die snel moeten gaan. de code die uit PB komt is zelfs sneller dan wat je met bijvoorbeeld VC of C++ compileert.

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM

Powerbasic heb ik lange tijd gebruikt maar na een discussie met de fabrikant ben ik overgeschakeld op Freebasic. Ik ben nog wel bezig alle PB 'goodies' naar FB te vertalen. De grootte van FB executables zijn in de meeste gevallen zelfs kleiner dan die van PB en hebben ook geen runtime libraries nodig. Gisteren nog getest, buiten de syntax aanpassingen net dezelfde code, FB:6656 bytes en PB:11264 bytes. Dat is bijna de helft :)

Als je dos programma's wil maken in PB dan heb je een andere versie nodig (PBCC), in FB hoeft dat niet en werkt ook op Linux of Xbox.

GJ_

Moderator

kon dat niet door gewoon vooraan in het programma te zetten:
ON ERROR GOSUB.....

en dan daar aan de hand van een error nummer een melding te geven en als laatste een RESUME?

Op 16 december 2005 21:31:04 schreef Mon1935:
Het is 15 jaar geleden bij mij , ik zal mijn best doen .
Ik loste dat op met IF.....then ....else en for ...next
Dim A ( 10 ) ( naargelang de situatie bij u)
for A = 1 to 10
read A
if A <>( ongelijk? vergeten) 1,2,3 etc then .....
next A
Ik twijfel over het rteken "ongelijk"....Spijtig heb ik dat boek weggedaan .....
Zoals gezegt , het is bij mij 15 jaar of langer geleden , en ik had atari basic ,maar veel dingen zijn hetzelfde
Je moet in basic veel improviseren .Die commas die ik tussen de getalklen zette kunnen ook ; zijn ( punt - comma)

ik heb nu dit

input a
dim a(10)
for a = 1 to 10
read a
if a <> 1 then
next a

maar dan krijg ik de melding:
next without for
?????