C++ opdracht met while

Moderators: jkien, Xilvo

Berichten: 3

C++ opdracht met while

Hoi allemaal,

Ik heb een opdracht gekregen om een programma te schrijven die het volgende doet:

Afwisselend het volgende getal optelt en aftrekt en stopt als het totaalresultaat negatief wordt. (dus: a1+a2-a3+a4-a5 …). Bedenk zelf een fraaie output.

Hierbij moet uiteraard gebruik worden gemaakt met een while functie

Wie zou mij kunnen helpen?????

Alvast bedankt

Groetjes Niels

Gebruikersavatar
Berichten: 5.679

Re: C++ opdracht met while

Lijkt erg [topic="72849"]hierop[/topic], heb je daar wat aan?
In theory, there's no difference between theory and practice. In practice, there is.

Gebruikersavatar
Berichten: 6.905

Re: C++ opdracht met while

met welk getal begin je?

gewoon bij 1
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Berichten: 3

Re: C++ opdracht met while

Ik begin bij een willekeurig getal

groetjes

Gebruikersavatar
Berichten: 6.905

Re: C++ opdracht met while

Code: Selecteer alles

#include <iostream.h>

#include <math.h>



int main()

{

	int a,totaal;

	cout << "a0 = ";

	cin >> a;

	totaal=a+a+1;

	a++;

	cout << a << "\n";

	

	while (totaal>=0)

	{

		  a=-1*abs(a)*(abs(a)+1)/a;

		  totaal=totaal+a;

		  cout << a << "\n";

	}

	cout << "totaal = " << totaal << "\n";

	system("pause");

	return 1;

}
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Berichten: 7.068

Re: C++ opdracht met while

A.u.b. geen daadwerkelijke code voorzeggen. Daarmee help je namelijk niet.

Gebruikersavatar
Berichten: 6.905

Re: C++ opdracht met while

euhm je hebt gelijk, ik was even te snel met een oplossing te posten
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Gebruikersavatar
Berichten: 4.810

Re: C++ opdracht met while

Ik vat de opdracht niet echt, maar waarom dit stukje code?

Code: Selecteer alles

a=-1*abs(a)*(abs(a)+1)/a;
En waarom eindig je met return 1; ? return 0; lijkt eigelijk wel stukken logischer. return 0 heeft de betekenis dat het programma correct geëindigt is, jij geeft dus de indruk dat het programma foutief is afgelopen.

Gebruikersavatar
Berichten: 6.905

Re: C++ opdracht met while

@Cycloon: return 1 moet idd 0 zijn, dat is een vergissing

a=-1*abs(a)*(abs(a)+1)/a;

de vraag is met beginwaarde bv 5

wanneer deze som < 0

5 + 6 - 7 + 8

totaal is het geheel, waarbij de a telkens het getal is dat erbij komt:

- altijd ander teken:
\(-1 \cdot \frac{|a|}{a}\)
- in absolute waarde: vorige + 1 :
\(|a|+1\)
\(a_{n+1} = -1 \cdot \frac{|a_n|}{a_n} (|a_n|+1)\)
edit: mss wat omslachtig, kan zeker ook anders
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Gebruikersavatar
Berichten: 4.810

Re: C++ opdracht met while

Oh zo gaat de opdracht, dat kan idd een stukje makkelijker.

ik zou zoiets doen:

Code: Selecteer alles

#include <iostream>

using namespace std;

int main() {

int a;

cout << "a0 = ";

cin >> a;

int totaal=a;

int teken=1,i=1;

while (totaal>=0) {

totaal+=teken*(a+i);

cout << teken*(a+i) << endl;

teken*=-1;

i++;

}

cout << "totaal = " << totaal << endl;

system("pause");

return 0;

}

Berichten: 99

Re: C++ opdracht met while

Code staat er al, bij eenvoudige oefen programma's is het toevoegen van commentaar niet zo belangrijk.

Tenzij ergens in de code een logische fout staat en je weet niet waar, dan is het handig om ieder statement van commentaar te voorzien. Je krijgt dan een soort herleidings effect, je dwingt je om iedere regel nog eens goed te bekijken.

Heb je de fout dan nog steeds niet gevonden, dan kan je herleidingsregels gaan gebruiken. Ik dacht dat je dan bij iedere bewerking van het programma de toestandsverandering gaat weergeven.

Voorbeeld van commentaar:

// voor de opslag van het opvolgende getal

int a;

// opslag totaal, a wordt er bij geteld of afgetrokken

int totaal;

// zolang totaal >= 0 en dus niet negatief

while (totaal>=0)

{ ... }

// voor de weergave totaal, totaal komt na while en is negatief moet dus -1 weergeven

cout << "totaal = " << totaal << endl;

Berichten: 7.068

Re: C++ opdracht met while

Afwisselend het volgende getal optelt en aftrekt en stopt als het totaalresultaat negatief wordt. (dus: a1+a2-a3+a4-a5 …).
De opdracht die je gekregen hebt is vast precieser. Ik ben er redelijk van overtuigd dat hetgeen jhnbk doet niet de bedoeling is.

Wat betreft de (mijn inziens vage) post over commentaar. Als inline-commentaar nodig is dan is waarschijnlijk je code niet goed opgesplitst. Het volgende stukje code is bijvoorbeeld zo leesbaar dat er geen reden is voor commentaar.

Code: Selecteer alles

int total = 0

int teken = 1;

while (total >= 0) {

  int a = getNextA();

  total += teken * a;

  teken = -teken;

  generateOutput(a, total);

}

Berichten: 3

Re: C++ opdracht met while

ziet er allemaal leuk uit ik ga het even testen en dan horen jullie meer;)

allemaal alvast bedankt

Gebruikersavatar
Berichten: 6.905

Re: C++ opdracht met while

De opdracht die je gekregen hebt is vast precieser. Ik ben er redelijk van overtuigd dat hetgeen jhnbk doet niet de bedoeling is.
zou heel goed kunnen, ik heb maar geschreven wat ik dacht dat de opdracht was

@Cycloon: jouw versie is duidelijk beter, je hebt enkel een variabele meer :D
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Berichten: 99

Re: C++ opdracht met while

Het volgende stukje code is bijvoorbeeld zo leesbaar dat er geen reden is voor commentaar.
Maar had je nu wel commentaar gebruikt in dat kleine stukje code:

Dan had ik me minder moeite hoeven te doen om het te begrijpen.

Dan was de code over een jaar nog duidelijk geweest.

Dan had je, waarschijnlijk, a voor while gedeclareerd waardoor het nog iets efficiënter was.

Reageer