Archief - [PROG]-[C++] loop

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

-(orbje)-

Legacy Member
Jo,

heb een klein rekenmachien progje gemaakt (ben nog maar paar dagen bezig met c++, dus is iets zeer simplistisch, maar soit...)

Code:
#include <iostream>
using namespace std;

int main()
{
  int keuze;
  float getal1;
  float getal2;
  
  cout << "(1) Optelling " << endl;
  cout << "(2) Aftrekking " << endl;
  cout << "(3) Vermenigvuldiging " << endl;
  cout << "(4) Deling " << endl;
  cout << "\nMaak nu uw keuze: ";
  cin >> keuze;
  
  cout << "\n\nGeef het eerste getal op: ";
  cin >> getal1;
  
  cout << "Geef het tweede getal op: ";
  cin >> getal2;
  
  if (keuze == 1)
  {
	  cout << "\nDe uitkomst is: " << getal1 + getal2;
  }
  if (keuze == 2)
  {
	  cout << "\nDe uitkomst is: " << getal1 - getal2;
  }
  if (keuze == 3)
  {
	  cout << "\nDe uitkomst is: " << getal1 * getal2;
  }
  if (keuze == 4)
  {
	  cout << "\nDe uitkomst is: " << getal1 / getal2;
  }
  
  cin.get();
  cin.get(); 
  
  return 0;
}

Als ik dit uitvoer, de berekening is gedaan en ik druk op enter: sluit het programma af. Hoe stel ik het in zodat: als ik op enter druk, ik opnieuw de keuze krijg (optelling, aftrekking,...) en het programa dus opnieuw vanaf het begin begint te draaien ?

EDIT: of hoe krijg ik op het einde van het programma (dus na de berekening) een keuze om ofwel te stoppen, of om ofwel opnieuw te beginnen ?

grtz ;)

Hit Hard

Legacy Member
Ge kunt een while lus rond uw volledig programma zetten, dus zoiets als dit:
Code:
#include <iostream>
using namespace std;

int main()
{
  boolean test;

  while (test != "j")
  {
     //Hier komt de programma code

      cout << "\nWilt u afsluiten? (j/n)";
      cin >> keuze;
  }
  
  return 0;
}
In dat stukske zitten waarschijnlijk een vijftigtal fouten of zo, maar de logica zou moeten werken :p

-(orbje)-

Legacy Member
Error E2034 Calculator.cpp 8: Cannot convert 'bool' to 'char *' in function main()

Tyfius

Legacy Member
ja, redelijk domme fout ook,

char test;
ipv
boolean test;

boolean = true of false he :p

-(orbje)-

Legacy Member
Had ik ook al geprobeerd :)

Error E2034 Calculator.cpp 8: Cannot convert 'char' to 'char *' in function main()

EDIT: het lukt wel als ik ipv while (test != "j") ---> while (test!= 1), maar dan blijft het programma maar draaien, alé ja... de regels vliegen over mn scherm zonder dat ik iets kan lezen of typpen :)

EDIT2: als ik char test gebruik en ik de while op 1 zet ipv "j" kan ik het programma niet meer afsluiten, eender wat ik typ :)

Krueger

Legacy Member
Logisch ook he.
Als ge uwen while op 1 zet is het altijd waar, en zal em nooit eindigen.
Gewoon logisch nadenken en ge geraakt er wel.
Op het einde van uwen loop zette ne cin voor uw char, en daarna test ge op wat er is ingevoerd.
dus iets in de aard van (pseudocode)

Code:
char test
do{
    //uw programmacode
    lees test in
    }while(test == j)

-(orbje)-

Legacy Member
Dan krijg ik:

Error E2034 Calculator.cpp 8: Cannot convert 'char' to 'char *' in function main()

killgore

Legacy Member
Krueger zei:
Logisch ook he.
Als ge uwen while op 1 zet is het altijd waar, en zal em nooit eindigen.
Gewoon logisch nadenken en ge geraakt er wel.
Op het einde van uwen loop zette ne cin voor uw char, en daarna test ge op wat er is ingevoerd.
dus iets in de aard van (pseudocode)

Code:
char test
do{
    //uw programmacode
    lees test in
    }while(test == j)

moet da nie while(test=='j') zijn???

-(orbje)-

Legacy Member
killgore zei:
moet da nie while(test=='j') zijn???

Ja da heb ik ook geprobeerd, maar dan krijgde die fout dak zei. Als ik gewoon while (test == j) typ, dan krijg ik declaratie fout of zoiet.

Suicide Monkey

Legacy Member
het zou moeten lukken met deze code:

Code:
#include <iostream.h>

int main()
{
  int keuze;
  char  eindig = 'j';
  float getal1;
  float getal2;
  while ( eindig == 'j'){
	cout << "(1) Optelling " << endl;
	cout << "(2) Aftrekking " << endl;
	cout << "(3) Vermenigvuldiging " << endl;
	cout << "(4) Deling " << endl;
	cout << "\nMaak nu uw keuze: ";
	cin >> keuze;
  
	cout << "\n\nGeef het eerste getal op: ";
	cin >> getal1;
  
	cout << "Geef het tweede getal op: ";
	cin >> getal2;
	
	if (keuze == 1)  cout << "\nDe uitkomst is: " << getal1 + getal2;
	if (keuze == 2)  cout << "\nDe uitkomst is: " << getal1 - getal2;
    if (keuze == 3)  cout << "\nDe uitkomst is: " << getal1 * getal2;
	if (keuze == 4)  cout << "\nDe uitkomst is: " << getal1 / getal2;
  
	cout << "\nWilt u nog iets doen? j/n:" ;
	cin >> eindig;
  }
  return 0;
}

killgore

Legacy Member
het beste is eigenlijk dat je je rekenmachine in een functie zet en main enkel gebruikt om input te checken ;)

pseudo code:

do
rekenmachine();
while(cin.get() == 'j')

of zo :p (de code in de while statement is nie 100% correct, ma kom, pseudo code :p)

AcIdR3IgN

Legacy Member
misschien best es wa verder lezen in je boekje (of wat ge ook gebruikt om C++ te leren). Er zal wel ergens een hoofdstuk zijn waarin staat hoe je lussen kunt gebruiken, en de verschillende soorten :D.
tZal je veel koppijn besparen :p
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan