[c++] Programma herstarten

Pagina: 1
Acties:

  • Justifier
  • Registratie: December 2004
  • Laatst online: 06-04-2024
Ik ben een echte c++ newbie en ik ben net begonnen met leren van c++. Ik ben dus bezig met een heel simpel script te maken om te kijken of ik het snap. Nu komt mijn probleem, als ik iets uitgerekent heb, wil ik dat het script opnieuw begint. Ik heb al op google gezocht en op GoT maar ik kan nergens vinden hoe je dat doet. Hieronder staat de code van het Programma. :9
Ik hoop dat jullie mij kunnnen helpen!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream.h>
int main()
{
  int keuze;
  cout << "Wat wilt u uitrekenen. Vul het nummer in wat voor de opties staat.\n";
  cout << "1. Oppervlakte.\n";
  cout << "2. Omtrek.\n";
  cout << "3. Inhoud\n";
  cin >> keuze;
  if (keuze == 1)
  {
    int breedte, lengte, oppervlakte;
    cout << "Oppervlakte.\n";
    cout << "Typ de breedte in.\n";
    cin >> breedte;
    cout << "Typ de lengte in.\n";
    cin >> lengte;
    oppervlakte = ( breedte * lengte );
    cout << "Oppervlakte is " << oppervlakte;
      }
  if (keuze == 2)
  {
    int breedte, lengte, omtrek;
    cout << "Omtrek.\n";
    cout << "Typ de breedte in.\n";
    cin >> breedte;
    cout << "Typ de lengte in.\n";
    cin >> lengte;
    omtrek = ( ( 2 * breedte ) + ( 2 * lengte ) );
    cout << "Omtrek is " << omtrek;
  }
  if (keuze == 3)
  {
    int breedte, lengte, hoogte, inhoud;
    cout << "Inhoud.\n";
    cout << "Typ de breedte in.\n";
    cin >> breedte;
    cout << "Typ de lengte in.\n";
    cin >> lengte;
    cout << "Typ de hoogte in.\n";
    cin >> hoogte;
    inhoud = hoogte * breedte * lengte;
    cout << "Inhoud is " << inhoud;
  }
      return 0;
    }

[ Voor 31% gewijzigd door Justifier op 24-08-2005 16:28 ]


  • remco_k
  • Registratie: April 2002
  • Laatst online: 22:25

remco_k

een cassettebandje was genoeg

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream.h>
int main()
{
  int keuze=0;
  while (keuze!=4) {
  cout << "Wat wilt u uitrekenen. Vul het nummer in wat voor de opties staat.\n";
  cout << "1. Oppervlakte.\n";
  cout << "2. Omtrek.\n";
  cout << "3. Inhoud\n";
  cout << "4. Stoppen\n";
  cin >> keuze;
  if (keuze == 1)
  {
    int breedte, lengte, oppervlakte;
    cout << "Oppervlakte.\n";
    cout << "Typ de breedte in.\n";
    cin >> breedte;
    cout << "Typ de lengte in.\n";
    cin >> lengte;
    oppervlakte = ( breedte * lengte );
    cout << "Oppervlakte is " << oppervlakte;
      }
  if (keuze == 2)
  {
    int breedte, lengte, omtrek;
    cout << "Omtrek.\n";
    cout << "Typ de breedte in.\n";
    cin >> breedte;
    cout << "Typ de lengte in.\n";
    cin >> lengte;
    omtrek = ( ( 2 * breedte ) + ( 2 * lengte ) );
    cout << "Omtrek is " << omtrek;
  }
  if (keuze == 3)
  {
    int breedte, lengte, hoogte, inhoud;
    cout << "Inhoud.\n";
    cout << "Typ de breedte in.\n";
    cin >> breedte;
    cout << "Typ de lengte in.\n";
    cin >> lengte;
    cout << "Typ de hoogte in.\n";
    cin >> hoogte;
    inhoud = hoogte * breedte * lengte;
    cout << "Inhoud is " << inhoud;
  }
}
      return 0;
    }

Alles kan stuk.


  • Justifier
  • Registratie: December 2004
  • Laatst online: 06-04-2024
Bedankt dat werkt, maar waarom gebruik je "int keuze =0;" en niet gewoon "int keuze;"

