abonnement Unibet Coolblue Bitvavo
pi_124463477
Ik ga toch een begin maken aan Accelerated C++.

Jullie zullen misschien nog van me horen hier.
pi_124463733
quote:
7s.gif Op zondag 24 maart 2013 22:07 schreef robin007bond het volgende:
Ik ga toch een begin maken aan Accelerated C++.

Jullie zullen misschien nog van me horen hier.
Leuk ufo was ook begonnen, geen idee of die nog bezig is...
quote:
0s.gif Op zondag 24 februari 2013 17:49 schreef ufopiloot12 het volgende:

[..]

Namespaces, ik moet dat even rephrasen. Er worden belangrijke dingen blijkbaar niet vertelt. Het is niet toereikend dus.
pi_124465082
quote:
0s.gif Op zondag 24 maart 2013 22:11 schreef t4rt4rus het volgende:

[..]

Leuk ufo was ook begonnen, geen idee of die nog bezig is...

[..]

Ik ben de laatste tijd idd met wat andere dingen bezig geweest. :P Ik ben gisteren eens wezen kijken naar boeken, die hier werden aangeraden en dit leek mij wel een redelijke. Ik heb hoofdstuk 1 maar overgeslagen en heb al vluchtig hoofdstuk 2 doorgekeken aangezien hier ook niet veel nieuws in kwam. http://www.smart2help.com(...)-vol-one/Frames.html
pi_124466189
quote:
0s.gif Op zondag 24 februari 2013 17:01 schreef t4rt4rus het volgende:
Hier stukje over cplusplus.com
http://jcatki.no-ip.org/fncpp/cplusplus.com

Ohja en "using namespace std" vind niet iedereen leuk :P
(ik ook niet...)
Ik doe altijd "using std::cout" "using std::endl" etc.

Als ik meerdere namespaces zou gebruiken en twee methoden hebben dezelfde naam, dan hang je al bijvoorbeeld.
pi_124469627
quote:
0s.gif Op zondag 24 maart 2013 22:47 schreef robin007bond het volgende:

[..]

Ik doe altijd "using std::cout" "using std::endl" etc.

Als ik meerdere namespaces zou gebruiken en twee methoden hebben dezelfde naam, dan hang je al bijvoorbeeld.
Yey iemand die het snapt. :p
  maandag 25 maart 2013 @ 07:55:04 #181
189216 netolk
maar dan andersom
pi_124472897
quote:
0s.gif Op zondag 24 maart 2013 22:47 schreef robin007bond het volgende:

[..]

Ik doe altijd "using std::cout" "using std::endl" etc.

Als ik meerdere namespaces zou gebruiken en twee methoden hebben dezelfde naam, dan hang je al bijvoorbeeld.
nah, zo heel veel gebruik ik dat nou ook weer niet en dan type ik gewoon std::cout als ik hem nodig heb..

en std::endl doe ik niet aan vind '\n' genoeg
Beware of the Raping Zebra's
pi_124477267
quote:
0s.gif Op maandag 25 maart 2013 07:55 schreef netolk het volgende:

[..]

nah, zo heel veel gebruik ik dat nou ook weer niet en dan type ik gewoon std::cout als ik hem nodig heb..

en std::endl doe ik niet aan vind '\n' genoeg
Zelfde hier.
pi_124482335
1
2
3
4
5
6
7
8
9
10
 int main ()
{
   vector<string> words;
  ifstream in (" GetWords.cpp");
 string word;
  while ( in >> word)
        words.push_back(word);
  for ( int i = 0; i < words.size(); i++)
    cout << words [i] << endl;
}

Ik krijg hier de error: " comparison between signed and unsigned integer expressions" bij regel acht, maar ik weet niet echt waar ik de fout in ga. Waarschijnlijk bij words.size, maar hoe moet ik dat verhelpen?
pi_124484837
quote:
0s.gif Op maandag 25 maart 2013 14:02 schreef ufopiloot12 het volgende:

[ code verwijderd ]

Ik krijg hier de error: " comparison between signed and unsigned integer expressions" bij regel acht, maar ik weet niet echt waar ik de fout in ga. Waarschijnlijk bij words.size, maar hoe moet ik dat verhelpen?
1for (size_t i = 0; i < words.size(); ++i)
;)

vector::size() returnt een size_t, dit is een unsigned integer type.

-edit-
En in het vervolg wanneer je van dit soort for loops doet,
gebruik altijd std::size_t.

