Ga naar inhoud

[QB] Som van variabelen optellen.


Aanbevolen berichten

Ik heb nu dit werkend nodig. voorbeeld: A = B/C B is een getal en dat getal wordt gedeelt door C en C is B min 1 en dan weer min 1. Maar dat heb ik al. Dus hier komt het op neer A = B/C-1 A = B/C-1-1 A = B/C-1-1-1 A = B/C-1-1-1-1 enz. En uit A komen dan verschillende getallen. Daar moet ik de som van hebben. Maar ik weet niet hoe ik dat moet doen. Kan ik ergens de getallen opzij zetten zodat Qbasic er later weer me rekenen kan? of kan het anders?
Link naar reactie
Als je weet hoeveel het er zijn: [code:1:8d4695823e] 'evt hier aangeven wat variabele 'aantal' is, anders 'aantal' veranderen dim getallen(aantal) getallen(1) = B/C-1 getallen(2) = B/C-1-1 getallen(3) = B/C-1-1-1 getallen(4) = B/C-1-1-1-1 getallen(5) = B/C-1-1-1-1-1 'enzovoort for x = 1 to aantal totaal = totaal + getallen(x) next [/code:1:8d4695823e]
Link naar reactie
Hieronder is er van uitgegaan dat je het getal waarmee je begint ook bij het totaal wil optellen. De getallen 50 en 20 moet je aan je eigen situatie aanpassen. [size=9:729bb960ca]Dim A(20) Begin = 50:Totaal = 0 For x = 1 to 20 A(x) = Begin/(Begin-x) Totaal = Totaal + A(x) Next x Totaal = Begin + Totaal [/size:729bb960ca]
Link naar reactie
Bij nader inzien vermoed ik dat het niet de bedoeling is dat op het eind het begingetal nog eens bij het totaal wordt opgeteld. Waarschijnlijk wil je de berekening gebruiken in een situatie waarbij je tot 0 terugtelt. Uitgaande van mijn vorige code met begingetal 50, moet de lus dan worden: For x = 1 to 49. De laatste regel moet dan vervallen, de berekende variabele Totaal (zonder Begin er bij opgeteld) is dan tevens het eindtotaal. De opdracht Dim A(20) uiteraard wijzigen in Dim A(49).
Link naar reactie
Bedankt voor de reactie's, maar hier kan ik niet mee wat ik nodig heb. Het moet zo gaan. [code:1:3e6cc3d1db] screen 12 X = 1 DO X = X + 1 PRINT X SLEEP 1 LOOP [/code:1:3e6cc3d1db] Telkens als ie LOOPt wordt X 1 hoger. Als X dan tot een bepaalt getal komt moet ie alle waarden die X daarvoor gehad heeft optellen. Bijv. X = 1 X = 2 X = 3 Dan moet ie die optellen is 6. (en dan moet ie dat getal vergelijken, maar dat snap ik wel.) Als dat is gebeurt dan doet ie het volgende. X = 1 X = 2 X = 3 X = 4 totaal is 10. enzovoort. Zo moet het als het waare zijn.
Link naar reactie
[quote:f75f3176ad="webspider"]Als je weet hoeveel het er zijn: [code:1:f75f3176ad] 'evt hier aangeven wat variabele 'aantal' is, anders 'aantal' veranderen dim getallen(aantal) getallen(1) = B/C-1 getallen(2) = B/C-1-1 getallen(3) = B/C-1-1-1 getallen(4) = B/C-1-1-1-1 getallen(5) = B/C-1-1-1-1-1 'enzovoort for x = 1 to aantal totaal = totaal + getallen(x) next [/code:1:f75f3176ad][/quote:f75f3176ad] Dat kan ik wel doen, maar het loopt in de miljoenen dus heb ik variabelen nodig.
Link naar reactie
[quote:63ad7e4c45="no_name"]Ik heb nu dit werkend nodig. voorbeeld: A = B/C B is een getal en dat getal wordt gedeelt door C en C is B min 1 en dan weer min 1. Maar dat heb ik al. Dus hier komt het op neer A = B/C-1 A = B/C-1-1 A = B/C-1-1-1 A = B/C-1-1-1-1 enz. En uit A komen dan verschillende getallen. Daar moet ik de som van hebben. Maar ik weet niet hoe ik dat moet doen. Kan ik ergens de getallen opzij zetten zodat Qbasic er later weer me rekenen kan? of kan het anders?[/quote:63ad7e4c45] SomAantal = (aantal * (B/C)) - (((aantal^2)/2) + (aantal*0.5))
Link naar reactie
Als je (uitgaande van de probleemstelling van gisteren) ook telkens de subtotalen wil weergeven (wat ik opmaak uit je tekst), dan hoeft het programma daarvoor niet wezenlijk te veranderen, je moet dan enkel een printopdracht geven om de subtotalen (die toch al berekend worden) op het scherm weer te geven. Probeer dit eens (in Qbasic uiteraard), voor de duidelijkheid laat ik alle tussenberekeningen weergegeven: [size=9:5835d60054] Dim A(4) Begin = 4:Totaal = 0 For x = 1 to 3 A(x) = Begin/(Begin-x) Totaal = Totaal + A(x) Print x, A(x), Totaal Next x [/size:5835d60054] Je krijgt nu 3 kolommen. In de 1e wordt de waarde van x weergegeven, in de 2e A/A-1, en in de 3e het (sub)totaal. Je krijgt dan: in [b:5835d60054]kolom[/b:5835d60054] 1: 1 - 2 - 3 In [b:5835d60054]kolom[/b:5835d60054] 2: 1,33 - 2 - 4 In [b:5835d60054]kolom[/b:5835d60054] 3: 1,33 - 3,33 - 7,33 Is ook dit niet wat je wenst, dan graag een [b:5835d60054]duidelijke omschrijving[/b:5835d60054] van het in principe eenvoudige probleem. PS: Ik begrijp niet wat je bedoelt met: "en dan moet ie dat vergelijken".
Link naar reactie
[quote:537b034608="Aimable"]Als je (uitgaande van de probleemstelling van gisteren) ook telkens de subtotalen wil weergeven (wat ik opmaak uit je tekst), dan hoeft het programma daarvoor niet wezenlijk te veranderen, je moet dan enkel een printopdracht geven om de subtotalen (die toch al berekend worden) op het scherm weer te geven. Probeer dit eens (in Qbasic uiteraard), voor de duidelijkheid laat ik alle tussenberekeningen weergegeven: [size=9:537b034608] Dim A(4) Begin = 4:Totaal = 0 For x = 1 to 3 A(x) = Begin/(Begin-x) Totaal = Totaal + A(x) Print x, A(x), Totaal Next x [/size:537b034608] Je krijgt nu 3 kolommen. In de 1e wordt de waarde van x weergegeven, in de 2e A/A-1, en in de 3e het (sub)totaal. Je krijgt dan: in [b:537b034608]kolom[/b:537b034608] 1: 1 - 2 - 3 In [b:537b034608]kolom[/b:537b034608] 2: 1,33 - 2 - 4 In [b:537b034608]kolom[/b:537b034608] 3: 1,33 - 3,33 - 7,33 Is ook dit niet wat je wenst, dan graag een [b:537b034608]duidelijke omschrijving[/b:537b034608] van het in principe eenvoudige probleem. PS: Ik begrijp niet wat je bedoelt met: "en dan moet ie dat vergelijken".[/quote:537b034608] Met "en dan moet ie dat vergelijken" bedoel ik dat het totaal met een cijfer dat ergens anders is berekent wordt vergelijkt. Wat jij op gaf is wel handig. Maar de getallen die ik heb zijn al berekent. En kunnen niet tussen For en next commando worden geplaatst. Is er niet iets dat je de getallen ergens kunt opslaan?
Link naar reactie
Zoals ik in het programmaatje getallen opsla in A(x), waarbij x variabel is, zo kun je ook andere waarden opslaan. Ik heb overigens geen flauw benul waar je heen wil. Als je nu eens in gewone woorden je probleem goed en duidelijk zou omschrijven, dan komen we misschien verder, want op deze manier weet ik niet wat ik hier verder mee aan moet.
Link naar reactie
[quote:e02760873c="no_name"][quote:e02760873c="Aimable"]Als je (uitgaande van de probleemstelling van gisteren) ook telkens de subtotalen wil weergeven (wat ik opmaak uit je tekst), dan hoeft het programma daarvoor niet wezenlijk te veranderen, je moet dan enkel een printopdracht geven om de subtotalen (die toch al berekend worden) op het scherm weer te geven. Probeer dit eens (in Qbasic uiteraard), voor de duidelijkheid laat ik alle tussenberekeningen weergegeven: [size=9:e02760873c] Dim A(4) Begin = 4:Totaal = 0 For x = 1 to 3 A(x) = Begin/(Begin-x) Totaal = Totaal + A(x) Print x, A(x), Totaal Next x [/size:e02760873c] Je krijgt nu 3 kolommen. In de 1e wordt de waarde van x weergegeven, in de 2e A/A-1, en in de 3e het (sub)totaal. Je krijgt dan: in [b:e02760873c]kolom[/b:e02760873c] 1: 1 - 2 - 3 In [b:e02760873c]kolom[/b:e02760873c] 2: 1,33 - 2 - 4 In [b:e02760873c]kolom[/b:e02760873c] 3: 1,33 - 3,33 - 7,33 Is ook dit niet wat je wenst, dan graag een [b:e02760873c]duidelijke omschrijving[/b:e02760873c] van het in principe eenvoudige probleem. PS: Ik begrijp niet wat je bedoelt met: "en dan moet ie dat vergelijken".[/quote:e02760873c] Met "en dan moet ie dat vergelijken" bedoel ik dat het totaal met een cijfer dat ergens anders is berekent wordt vergelijkt. [/quote:e02760873c] Dus het gaat jouw alleen om het uiteindelijke resultaat? Die vergeleken dient te worden met een ander getal. Zo ja, heb je mijn vorige reaktie, met de [url=http://forum.computertotaal.nl/phpBB2/viewtopic.php?p=492818#492818]formule, [/url]niet gezien ofzo? :-? [quote:e02760873c="no_name"] Wat jij op gaf is wel handig. Maar de getallen die ik heb zijn al berekent. En kunnen niet tussen For en next commando worden geplaatst. Is er niet iets dat je de getallen ergens kunt opslaan?[/quote:e02760873c] Wat wil je nou? Het gaat je toch alleen maar om het uiteindelijke resultaat? :-?
Link naar reactie
[quote:48a4a1fcf0="no_name"]Ik heb nu dit werkend nodig. voorbeeld: A = B/C B is een getal en dat getal wordt gedeelt door C en [b:48a4a1fcf0]C is B min 1 en dan weer min 1[/b:48a4a1fcf0]. Maar dat heb ik al. Dus hier komt het op neer A = B/C-1 A = B/C-1-1 A = B/C-1-1-1 A = B/C-1-1-1-1 enz. En uit A komen dan verschillende getallen. [b:48a4a1fcf0]Daar moet ik de som van hebben[/b:48a4a1fcf0]. Maar ik weet niet hoe ik dat moet doen. Kan ik ergens de getallen opzij zetten zodat Qbasic er later weer me rekenen kan? of kan het anders?[/quote:48a4a1fcf0] hmm, die beschrijving van de berekening van C komt niet overeen met het voorbeeld. Mijn eerdere formule gaat trouwens uit van het voorbeeld met de twee constanten B en C. Het lijkt me beter als je gewoon met een concreet voorbeeld komt.
Link naar reactie
Misschien is dit de bedoeling: CALL Bereken(Vergelijk) ' De routine Bereken geeft als resultaat de te vergelijken waarde. Deelgetal = 5645 Startwaarde = 12 MaxWaarde = 456 Result = 0 CALL Zoekuit(DeelGetal,StartWaarde,MaxWaarde,Result) Print Result IF Vergelijk = Result THEN PRINT "O.K." ELSE PRINT "FOUT" END Als je wilt dat de variabele Startwaarde ongewijzigd blijft, roep de routine dan aan met Startwaarde * 1. i.p.v. structuurspatie's breng ik even underscores aan. SUB Zoekuit(DeelWaarde,Beginwaarde,MaximumWaarde,TotaalGevonden) __TotaalGevonden = 0 ' Voor alle zekerheid __If BeginWaarde > MaximumWaarde THEN EXIT SUB ' Fout! __DO ____INCR TotaalGevonden,DeelWaarde / BeginWaarde ____IF BeginWaarde = MaximumWaarde THEN EXIT LOOP ____INCR BeginWaarde __LOOP END SUB SUB Bereken(Resultaat) __? __? END SUB
Link naar reactie
[quote:4b610a52a3="no_name"]Laat maar.....[/quote:4b610a52a3]De kwaliteit van de antwoorden is mede afhankelijk van de formulering van het probleem. Jouw probleem was voor de lezers niet helemaal duidelijk, dat blijkt uit de reacties. Als nu bij herhaling om uitleg wordt gevraagd en je weigert die uitleg te verstrekken, dan zullen diezelfde lezers minder geneigd zijn om nog op vragen van jou te reageren.
Link naar reactie
[quote:42d92048be="Aimable"][quote:42d92048be="no_name"]Laat maar.....[/quote:42d92048be]De kwaliteit van de antwoorden is mede afhankelijk van de formulering van het probleem. Jouw probleem was voor de lezers niet helemaal duidelijk, dat blijkt uit de reacties. Als nu bij herhaling om uitleg wordt gevraagd en je weigert die uitleg te verstrekken, dan zullen diezelfde lezers minder geneigd zijn om nog op vragen van jou te reageren.[/quote:42d92048be] Ik ben niet pist hoor. Ik zeg alleen dat ik het waardeer dat jullie hebben gepost. En ik kon het niet beter uitleggen. Dit was zo duidelijk mogelijk (voor mijn doen dan :x ) anders had ik het echt wel gedaan.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...