[ Voor 15% gewijzigd door Justifier op 24-08-2005 16:12 ]


  • remco_k
  • Registratie: April 2002
  • Laatst online: 22:25

remco_k

een cassettebandje was genoeg

Justifier schreef op woensdag 24 augustus 2005 @ 16:07:
Bedankt dat werkt, maar waarom gebruik je "int keuze =0;" en niet gewoon "int keuze"
Bij int keuze=0; weet je heel zeker dat keuze op 0 staat.
Bij int keuze; weet je helemaal niet wat er in keuze komt te staan, theoretisch gezien kan dat elk willekeurig getal zijn.
In dit geval, als hij per ongeluk op 4 komt te staan, dan doet je hele programma het niet. :+

Als richtlijn hou ik aan: geef variabelen ALTIJD een waarde, zodat er in ieder geval iets instaat wat naderhand geen onverwachtte verassingen kan geven, ga er nooit vanuit dat er vanzelf 0 in komt te staan.

[ Voor 10% gewijzigd door remco_k op 24-08-2005 16:14 ]

Alles kan stuk.


  • Justifier
  • Registratie: December 2004
  • Laatst online: 06-04-2024
Oke bedankt _/-\o_

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-05 21:33

.oisyn

Moderator Devschuur®

Demotivational Speaker

Justifier schreef op woensdag 24 augustus 2005 @ 15:56:
Ik ben een echte c++ newbie en ik ben net begonnen met leren van c++.
Mooi :)
Ik ben dus bezig met een heel simpel script te maken om te kijken of ik het snap.
Les 1: C++ is geen scripttaal, een stukje C++ code is dan ook een programma, geen script ;)
Sinds wanneer geven we kant en klare oplossingen en geen hints?

Justifier: weet je nou wat remco_k gedaan heeft?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • remco_k
  • Registratie: April 2002
  • Laatst online: 22:25

remco_k

een cassettebandje was genoeg

.oisyn schreef op woensdag 24 augustus 2005 @ 16:23:
[...]
Sinds wanneer geven we kant en klare oplossingen en geen hints?
Excuse moi - remco_k zal de volgende keer zeggen:
'gebruik eens een while () {} lusje'

Alles kan stuk.


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 22:46

Salandur

Software Engineer

remco_k schreef op woensdag 24 augustus 2005 @ 16:28:
[...]

Excuse moi - remco_k zal de volgende keer zeggen:
'gebruik eens een while () {} lusje'
die je er overigens zelf bent vergeten bij te zetten :+ laat maar, zat niet goed te kijken. mss de volgende keer even netjes inspringen

[ Voor 17% gewijzigd door Salandur op 24-08-2005 16:31 ]

Assumptions are the mother of all fuck ups | iRacing Profiel


  • Justifier
  • Registratie: December 2004
  • Laatst online: 06-04-2024
Justifier: weet je nou wat remco_k gedaan heeft?
Volgens mij wel, hij gebruikt een lus die door blijft gaan bij alles dat niet gelijk is aan 4. Als hij aan 4 gelijk is dan stopt hij.

  • schoene
  • Registratie: Maart 2003
  • Laatst online: 13:10
en nu weet justifier ook nog niet dat je
C++:
1
#include <iostream.h>
niet mag gebruiken, maar dat je
C++:
1
#include <iostream>
moet gebruiken.

(google eens op "iostream namespaces std")

  • Justifier
  • Registratie: December 2004
  • Laatst online: 06-04-2024
Kan het zijn dat ik een oude compiler heb want als ik #include <iostream> doe, dan geeft hij een fout melding. #include <iostream.h> werkt wel gewoon.

  • schoene
  • Registratie: Maart 2003
  • Laatst online: 13:10
iostream.h is de oude manier om de streams te gebruiken. Als je echter
#include <iostream> gebruikt is er een wezenlijk verschil met voordien:
nu bevinden cout en cin zich in de namespace std.

je kan de streams gebruiken door de namespace std expliciet te vernoemen:
C++:
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>

int main ()
{
  int keuze;

  std::cin >> keuze;
  std::cout << keuze << std::endl;

  return 0;
}

Indien je cin en cout veelvuldig gebruikt, kan je ook laten weten dat het
de cin en cout uit de namespace std is die je gebruikt, en dit aan de hand
van het keyword using.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>

