abonnement Unibet Coolblue Bitvavo
  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.
pi_124707722
quote:
2s.gif 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.
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.

[ Bericht 0% gewijzigd door #ANONIEM op 31-03-2013 01:02:02 ]
pi_124708637
quote:
1s.gif 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.
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).
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
  zondag 31 maart 2013 @ 05:26:20 #203
12221 Tijn
Powered by MS Paint
pi_124710811
quote:
1s.gif 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 natuurlijk :')
pi_124763276
quote:
10s.gif 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 :')
Punt was meer dat hij het ook zonder if-statements kan doen waardoor hij er alsnog niets van leert.

[ Bericht 0% gewijzigd door #ANONIEM op 01-04-2013 18:35:43 ]
  maandag 1 april 2013 @ 19:20:57 #205
12221 Tijn
Powered by MS Paint
pi_124764776
quote:
9s.gif 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.
Daarom is de opdracht dat-ie er wel if-statements voor moet gebruiken B-)
pi_124794948
Dat Project Euler is leuk!
pi_124796673
quote:
6s.gif Op dinsdag 2 april 2013 15:50 schreef robin007bond het volgende:
Dat Project Euler is leuk!
Ohja dat deden we ook nog. :P

Ik zit nu te kloten met AES...
  dinsdag 2 april 2013 @ 16:46:45 #208
12221 Tijn
Powered by MS Paint
pi_124797227
quote:
6s.gif Op dinsdag 2 april 2013 15:50 schreef robin007bond het volgende:
Dat Project Euler is leuk!
Ik heb er laatst weer een paar opgelost, ik zit nu bij opgave 46 B-)
pi_124816972
quote:
6s.gif Op dinsdag 2 april 2013 15:50 schreef robin007bond het volgende:
Dat Project Euler is leuk!
Hadden we daar niet ook een topic over?
pi_124823782
quote:
0s.gif Op dinsdag 2 april 2013 23:10 schreef t4rt4rus het volgende:

[..]

Hadden we daar niet ook een topic over?
Ik ben een laatkomer, maar ik heb wat kunnen vinden:

DIG / Project Euler
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')