Daarnaast kan je natuurlijk ook gewoon dit doen:
1
2
for (auto const &e : words)
    std::cout << e << std::endl;
pi_124485571
quote:
0s.gif Op maandag 25 maart 2013 15:02 schreef t4rt4rus het volgende:

[..]
[ code verwijderd ]

;)

vector::size() returnt een size_t, dit is een unsigned integer type.

-edit-
En in het vervolg wanneer je van dit soort for loops doet,
gebruik altijd std::size_t.

Daarnaast kan je natuurlijk ook gewoon dit doen:
[ code verwijderd ]

Bedankt!
pi_124491591
quote:
0s.gif Op maandag 25 maart 2013 15:18 schreef ufopiloot12 het volgende:

[..]

Bedankt!
Wat dat trouwens ook kan doen iterators gebruiken:
1
2
for (auto it = words.begin(); it != words.end(); ++it)
    std::cout << *it << '\n';
pi_124491737
quote:
1s.gif Op maandag 25 maart 2013 18:09 schreef t4rt4rus het volgende:

[..]

Wat dat trouwens ook kan doen iterators gebruiken:
[ code verwijderd ]

Hmm, dit is eigenlijk een stuk fijner te lezen. Veel mooier ook.
Hier ga ik morgen eens naar kijken. :)
pi_124494090
quote:
1s.gif Op maandag 25 maart 2013 18:09 schreef t4rt4rus het volgende:

[..]

Wat dat trouwens ook kan doen iterators gebruiken:
[ code verwijderd ]

Dat is nog eens mooi gebruik van auto.
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
pi_124496766
quote:
14s.gif Op maandag 25 maart 2013 19:11 schreef trancethrust het volgende:

[..]

Dat is nog eens mooi gebruik van auto.
std::vector<std::string>::iterator is een beetje lang. :P
auto :D

-edit-
words.cbegin() en words.cend() is hier misschien nog wel beter.
Krijg je altijd een const_iterator
pi_124497748
quote:
0s.gif Op maandag 25 maart 2013 20:01 schreef t4rt4rus het volgende:

[..]

std::vector<std::string>::iterator is een beetje lang. :P
auto :D

-edit-
words.cbegin() en words.cend() is hier misschien nog wel beter.
Krijg je altijd een const_iterator
Exactemundo; dit vergroot de leesbaarheid behoorlijk. Voorheen was ik totaal niet overtuigd van het nut van auto.
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
pi_124638451
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>

int main(){
int grade;
int gradeTotal = 0;
int NumberOfPeople = 0;

while(grade!=-1)
{
    std::cout << "Enter a grade or enter -1 to calculate average grade"<< std::endl;
    std::cin>>grade;
    gradeTotal+= grade;
    NumberOfPeople++;
}
if(gradeTotal == 0){
    std::cout <<" The sum of your grades is 0, that can't be right!"<< std::endl;
    std::cout <<" Enter a number";
    std::cin>>grade;
}
std::cout<< "The average grade is: "<< gradeTotal/NumberOfPeople<<std::endl;
return 0;

}

Ik heb een programma gemaakt die het gemiddelde van een som van een x aantal cijfers uitrekent. Alles werkt prima, geen errors, maar mijn if statement werkt niet. Wat doe ik fout?
  vrijdag 29 maart 2013 @ 11:02:03 #192
12221 Tijn
Powered by MS Paint
pi_124638624
quote:
0s.gif Op vrijdag 29 maart 2013 10:55 schreef ufopiloot12 het volgende:

[ code verwijderd ]

Alles werkt prima
Nou...

1
2
3
4
5
6
7
8
9
~$ ./grade
Enter a grade or enter -1 to calculate average grade
1
Enter a grade or enter -1 to calculate average grade
9
Enter a grade or enter -1 to calculate average grade
-1
The average grade is: 3
~$
pi_124638679
quote:
10s.gif Op vrijdag 29 maart 2013 11:02 schreef Tijn het volgende:

[..]

Nou...
[ code verwijderd ]

