nah, zo heel veel gebruik ik dat nou ook weer niet en dan type ik gewoon std::cout als ik hem nodig heb..quote: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.
Zelfde hier.quote: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
| 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; } |
quote: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?
| 1 | for (size_t i = 0; i < words.size(); ++i) |
| 1 2 | for (auto const &e : words) std::cout << e << std::endl; |
Bedankt!quote: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 ]
Wat dat trouwens ook kan doen iterators gebruiken:quote:
| 1 2 | for (auto it = words.begin(); it != words.end(); ++it) std::cout << *it << '\n'; |
Hmm, dit is eigenlijk een stuk fijner te lezen. Veel mooier ook.quote: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.quote:Op maandag 25 maart 2013 18:09 schreef t4rt4rus het volgende:
[..]
Wat dat trouwens ook kan doen iterators gebruiken:
[ code verwijderd ]
std::vector<std::string>::iterator is een beetje lang.quote:Op maandag 25 maart 2013 19:11 schreef trancethrust het volgende:
[..]
Dat is nog eens mooi gebruik van auto.
Exactemundo; dit vergroot de leesbaarheid behoorlijk. Voorheen was ik totaal niet overtuigd van het nut van auto.quote:Op maandag 25 maart 2013 20:01 schreef t4rt4rus het volgende:
[..]
std::vector<std::string>::iterator is een beetje lang.
auto
-edit-
words.cbegin() en words.cend() is hier misschien nog wel beter.
Krijg je altijd een const_iterator
| 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; } |
Nou...quote:Op vrijdag 29 maart 2013 10:55 schreef ufopiloot12 het volgende:
[ code verwijderd ]
Alles werkt prima
| 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 ~$ |
Ja ik heb wel wat zitten klooien toen ik dit op fok zette. Net deed hij het echt!quote:
Aha, bedankt!quote: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.
| 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; } |
Je kan bijvoorbeeld zoiets doen:quote: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.
| 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'; } |
Double is idd een betere type. Ik heb nog niet over vectors gelezen, daar ga ik nog eens naar kijken.quote:Op vrijdag 29 maart 2013 12:42 schreef t4rt4rus het volgende:
[..]
Je kan bijvoorbeeld zoiets doen:
[ code verwijderd ]
De vector kan je er hier natuurlijk helemaal uit halen.quote: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!
| 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'; } |
| 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'; } |
Duidelijk. Ik had al in gedachten dat het ook met een if statement zou moeten kunnen, maar ik wist niet precies hoe.quote: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 ]
Ik denk dat je beter eerst goed kan leren hoe de if-statement werkt voordat je met loops aan de gang gaat.quote: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.
Dat is ook niet zo moeilijk als je sort van de klasse algorithms gebruikt i.c.m. een vector. Dan heb je niet eens een if statement nodig.quote:Op vrijdag 29 maart 2013 13:10 schreef Tijn het volgende:
[..]
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.
Als je wilt leren programmeren doe je imo liever wel een paar keer moeilijk. Wordt het belangrijk dat je foutloos en efficient efficiente code genereert, dan gebruik je bestaande libraries terwijl je weet wat die libraries achter de schermen doen (omdat je het zelf al eens hebt gezien).quote:Op zondag 31 maart 2013 01:00 schreef robin007bond het volgende:
[..]
Dat is ook niet zo moeilijk als je sort van de klasse algorithms gebruikt i.c.m. een vector. Dan heb je niet eens een if statement nodig.
Het gaat erom dat die jongen moet leren hoe de if-statement werkt, niet dat-ie een programma maakt om 3 getallen te sorteren natuurlijkquote:Op zondag 31 maart 2013 01:00 schreef robin007bond het volgende:
[..]
Dat is ook niet zo moeilijk als je sort van de klasse algorithms gebruikt i.c.m. een vector. Dan heb je niet eens een if statement nodig.
Punt was meer dat hij het ook zonder if-statements kan doen waardoor hij er alsnog niets van leert.quote:Op zondag 31 maart 2013 05:26 schreef Tijn het volgende:
[..]
Het gaat erom dat die jongen moet leren hoe de if-statement werkt, niet dat-ie een programma maakt om 3 getallen te sorteren natuurlijk
Daarom is de opdracht dat-ie er wel if-statements voor moet gebruikenquote:Op maandag 1 april 2013 18:33 schreef robin007bond het volgende:
[..]
Punt was meer dat hij het ook zonder if-statements kan doen waardoor hij er alsnog niets van leert.
Ik ben een laatkomer, maar ik heb wat kunnen vinden:quote:Op dinsdag 2 april 2013 23:10 schreef t4rt4rus het volgende:
[..]
Hadden we daar niet ook een topic over?
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |