Registreer FAQ Ledenlijst Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 15-12-2001, 18:08
11001-110
11001-110 is offline
Ik zit met een klein probleempje, ik moet voor wiskunde iets in qbasic programmeren, gedeeltelijk lukt het wel, maar gedeeltelijk niet.
Ik moet een soort kunstwerk programmeren, het is een kunstwerk oorspronkelijk van Ellsworth Kelly (de 'Seine'), in dit kunstwerk zit een bepaalde structuur, het is horizontaal in kolommen verdeeld(kolommen voor waarden van x, dus kolommen lopen zelf verticaal), in de eerste kolom komt 1 blokje op een random y-hoogte, in de 2e kolom 2 blokjes, 3e kolom 3 etc, totdat de kolom volledig gevuld is, daarna moet hij echter weer aflopen.
Dit is wat ik tot nu toe heb:
CLS
SCREEN 9
WINDOW (-2, -2)-(6, 6)
randomize timer
for x = 0 to 4
for q = 1 to (x + 1)
T = x + 1
y = INT(RND * 5)
LINE (x, y)-((x+1), (y+1)), T, BF
next q
next x
end

Dit is natuurlijk nog heel erg simpel, en in deze code zit dus het probleem dat hij als hij een vlakje heeft ingekleurd, daarna weer random een y-hoogte kiest, en dus weer over het eerst-gekleurde vlakje heen kan kleuren, dat moet ik dus zien te voorkomen. De y-waarden van eerder gekleurde vlakjes moeten worden uitgeschakeld, dat lukt me alleen niet, helaas
Weet iemand wat ik ermee moet doen??
Alvast bedankt...


ik snap trouwens wel dat ik iets met arrays moet doen, alleen lukt dat nog niet zo goed..
hopelijk kan iemand me helpen

Met citaat reageren
Advertentie
Oud 15-12-2001, 18:43
Doc
Avatar van Doc
Doc is offline
't is heel lang geleden dat ik daarmee werkte...maar dit moet 't ongeveer zijn..

Code:
Dim Shared ArrayY(10000) '10000 Zal denk ik wel goed zijn.

' Plaats een getal in de Array
Sub SetYCoord(val1 As Integer)
  ArrayY(UBound(ArrayY)+1) = val1
End Sub

' Kijk of ie al bestaat, zo ja return = 1
Function CheckYCoord(val1 As Integer) As Integer
  For i = 1 To UBound(ArrayY)
    If ArrayY(i) = val1 Then
      CheckYCoord = 1
      Exit Function
    End If
  Next i
  CheckYCoord = 0
End Function
Ik hoop dat 't nog een b-tje werkt, 't is ongetest
__________________
Ik ontken met kracht dat ik erkenning geef aan mensen die onkennen te erkennen onkennend miskend te zijn...:p
Met citaat reageren
Oud 15-12-2001, 19:29
11001-110
11001-110 is offline
in ieder geval heel erg bedankt, ik zal het proberen !
Met citaat reageren
Oud 15-12-2001, 22:32
11001-110
11001-110 is offline
het lukt nog niet echt, hoe kan ik dit implanteren in die code die ik al had geschreven (die eigenlijk nog niets voorstelde)?
Met citaat reageren
Oud 16-12-2001, 14:11
Doc
Avatar van Doc
Doc is offline
Nou dan probeer ik 't wel ff voor je te schrijven....

Code:
Dim Shared ArrayY(10000) '10000 Zal denk ik wel goed zijn.

' Plaats een getal in de Array
Sub SetYCoord(val1 As Integer)
  ArrayY(UBound(ArrayY)+1) = val1
End Sub

' Kijk of ie al bestaat, zo ja return = 1
Function CheckYCoord(val1 As Integer) As Integer
  For i = 1 To UBound(ArrayY)
    If ArrayY(i) = val1 Then
      CheckYCoord = 1
      Exit Function
    End If
  Next i
  CheckYCoord = 0
End Function

CLS
SCREEN 9
WINDOW (-2, -2)-(6, 6)
RANDOMIZE TIMER
FOR x = 0 TO 4
  FOR q = 1 TO (x + 1)
    T = x + 1
fallback:
    y = INT(RND * 5)
    IF CheckYCoord(y) = 1 THEN GOTO fallback
    LINE (x, y)-((x+1), (y+1)), T, BF
  NEXT q
NEXT x
END
LET OP: Er zit geen einde aan 't script, dus 't zal continu door zoeken in de array tot 'ie een niet bestaande Y-Coord heeft gevonden. Als alles gebruikt is blijft ie nog wel doorzoeken, zonder resultaat uiteraard. Je zult 'm daarom zelf moeten afbreken, of een exception in moeten bouwen.
__________________
Ik ontken met kracht dat ik erkenning geef aan mensen die onkennen te erkennen onkennend miskend te zijn...:p
Met citaat reageren
Oud 29-12-2001, 15:13
11001-110
11001-110 is offline
Hey,

sorry dat ik niet eerder kon antwoorden, mijn computer was kapot, en met alle drukte rondom kerst e.d. duurde het nogal lang.
In ieder geval hartstikke bedankt voor de moeite, maar deze code werkt niet...
Heeft iemand enig idee hoe ik het anders wel zou kunnen doen, zodat het wel zou werken ?
Bij voorbaat dank!
Met citaat reageren
Oud 30-12-2001, 00:11
MmmaartennN
Avatar van MmmaartennN
MmmaartennN is offline
Citaat:
11001-110 schreef:
Hey,

sorry dat ik niet eerder kon antwoorden, mijn computer was kapot, en met alle drukte rondom kerst e.d. duurde het nogal lang.
In ieder geval hartstikke bedankt voor de moeite, maar deze code werkt niet...
Heeft iemand enig idee hoe ik het anders wel zou kunnen doen, zodat het wel zou werken ?
Bij voorbaat dank!
Als je de code een beetje aanpast werkt het misschien wel... Wat is de error msg? (als die er is) De code is overigens niet af, het is een oneindige lus. Je moet het dus iig zelf nog een beetje bewerken.
Met citaat reageren
Oud 30-12-2001, 10:36
Cybernetic Dreams
Avatar van Cybernetic Dreams
Cybernetic Dreams is offline
Code:
„*SCREEN 12
„*RANDOMIZE TIMER
„*DIM c(64, 96)
„*
„*
„*loopje:
„*aant = aant + 1
„*
„*xx = xx + 1
„*IF xx = 64 THEN END
„*
„*
„*IF aant < 12 THEN
„*FOR k = 0 TO aant
„*nieuwgetal1:
„*yy = INT(RND * 96)
„*FOR x = 0 TO 64
„*IF c(x, yy) = 1 THEN GOTO nieuwgetal1
„*NEXT x
„*c(xx, yy) = 1
„*c(23 - xx, yy) = 1
„*NEXT k
„*END IF
„*
„*
„*FOR x = 0 TO 64
„*FOR y = 0 TO 96
„*IF c(x, y) = 1 THEN LINE (x * 10, y * 5)-(x * 10 + 9, y * 5 + 4), 15, BF
„*NEXT y
„*
„*
„*NEXT x
„*LOCATE 1, aant: PRINT aant
„*GOTO loopje
__________________
♥
Met citaat reageren
Oud 30-12-2001, 11:31
Marc S
Marc S is offline
Citaat:
Doc schreef:
't is heel lang geleden dat ik daarmee werkte...maar dit moet 't ongeveer zijn..
Doc, wat onder Visual Basic werkt, hoeft nog lang niet te werken onder QBASIC

Vooral het werken met functions die directe waardes retourneren, kent QBASIC niet. Je hebt wel GOSUB en EXIT SUB geloof ik, maar meer niet.

't is voor mij ook erg lang geleden (nu al bijna 6 jaar), maar geloof dat dit het probleem is hier
Met citaat reageren
Oud 30-12-2001, 14:18
McMotion
Avatar van McMotion
McMotion is offline
volgens mij kan je wel functions maken die waardes teruggeven onder qbasic hoor (tenminste is wat ik mij van quickbasic herinner, en volgens mij is de taal precies hetzelfde)

'k weet het niet zeker maar zoiets kan ik me nog wel herinneren
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
Met citaat reageren
Oud 30-12-2001, 14:20
McMotion
Avatar van McMotion
McMotion is offline
Citaat:
Cybernetic Dreams en Doc schreven:
GOTO
wat is dit nou weer kinders, iedereen heeft het net met moeite uit z'n hoofd gekregen en nu wordt het gebruikt als voorbeeld!?
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
Met citaat reageren
Oud 30-12-2001, 14:33
Marc S
Marc S is offline
Citaat:
McMotion schreef:
wat is dit nou weer kinders, iedereen heeft het net met moeite uit z'n hoofd gekregen en nu wordt het gebruikt als voorbeeld!?
LoL

Trouwens over het gebruik van functies: er was wel iets inderdaad, maar niet in de stijl waarop Doc het voorgeeft. Ik werkte ook vooral met PowerBASIC...

Na ja, boeit me ook niet echt meer. Ik voel me net alsof ik terug in de steentijd ga ofzo
Met citaat reageren
Oud 30-12-2001, 19:04
11001-110
11001-110 is offline
In ieder geval hartstikke bedankt voor jullie replies, vooral van Cybernetic Dreams!
Dit komt namelijk heel aardig in de richting waar ik het moet hebben

En ja, ik weet dat Qbasic nou niet echt meer de meest gebruikte taal is om te programmeren. Maar het is gewoon een opdracht voor wiskunde, waar het vooral om de wiskundige aspecten van het programmeren gaat, dus om de wiskunde erachter te leren.
En daarvoor is qbasic denk ik wel geschikt, al is het natuurlijk eigenlijk best wel uit de steentijd
Met citaat reageren
Oud 31-12-2001, 16:23
Chimera
Avatar van Chimera
Chimera is offline
Beetje wel. Maar Basic is een prachttaal als het op het snel leren van programmeren aankomt.

Jammer is dat je jezelf de verkeerde dingen aanleert (GOTO is very VERY evil) maar dat terzijde
Met citaat reageren
Oud 31-12-2001, 16:43
11001-110
11001-110 is offline
Citaat:
Chimera schreef:
Jammer is dat je jezelf de verkeerde dingen aanleert (GOTO is very VERY evil) maar dat terzijde

Ik weet het, qbasic is ook alleen maar even voor tijdelijk, alleen even een opdracht voor wiskunde, verder wil ik er niets mee.
Het is me nu eindelijk wel gelukt met die array's !! Dus in ieder geval hartstikke bedankt voor alle hulp. Er zijn nu wel weer andere problemen, maar dat komt wel goed....hoop ik...
Maar welke programmeertalen zou je aanraden voor dit soort opdrachten?
Zelf ben ik ook meer bezig met java en sql (maar kan het ook nog niet echt goed, maar al vallende leert men he...)
Leraar wilde graag dat ik dit in qbasic deed.

Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Huiswerkvragen: Exacte vakken wiskunde, opdracht in qbasic...
11001-110
8 15-12-2001 18:09


Alle tijden zijn GMT +1. Het is nu 17:34.