Ja ik heb wel wat zitten klooien toen ik dit op fok zette. Net deed hij het echt! :')
edit: bij nader inzien klopt er geen kut van mijn code. ;(

[ Bericht 5% gewijzigd door ufopiloot12 op 29-03-2013 11:11:10 ]
  vrijdag 29 maart 2013 @ 11:24:39 #194
12221 Tijn
Powered by MS Paint
pi_124639194
Het probleem is natuurlijk dat je de input "-1" ook meetelt in het berekenen van het gemiddelde.
pi_124639280
quote:
2s.gif Op vrijdag 29 maart 2013 11:24 schreef Tijn het volgende:
Het probleem is natuurlijk dat je de input "-1" ook meetelt in het berekenen van het gemiddelde.
Aha, bedankt!

Ik heb het nu zo opgelost:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>

int main(){
int grade;
int gradeTotal = 0;
int NumberOfPeople = 0;

while(grade!=-1)
{
    std::cout << "Enter a grade or enter -1 to calculate average grade"<< std::endl;
    std::cin>>grade;
    gradeTotal += grade;
    NumberOfPeople++;
}

std::cout << "Your average grade is: "<<++gradeTotal/--NumberOfPeople<<std::endl;
return 0;

}
Weten jullie misschien een betere manier, want ik los het probleem hier niet ECHT mee op.

[ Bericht 27% gewijzigd door ufopiloot12 op 29-03-2013 11:45:48 ]
pi_124641510
quote:
0s.gif Op vrijdag 29 maart 2013 11:27 schreef ufopiloot12 het volgende:

[..]

Aha, bedankt!

Ik heb het nu zo opgelost:
[ code verwijderd ]

Weten jullie misschien een betere manier, want ik los het probleem hier niet ECHT mee op.
Je kan bijvoorbeeld zoiets doen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>

double average(std::vector<size_t> const &vec)
{
   size_t total = 0;
   
   for (auto &e : vec)
      total += e;
      
   return static_cast<double>(total) / vec.size();
}

int main()
{
   std::vector<size_t> grades;
   
   size_t grade;
   while (std::cin >> grade)
      grades.push_back(grade);
      
   std::cout << average(grades) << '\n';
}
pi_124641663
quote:
0s.gif Op vrijdag 29 maart 2013 12:42 schreef t4rt4rus het volgende:

[..]

Je kan bijvoorbeeld zoiets doen:
[ code verwijderd ]

Double is idd een betere type. Ik heb nog niet over vectors gelezen, daar ga ik nog eens naar kijken.
Bedankt!
pi_124642089
quote:
0s.gif Op vrijdag 29 maart 2013 12:47 schreef ufopiloot12 het volgende:

[..]

Double is idd een betere type. Ik heb nog niet over vectors gelezen, daar ga ik nog eens naar kijken.
Bedankt!
De vector kan je er hier natuurlijk helemaal uit halen.
Maar was meer een voorbeeld dat je de getallen aan een functie geeft die je dan het gemiddelde geeft.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>

int main()
{
    size_t num_grades = 0;
    size_t total = 0;

    size_t grade;
    while (std::cin >> grade)
    {
        total += grade;
        ++num_grades;
    }
    double average = static_cast<double>(total) / num_grades;

    std::cout << average << '\n';
}

-edit-

Als je wil dat hij bijvoorbeeld stopt bij een negatief getal, kan je dit doen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>

int main()
{
    size_t num_grades = 0;
    size_t total = 0;

    int grade;
    while (std::cin >> grade)
    {
        if (grade < 0)
            break;

        total += grade;
        ++num_grades;
    }
    double average = static_cast<double>(total) / num_grades;

    std::cout << average << '\n';
}
pi_124642359
quote:
0s.gif Op vrijdag 29 maart 2013 13:00 schreef t4rt4rus het volgende:

[..]

De vector kan je er hier natuurlijk helemaal uit halen.
Maar was meer een voorbeeld dat je de getallen aan een functie geeft die je dan het gemiddelde geeft.
[ code verwijderd ]

-edit-

Als je wil dat hij bijvoorbeeld stopt bij een negatief getal, kan je dit doen:
[ code verwijderd ]

Duidelijk. Ik had al in gedachten dat het ook met een if statement zou moeten kunnen, maar ik wist niet precies hoe. :P
  vrijdag 29 maart 2013 @ 13:10:36 #200
12221 Tijn
Powered by MS Paint
pi_124642488
quote:
0s.gif Op vrijdag 29 maart 2013 13:06 schreef ufopiloot12 het volgende:

[..]

Duidelijk. Ik had al in gedachten dat het ook met een if statement zou moeten kunnen, maar ik wist niet precies hoe. :P
Ik denk dat je beter eerst goed kan leren hoe de if-statement werkt voordat je met loops aan de gang gaat.

Je zou bijvoorbeeld als oefening een programma kunnen maken dat 3 ingevoerde getallen sorteert van laag naar hoog zonder loops te gebruiken, maar puur met if-statements.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')