using std::cin;
using std::cout;
using std::endl;

int main ()
{
  int keuze;

  cin >> keuze;
  cout << keuze << endl;

  return 0;
}

  • cenix
  • Registratie: September 2001
  • Laatst online: 21:12
C++:
1
2
3
4
5
6
7
#include <iostream>

using std::cin;
using std::cout;
using std::endl;

}
het lijkt me nu verstandiger om ipv using std::cin; etc..
code:
1
using namespace std;

te gebruiken, dit is wat generieker.

  • Obliterator
  • Registratie: November 2000
  • Laatst online: 30-04 16:09
Neem niet weg dat je beter meer van de cursus / website / boek kan lezen voor je deze vraag post.
Kan me niet voorstellen dat de while loop niet besproken wordt.

  • cenix
  • Registratie: September 2001
  • Laatst online: 21:12
Obliterator schreef op woensdag 24 augustus 2005 @ 17:13:
Neem niet weg dat je beter meer van de cursus / website / boek kan lezen voor je deze vraag post.
Kan me niet voorstellen dat de while loop niet besproken wordt.
Als ik zo naar het programmatje kijk zal looping een van de volgende hoofdstukken zijn :Y)

  • Rodyman
  • Registratie: November 2001
  • Laatst online: 08-06-2024

Rodyman

chillend

daarna zou je eventueel al je if statements nog kunnen aanpassen naar een vorm als deze:
C++:
1
2
3
4
5
6
7
8
9
if (keuze == 1) {
  blabla
}
else if (keuze == 2) {
  blabla
}
else if (keuze == 3) {
  blabla
}


Want keuze zal nooit, 1, 2 en 3 tegelijk zijn...

  • elTigro
  • Registratie: November 2000
  • Laatst online: 20-02 06:15

elTigro

Es un Gringo!

volgende hoofdstuk: case

nou ja, swicht case natuurlijk :p

[ Voor 45% gewijzigd door elTigro op 24-08-2005 17:26 ]

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


  • Justifier
  • Registratie: December 2004
  • Laatst online: 06-04-2024
cenix schreef op woensdag 24 augustus 2005 @ 17:16:
[...]


Als ik zo naar het programmatje kijk zal looping een van de volgende hoofdstukken zijn :Y)
Klopt, en ik wou het programmatje toch afschrijven maar kon niks over herstarten op internet, op GoT, of in da boek er over vinden.

  • schoene
  • Registratie: Maart 2003
  • Laatst online: 13:10
cenix schreef op woensdag 24 augustus 2005 @ 17:07:
[...]


het lijkt me nu verstandiger om ipv using std::cin; etc..
code:
1
using namespace std;

te gebruiken, dit is wat generieker.
Tjah, ik wil het gebruik van using namespace std; niet aanmoedigen, want als je dit
gebruikt in bvb header-files...

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-05 21:33

.oisyn

Moderator Devschuur®

Demotivational Speaker

cenix schreef op woensdag 24 augustus 2005 @ 17:07:
[...]


het lijkt me nu verstandiger om ipv using std::cin; etc..
code:
1
using namespace std;

te gebruiken, dit is wat generieker.
Nee dat is juist niet verstandiger, ze zitten niet voor niets in een namespace. Je weet niet wat voor interne types er verder in de std namespace zitten, en dus kun je beter alleen die types includen die jij wilt gebruiken om nameclashes te voorkomen (ik prefereer zelf overigens gewoon de volledige naam, dus met std:: ervoor, te tikken als ik iets uit de std namespace wil gebruiken)

[ Voor 7% gewijzigd door .oisyn op 24-08-2005 18:05 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • cenix
  • Registratie: September 2001
  • Laatst online: 21:12
aha.. ok, mee eens..
ik heb meer ervaring met c dan met c++ en heb tot nu toe altijd 'using namespace std;' gebruikt. moet ik dan toch maar afleren :)
alhoewel, voor snelle testjes gebruik ik idd vaak std::

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

BK1 schreef op woensdag 24 augustus 2005 @ 17:24:
volgende hoofdstuk: case

nou ja, swicht case natuurlijk :p
Specifieker:
een switch case icm break, anders vallen de cases 'door elkaar heen' dat opzich soms wenselijk kan zijn bij accumulerende cases.
Pagina: 1