Vraag & Antwoord

Programmeren

[C++] Iets maar één keer uitvoeren

49 antwoorden
  • een klassevariabele 'uitgevoerd' met als startwaarde false toevoegen. Bij het if-statement (of in de functie zelf) controleren of uitgevoerd false is. Aan het eind van de functie uitgevoerd op true zetten.
  • Dat is een oplossing. Zijn er misschien nog meer?
  • Neen, iedereen gebruikt in dergelijke gevallen een flag. Abcott.
  • [quote:b2bdcb706b="abcott"]Neen, iedereen gebruikt in dergelijke gevallen een flag. Abcott.[/quote:b2bdcb706b] ... Of Liberty Basic. :) Dan ga ik dat proberen. Nog geen idee hoe, maar dat komt wel.
  • Welkom, Probeer eerst Just BASIC. Gratis. Als je BASIC onder de knie hebt, dan is de stap naar C++ eenvoudig. Voorbeeld van hierboven: Bij Liberty BASIC of Just BASIC: [code:1:9865c3c1ee]if MijnVlag=0 and (variabele <= 25) then MijnVlag = 1 de_functie(uitvoeren) end if [/code:1:9865c3c1ee] Je ziet dat in C++ de woordjes then/end if ontbreken, maar dat je daarvoor een stel {} tekens en een ; voor terug krijgt. Ik heb mijn bedenkingen tegen dergelijke flauwiteit. In plaats van A=A+1 gebruiken ze INC A, daar moet de programmeur 5 karakters in beide gevallen voor intikken. En zo kan ik nog uren verder gaan. Als je in je eentje die hobby moet onthouden.... Welkom bij het eenvoudige BASIC. Abcott.
  • Nou nee... C++ lijkt meer op PHP, en je hebt er hele mooie libraries voor. :D
  • Ik kan mijn kommentaar slechts indirect geven. De moderatoren houden mij in de gaten, ik kan niet off topic gaan. [code:1:70d7fd6b85] 'de_functie(uitvoeren) is een deel van een library ' de grootste libraries zijn die van Windows ' heten DLL en zijn stampvol met functies 'de (meeste) DLL zijn in C++ geschreven [/code:1:70d7fd6b85] Liberty BASIC (maar natuurlijk ook de talen vam Microsoft ...VB enz.) gebruiken deze DLL's constant. Bij MSDN staat de grootste verzameling van Libraries ter wereld. Abcott
  • Laat mij maar C++'en, dat gaat tot nu toe super! (Nouja, afgezien van dit topic dan.)
  • [quote:94b14229f1="abcott"]In plaats van A=A+1 gebruiken ze INC A, daar moet de programmeur 5 karakters in beide gevallen voor intikken.[/quote:94b14229f1] [code:1:94b14229f1]A++;[/code:1:94b14229f1] :wink:
  • Hallo Capone, Je merkt het goed op. Er zijn zoveel talen ... in enkele gebruik je A++ In andere gebruik je A++; of INC A of ACC A enz.... Maar in BASIC gewoon A=A+1 Dat is al met moeite te begrijpen door een beginner. Computertalen zijn op den duur (in de ogen van beginners) verworden tot scriptische geheimtalen. In 1971 werden regels gesteld om tot een taal te komen die ook voor niet technici begrijpelijk moest zijn. De taal moet voor de niet-technici begrijpelijk zijn De taal moet er "vriendelijk" uit zien De taal moet snel resultaten leveren ten behoeve van huiswerkopdrachten De taal moet gratis en gemakkelijk zijn De tijd die het de gebruiker kost moet minimaal zijn, in plaats van dat de processortijd minimaal moet zijn Dat werd BASIC en die eigenschappen horen tot nu toe bij BASIC. Abcott
  • [quote:23edd2aa79="abcott"]Dat is al met moeite te begrijpen door een beginner.[/quote:23edd2aa79] Ik als beginner vind dat het met C++ ook zo kan. [code:1:23edd2aa79]A = A + 1; // of zo A++; // of zelfs ++A;[/code:1:23edd2aa79]
  • [quote:6ebdf7a289="davykager"]Ik als beginner vind dat het met C++ ook zo kan. [code:1:6ebdf7a289]A = A + 1; // of zo A++; // of zelfs ++A;[/code:1:6ebdf7a289][/quote:6ebdf7a289] Inderdaad, dat kan allemaal. En dat is helemaal niet moeilijk te begrijpen. Maar goed, abcott wil weer zijn Liberty Basic verkooppraatje houden, en het zou ten eerste tijdverspillend, en ten tweede off-topic zijn om nu met hem daarover te gaan discussiëren...
  • true = 1 MijnVlag = true [code:1:27d1806400] if MijnVlag and (variabele <= 25) then MijnVlag = 0 de_functie(uitvoeren) end if [/code:1:27d1806400] Zo zou je het ook kunnen proberen. Kan zowel in Visual BASIC als in Liberty BASIC. In sommige talen is true 1 en in andere is true -1 Is het gelukt? Ik programmeer graag (en veel) in mijn vrije tijd. Abcott
  • [quote:c3899f66d8="davykager"]Dat is een oplossing. Zijn er misschien nog meer?[/quote:c3899f66d8] Je moet gewoon goed nadenken ;) Werken met een flag is een oplossing. Als het in een loop wordt uitgevoerd zou je misschien ook iets aan de guard van de loop kunnen wijzigen. Als je bijvoorbeeld zoiets hebt: [code:1:c3899f66d8]while (loopConditie1) { if (variabele <= 25) { de_functie(uitvoeren); } [...] }[/code:1:c3899f66d8] Dan kun je bereiken dan de_functie maar 1 keer uitgevoerd wordt door hem zo aan te passen: [code:1:c3899f66d8]while (loopConditie1 && variabele > 25) { [...] } de_functie(uitvoeren);[/code:1:c3899f66d8] Er zijn geen truukjes zoals speciale operators hiervoor, dus je zult zelf even na moeten denken hierover. [size=9:c3899f66d8]Psst... Basic is voor mietjes...[/size:c3899f66d8]
  • [quote:948448cc77="abcott"]In sommige talen is true 1 en in andere is true -1[/quote:948448cc77]Dit vind ik een spannende opmerking: in welke taal is true dan -1? Ik ben dat nog nooit tegengekomen en het lijkt me enorm krom ook...
  • Ja is goed, maar ik ben geen BASIC-gebruiker. Hoe pak je zo'n flag aan? Gewoon een bool variabele maken? Overigens, als "het aantal tekens dat de programmeur moet typen" van belang is, dan is [i:4b09fc6ade]and, then, endif[/i:4b09fc6ade] langer dan [i:4b09fc6ade]&&, {, }[/i:4b09fc6ade]. Ik stel enige hulp hiermee zeer op prijs! PS: -1 was toch noch TRUE, noch FALSE, dus error?
  • [quote:047154f248="davykager"]Ja is goed, maar ik ben geen BASIC-gebruiker. Hoe pak je zo'n flag aan? Gewoon een bool variabele maken? Overigens, als "het aantal tekens dat de programmeur moet typen" van belang is, dan is [i:047154f248]and, then, endif[/i:047154f248] langer dan [i:047154f248]&&, {, }[/i:047154f248]. Ik stel enige hulp hiermee zeer op prijs! PS: -1 was toch noch TRUE, noch FALSE, dus error?[/quote:047154f248] Juist. Zo werk je met een flag (een flag is eigenlijk gewoon een andere naam voor een boolean): [code:1:047154f248]bool functieUitgevoerd = false; int i = 0; [...] if (i <= 25 && !functieUitgevoerd) { de_functie(uitvoeren); functieUitgevoerd = true; } [...][/code:1:047154f248] In C en C++ is false gelijk aan 0, de rest is true. Dus als je dit doet: [code:1:047154f248]int x = 5; if (x) { de_functie(); }[/code:1:047154f248] ... dan zal de_functie() worden uitgevoerd omdat 5 true is. Ook -1 zal true zijn, dus geen errors.
  • Super, ik snap het! Dat van die -1 komt uit een bepaalde library, dus geen standaard-C++.
  • [quote:21bc668624="Bill Gates"][quote:21bc668624="abcott"]In sommige talen is true 1 en in andere is true -1[/quote:21bc668624]Dit vind ik een spannende opmerking: in welke taal is true dan -1? Ik ben dat nog nooit tegengekomen en het lijkt me enorm krom ook...[/quote:21bc668624] In Visual Basic is true -1 en false 0... Erg krom inderdaad.
  • Eerst maar even zeggen dat ik nieuw ben op het gebied van programmeren en C/C++. Ik wil een systeem maken, dat een functie uitvoert zodra een variabele kleiner wordt dan een bepaalde waarde. Dat doe ik nu zo: [code:1:2c7ebc0096] if (variabele <= 25) { de_functie(uitvoeren); } [/code:1:2c7ebc0096] Maar met deze code wordt dit iedere keer gedaan als de waarde kleiner is, dus als de waarde van 24 verandert in 23 wordt de functie weer gestart. Het is echter de bedoeling dat ik de functie maar één keer uitvoer. Kan iemand vertellen hoe ik zoiets aan moet pakken? PS: Dit statement staat in de hoofd-loop van het programma, dus zelfs als de waarde niet verandert wordt de functie steeds opnieuw uitgevoerd.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.