C++ no match for "operator>>"

poruka: 25
|
čitano: 3.529
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
neaktivan
offline
C++ no match for "operator>>"
/*Requires:
variables, data types, and numerical operators
basic input/output
logic (if statements, switch statements)

Write a program that presents the user w/ a choice of your 5 favorite beverages
(Coke, Water, Sprite, ... , Whatever).
Then allow the user to choose a beverage by entering a number 1-5.
Output which beverage they chose.

? If you program uses if statements instead of a switch statement, modify it to
use a switch statement. If instead your program uses a switch statement, modify
 it to use if/else-if statements.

?? Modify the program so that if the user enters a choice other than 1-5 then
it will output "Error. choice was not valid, here is your money back."
*/

#include <iostream>

enum Beverage
{
    PEPSI = 1,
    SPRITE,
    ORANGE_JUICE,
    WATER,
    RED_BULL,  
};

void WhichBeverage(Beverage eBeverage)
{
    using namespace std;
    switch(eBeverage)
    {
        case 1:
             cout << "You chose Pepsi." << endl;
             break;
        case 2:
             cout << "You chose Sprite." << endl;
             break;
        case 3:
             cout << "You chose orange juice." << endl;
             break;
        case 4:
             cout << "You chose water." << endl;
             break;
        case 5:
             cout << "You chose Red Bull." << endl;
             break;  
        default:
             cout << "Error. Choice was not valid, here is your money back." << endl;                          
    }    
}

int main()
{
    using namespace std;
    cout << "Please select your beverage. Press:" << endl;
    cout << "  1 for Pepsi" << endl;
    cout << "  2 for Sprite" << endl;
    cout << "  3 for orange juice" << endl;
    cout << "  4 for water" << endl;
    cout << "  5 for Red Bull" << endl;
    Beverage eBeverage;
    cin >> eBeverage;    //  ovdje javlja gresku (no match for 'operator>>' in 'std::cin >> eBeverage')
    WhichBeverage(eBeverage);
   
    system("pause");
    return 0;        
}
U svoju obranu, poceo sam uciti c++ prosli tjedan.
Poruka je uređivana zadnji put uto 3.1.2012 22:55 (Rattner).
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: C++ no match for "operator>>"

enum konstantama se ne može re-deklarirati ili nanovo unijeti druga vrijednost pa je stoga ta cijela linija besmislena.

 

 

http://www.chess.com/livechess/profile/Tracer1808
Poruka je uređivana zadnji put uto 3.1.2012 23:02 (TracerCPP).
13 godina
neaktivan
offline
C++ no match for "operator>>"

#include <iostream>

void WhichBeverage(int nX)
{
    using namespace std;
    switch(nX)
    {
        case 1:
             cout << "You chose Pepsi." << endl;
             break;
        case 2:
             cout << "You chose Sprite." << endl;
             break;
        case 3:
             cout << "You chose orange juice." << endl;
             break;
        case 4:
             cout << "You chose water." << endl;
             break;
        case 5:
             cout << "You chose Red Bull." << endl;
             break; 
        default:
             cout << "Error. Choice was not valid, here is your money back." << endl;                         
    }    
}

int main()
{
    using namespace std;
    cout << "Please select your beverage. Press:" << endl;
    cout << "  1 for Pepsi" << endl;
    cout << "  2 for Sprite" << endl;
    cout << "  3 for orange juice" << endl;
    cout << "  4 for water" << endl;
    cout << "  5 for Red Bull" << endl;
    int nX;
    cin >> nX;
    WhichBeverage(nX);
   
    system("pause");
    return 0;        
}

 

 

Hvala, rješeno! {#}

 
0 0 hvala 0
13 godina
neaktivan
offline
C++ round 2

Imam jos jedan zadatak.

 

/*
Requires:
variables, data types, and numerical operators
basic input/output
logic (if statements, switch statements)

Write a program that allows the user to enter the grade scored in a programming
class (0-100). If the user scored a 100 then notify the user that they got a
perfect score.

Modify the program so that if the user scored a 90-100 it informs the user
that they scored an A

Modify the program so that it will notify the user of their letter grade
0-59 F 60-69 D 70-79 C 80-89 B 90-100 A
*/

#include <iostream>

void YourGrade(int nTestScore)
{
    using namespace std;
   
    if(nTestScore == 100)
        cout << "Congratulations! You got a perfect score!" << endl;  
    else if(nTestScore < 100 && nTestScore> 89)
        cout << "You got an A." << endl;
    else if(nTestScore < 90 && nTestScore> 79)
        cout << "You got a B." << endl;
    else if(nTestScore < 80 && nTestScore> 69)
        cout << "You got a C." << endl;
    else if(nTestScore < 70 && nTestScore> 59)
        cout << "You got a D." << endl;
    else if(nTestScore < 60)
        cout << "I am sorry. You got an F." << endl;
       
}

int main()
{
    using namespace std;
   
    tryAgain:
    cout << "Enter your programming test score (0-100)" << endl;
    int nTestScore;
    cin >> nTestScore;
   
    while (nTestScore > 100)
    {
        cout << "Invalid input. Please re-check your score and try again." << endl;
        goto tryAgain;
    }
    YourGrade(nTestScore);
   
    system("pause");
    return 0;      
}

 

Da ne bi bilo zabune, ovaj kod gore radi. Problem je u tome sto sam procitao da bi se goto trebao koristi sto je manje moguce.

Umjesto toga pokusao sam koristiti do while. Evo i ta verzija.

 

int main()
{
    using namespace std;
    int nTestScore;
   
    do
    {
    cout << "Enter your programming test score (0-100)" << endl;
    cin >> nTestScore;
    } while (nTestScore > 100); 
   
    YourGrade(nTestScore);
   
    system("pause");
    return 0;      
}

 

Ne znam gdje, a ni kako da stavim cout << "Invalid input. Please re-check your score and try again." << endl; a da se ispisuje samo kada vrijedi nTestScore > 100.

Ako ga stavim pod do problem je sto ce se to cout ispisati i prvi put, na pocetku programa prije nego sto je uopce bilo ikakvog inputa i tada to ne bi imalo smisla.

Ako ga stavim poslije do ne postoji mogucnost da taj uvjet vrijedi jer program ne dopusta da se dode do tuda dok taj uvjet vrijedi.

Poruka je uređivana zadnji put uto 3.1.2012 23:43 (Rattner).
 
0 0 hvala 0
17 godina
offline
C++ no match for "operator>>"

Samo malo modificiraš while petlju iz originalnog primjera i izbaciš goto, i dobiješ isti efekt bez špageti koda.

Međutim, zašto ponavljati kod , u  while petju možeš staviti novu poruku "Invalid input, pls enter test score again (0-100)" - to je dovoljno jasna obavijest.

 

#include<iostream>
using namespace std;


int main()
{
  
    cout << "Enter your programming test score (0-100)" << endl;
    int nTestScore;
    cin >> nTestScore;
  
    while (nTestScore < 0 || nTestScore > 100 )
    {
       cout << "Invalid input. Please re-check your score and try again." << endl;
       cout << "Enter your programming test score (0-100)" << endl;
       cin>> nTestScore;
       
    }
    YourGrade(nTestScore);
  
    system("pause");
    return 0;     
}

Poruka je uređivana zadnji put čet 5.1.2012 13:16 (Floki).
 
1 0 hvala 0
17 godina
offline
C++ no match for "operator>>"

Ovako bi bilo logičnije, u while petlju se ulazi kad se mora, a ona ima jedinstvenu poruku, nema ponavljanja koda osim nužnog ponavljanja unosa.

(obrati pažnju i da sam modificirao konzolni ispis i mjesto unosa, tako da se unos vrši u istom redu gdje je obavijest o unosu, a operator cin se pobrine za prelazak u novi red)

A inače, napiši ovu funkciju YourGrade sa switchom, to ti u opisu zadatka i traži, jer je ovdje sa switchom moguće napisati kod jednostavnije, tako da ti je to prikriveni zahtjev.

#include<iostream>
using namespace std;


int main()
{
  
    cout << "Enter your programming test score (0-100): ";
    int nTestScore;
    cin >> nTestScore;
  
    while (nTestScore < 0 || nTestScore > 100 )
    {
       cout << "Invalid input! Enter your programming test score again (0-100): ";
       cin>> nTestScore;
       
    }
    YourGrade(nTestScore);
  
    system("pause");
    return 0;     
}

Poruka je uređivana zadnji put čet 5.1.2012 13:37 (Floki).
 
0 0 hvala 1
13 godina
neaktivan
offline
C++ no match for "operator>>"

Naredba GO TO šteti programiranju, onoliko koliko pušenje šteti ljudskom zdravlju. 

Moj PC  
0 0 hvala 0
17 godina
offline
Re: C++ no match for "operator>>"
SaidSikiraX kaže...

Naredba GO TO šteti programiranju, onoliko koliko pušenje šteti ljudskom zdravlju. 

Programeru šteti i više nego programiranju, bit je da se čovjek nauči logičkim uvjetima, a ne preskocima, pošto je bit programiranja logika, a ne preskok.

Zato je dobro da je pitao, i da hoće pravo krenuti.

Kao i u svem drugom u programirnju i ovdje postoji više izbora za izvršiti provjeru unosa i poslati odgovarajuće poruke: while, do-while,  goto

Bira se način koji daje manje koda, veću efikasnost i robustnost, a bolju preglednost.

Kompromisi uvijek moraju biti u svemu, jer idealnog nema. Tako bi ovdje do-while tražila manje koda, ali na ispis greške bi mogli zaboraviti ili dodati još jednu provjeru u petlju, stavio sam petlju while jer ne želim dodatnu provjeru da bi ispisao grešku, ali sam tim dobio prvi upis izvan petlje.

Poruka je uređivana zadnji put čet 5.1.2012 14:15 (Floki).
13 godina
neaktivan
offline
Re: C++ no match for "operator>>"
SaidSikiraX kaže...

Naredba GO TO šteti programiranju, onoliko koliko pušenje šteti ljudskom zdravlju. 

 Odo zapaliti jednu...

Programming is understanding. – Kristen Nygaard
13 godina
neaktivan
offline
C++ no match for "operator>>"

Zar uopće moram linkat xkcd kad se priča o goto naredbi? :D

http://xkcd.com/292/

 
2 0 hvala 0
13 godina
neaktivan
offline
C++ no match for "operator>>"
Floki kaže...

Ovako bi bilo logičnije, u while petlju se ulazi kad se mora, a ona ima jedinstvenu poruku, nema ponavljanja koda osim nužnog ponavljanja unosa.

(obrati pažnju i da sam modificirao konzolni ispis i mjesto unosa, tako da se unos vrši u istom redu gdje je obavijest o unosu, a operator cin se pobrine za prelazak u novi red)

A inače, napiši ovu funkciju YourGrade sa switchom, to ti u opisu zadatka i traži, jer je ovdje sa switchom moguće napisati kod jednostavnije, tako da ti je to prikriveni zahtjev.

#include<iostream>
using namespace std;


int main()
{
  
    cout << "Enter your programming test score (0-100): ";
    int nTestScore;
    cin >> nTestScore;
  
    while (nTestScore < 0 || nTestScore > 100 )
    {
       cout << "Invalid input! Enter your programming test score again (0-100): ";
       cin>> nTestScore;
       
    }
    YourGrade(nTestScore);
  
    system("pause");
    return 0;     
}

 

Tako jednostavno a nisam se sjetio toga {#}

 

Probao sam sa switchom ali ne znam kako da to napravim. Tj. ne znam kako da to napravim a da bude krace nego s if/else-if.

Znam kako koristiti switch kada jedan case nosi jednu vrijednost (pogledati prvi zadatak u temi, da ne mislite da trazim od vas da mi rjesavate cijele zadatke) ali kada jedan case treba nositi vise vrijednosti, poput ovoga (nTestScore < 100 && nTestScore> 89), onda ne znam. Nisam nasao nikakav primjer za to na internetu,

pa ako mi netko moze to objasniti na nekom primjeru, puno bi mi pomoglo.

Poruka je uređivana zadnji put čet 5.1.2012 22:46 (Rattner).
 
0 0 hvala 0
17 godina
offline
C++ no match for "operator>>"

U tom slučaju moraš dobiti konstantne vrijednosti za slučajeve u switchu.

Potrebno je samo na varijablu score primjeniti cjelobrojno djeljenje sa 10, a onda nam je npr. vrijednost i za 85 i 80 bodova ista, odnosno iznosi 8.

Da se malo našalim, ovaj switch simulira realnost, defaultna je čovjeku samo jedinica, ostalo postiže radom.{#}

 

 

void YourGrade( int score)
{
    score /= 10;
    switch(score)
    {
    case 10:
       {
          cout<< "Perfect score" << endl;
          break;
       }
    case 9:
       {
          cout<< "A" << endl;
          break;
       }
    case 8:
       {
          cout<< "B" << endl;
          break;
       }
    case 7:
       {
          cout<< "C" << endl;
          break;
       }
    case 6:
       {
          cout<< "D" << endl;
          break;
       }
    default:
       {
          cout<< "F" << endl;
       }
    }
}

Poruka je uređivana zadnji put pet 6.1.2012 14:54 (Floki).
 
0 0 hvala 1
13 godina
neaktivan
offline
C++ no match for "operator>>"

Kada bi bodovanje bilo drugacije, npr. da cetvorka nije od 79 do 90 nego od 74 do 85, kako bih onda to rjesio?

 

 

I novi zadatak:

Requires:
variables, data types, and numerical operators
basic input/output
logic (if statements, switch statements)
loops (for, while, do-while)
arrays

Write a program that asks the user to enter the number of pancakes eaten for breakfast by 10 different people (Person 1, Person 2, ..., Person 10)
Once the data has been entered the program must analyze the data and output which person ate the most pancakes for breakfast.

★ Modify the program so that it also outputs which person ate the least number of pancakes for breakfast.

★★★★ Modify the program so that it outputs a list in order of number of pancakes eaten of all 10 people.
i.e.
Person 4: ate 10 pancakes
Person 3: ate 7 pancakes
Person 8: ate 4 pancakes
...
Person 5: ate 0 pancakes

 

Ja sam malo promjenio zadatak. Nisam ga postavio za deset osoba, nego korisnik sam unosi za koliko ljudi zeli napraviti izracun (velicinu mreze). I nisam isao na temu dorucka nego na natjecanje u jedenju palacinki. Cinilo mi se prikladnije {#}

Evo prvi dio zadatka (i problem):

#include <iostream>
#include <string>

int main()
{
    using namespace std;
    cout << "How many contestors in pancake eating are there?" << endl;
    int nArrayElements;
    cin >> nArrayElements;
    const int nSize = nArrayElements;
    int anPancakes[nSize]; // mreza s brojem pojedenih palacinki
    string astrNames[nSize]; // mreza s imenima jedaca palacinki(lol, kakav izraz)
    int nX = 1; // redni broj jedaca palacinki
   
    for(int nCurrentIndex=0; nCurrentIndex < nSize; nCurrentIndex++)
    {   
        cout << "Enter the full name of the " << nX+nCurrentIndex <<
            ". contestor in pancake eating." << endl;
        getline(cin, astrNames[nCurrentIndex]);
        cout << "Enter the number of pancakes that " << astrNames[nCurrentIndex] <<
            " has eaten." << endl;
        cin >> anPancakes[nCurrentIndex];     
    }

 

Kada dode do for tada umjesto da izbaci prvi cout i onda ceka da se unese ime, odmah izbacuje i prvi i drugi cout tj. preskace ono getline.

Prije nego sto sam ubacio onaj dio gdje pita velicinu mreze/broj ljudi, kada je ovaj cout u for izjavi bio prvi cout u programu, prvi put (za prvu osobu) bi radilo kako treba, ne bi preskocio getline. Kada bi opet doslo do toga, tj. kada pita isto to ali za drugu osobu, onda bi odmah izbacio i prvi i drugi cout, kao i sada. Ne kuzim u cemu niti gdje je problem pa ne znam sta da guglam.

 

I drugi dio, koji bi trebao to poredati po velicini, pocevsi od najveceg:

    //Prolazi kroz svaki element mreze
    for (int nCurrentIndex=0; nCurrentIndex < nSize; nCurrentIndex++)
    {
        // prvi element u mrezi je za sada ujedno i najveci
        int nBiggestIndex = nCurrentIndex;
       
        // pocinjemo traziti dalje, od drugog elementa
        for(int nIndex = nCurrentIndex + 1; nIndex < nSize; nIndex++)
        {
            // ako nademo element koji je veci od do tada najveceg
            if(anPancakes[nCurrentIndex] > anPancakes[nBiggestIndex])
                // tada on postaje najveci
                nBiggestIndex = nCurrentIndex;       
        }  
        // ...i zamjenjujemo prvi element s najvecim, tj. redamo ih po velicini
        swap(anPancakes[nCurrentIndex], anPancakes[nBiggestIndex]);
        for (int nIndex2=0; nIndex2 > nSize; nIndex2++)
        cout << astrNames[nIndex2] << " ate " << anArray[nIndex2] << " pancakes.";
        cout << endl;
    }
   
    system("pause");
    return 0;
}

Poruka je uređivana zadnji put ned 8.1.2012 19:04 (Rattner).
 
0 0 hvala 0
17 godina
offline
C++ no match for "operator>>"

E, onda to ne bi mogao riješiti switchom, sportskim riječnikom, ovdje si dobio priliku da "zakucaš", odnosno da zahvaljujući distribuciji ocjena iskoristiš cjelobrojno djeljenje za dobiti konstante u switchu.

Onda bi išao na if - else if - else

Ali ne na tvoj način, dovoljna je jednostruka provjera od manjih ka većem:

 

if(score < 60)

   cout<< "F";

else if(score < 70)

   cout<< "D";

Poruka je uređivana zadnji put ned 8.1.2012 19:25 (Floki).
 
0 0 hvala 0
17 godina
offline
C++ no match for "operator>>"

Ja to nisam mogao ni compilirati u VS-u, ne dozvoljava mi da na taj način vršim alokaciju niza, pa sam zato radio onako kako se inače radi za promjenjive veličine nizova, koristio sam dinamičku alokaciju niza.

Ti ovdje imaš problem sa zajedničkim korištenjem cout i getline, ja sam uz cout koristio cin i sve radi OK.

 

 

#include <iostream>
#include <string>
using namespace std;

int main()
{
    cout << "How many contestors in pancake eating are there?" << endl;
    int nSize;
    cin >> nSize;
    int* anPancakes = new int[nSize]; // mreza s brojem pojedenih palacinki
    string* astrNames = new string [nSize]; // mreza s imenima jedaca palacinki(lol, kakav izraz)
    int nX = 1; // redni broj jedaca palacinki
  
    for(int nCurrentIndex=0; nCurrentIndex < nSize; nCurrentIndex++)
    {  
        cout << "Enter the full name of the " << nX+nCurrentIndex <<
            ". contestor in pancake eating." << endl;
        cin>> astrNames[nCurrentIndex];
        cout << "Enter the number of pancakes that " << astrNames[nCurrentIndex] <<
            " has eaten." << endl;
        cin >> anPancakes[nCurrentIndex];    
    }
    for(int i= 0; i<nSize; i++)
    {
       cout<< astrNames[i] << " : " << anPancakes[i] << endl;
    }
    delete [] anPancakes;
    delete [] astrNames;
}

Poruka je uređivana zadnji put pon 9.1.2012 12:55 (Floki).
 
0 0 hvala 1
13 godina
neaktivan
offline
C++ no match for "operator>>"

Ja sam za unos koristio getline umjesto cin zato da se moze unijeti i ime i prezime. Znam da mogu to odvojiti na (npr.) cin >> strFirstName i cin >> strSurname ali kako bih to napisao a da zadrzim getline tj. da ne pita posebno ime i nakon toga posebno prezime. Postoji li neka alternativa za cout kao sto je getline za cin?

Zanime me kako bih to napravio ovako, a da i dalje sve funkcionira normalno?

cout << "Enter your full name." << endl;

getline (cin, strFullName);

   Kyle Broflovski

 

Umjesto ovoga:

cout << "Enter your first name." << endl;

cin >> strFirstName;   Kyle

cout << "Enter your surname." << endl;

cin >> strSurname;   Broflovski

 

I da, ovo 

    for(int i= 0; i<nSize; i++)
    {
       cout<< astrNames[i] << " : " << anPancakes[i] << endl;
    }

...ispisuje vrijednosti redom kojim su unesene a u zadatku se trazi da ih rasvrsta i ispisuje po velicini, pocevsi od najvece.

 

Zato sam to napisao ovako

    //Prolazi kroz svaki element mreze
    for (int nCurrentIndex=0; nCurrentIndex < nSize; nCurrentIndex++)
    {
        // prvi element u mrezi je za sada ujedno i najveci
        int nBiggestIndex = nCurrentIndex;
       
        // pocinjemo traziti dalje, od drugog elementa
        for(int nIndex = nCurrentIndex + 1; nIndex < nSize; nIndex++)
        {
            // ako nademo element koji je veci od do tada najveceg
            if(anPancakes[nCurrentIndex] > anPancakes[nBiggestIndex])
                // tada on postaje najveci
                nBiggestIndex = nCurrentIndex;       
        }  
        // ...i zamjenjujemo prvi element s najvecim, tj. redamo ih po velicini
        swap(anPancakes[nCurrentIndex], anPancakes[nBiggestIndex]);

        for (int nIndex2=0; nIndex2 > nSize; nIndex2++)
        {

        cout << astrNames[nIndex2] << " ate " << anPancakes[nIndex2] << " pancakes.";
        cout << endl;

        }


    }

 

    delete [] anPancakes;

    delete [] astrNames;
    system("pause");
    return 0;
}

Ali kada je to tako napisano ovaj zadnji for se ne izvodi, ne ispisuje nista. Ocito sam negdje pogrijesio ali ne znam gdje.

 

I sta je s ovim crtama izmedu redova? Nekada ih napravi a nekada ne {#}

 
0 0 hvala 0
14 godina
neaktivan
offline
C++ no match for "operator>>"
http://www.chess.com/livechess/profile/Tracer1808
Moj PC  
1 0 hvala 0
17 godina
offline
C++ no match for "operator>>"

Pa kad si u tom algoritmu pomješao indekse niza sa vrijednostima, zato ne radi.

Riješi to na najjednostavniji način:

- pošto se sortiraju dva niza na osnovu kriterija jednog, umjesto dva niza napravi jedan niz pair<string, int>

- za napraviti algoritam za sortitiranje ne treba otkrivati toplu vodu, uzmi bubble sort algoritam

 

 

#include <iostream>
#include <string>
using namespace std;


int main()
{
    cout << "How many contestors in pancake eating are there?" << endl;
    int nSize;
    cin >> nSize;
    pair<string, int>* anPancakes = new pair<string, int>[nSize];
  
    for(int i=0; i < nSize; i++)
    {  
       cout << "Enter the full name of the " << i+1 <<
            ". contestor in pancake eating." << endl;
       cin>> anPancakes[i].first;
       cout << "Enter the number of pancakes that " << anPancakes[i].first <<
            " has eaten." << endl;
       cin >> anPancakes[i].second;
    }

    for(int i=0; i < nSize-1; i++)
    {
        for(int j = 0; j<nSize-1-i; j++)
       {
          if(anPancakes[j+1].second > anPancakes[j].second)
          {
             swap(anPancakes[j], anPancakes[j+1]);
          }
       }
    }

    for(int i= 0; i<nSize; i++)
    {
       cout<< anPancakes[i].first << " : " << anPancakes[i].second << endl;
    }
  
    delete [] anPancakes;
    return 0;
}

btw. šteta što se traži strogo korištenje arrraya, inače bi ja ovdje deklarirao pair<string, int> vector, a onda preko iteratora upotrijebio sort metodu iz STL-a, uz jednu bool funkciiju da odredim način sortiranja.

 

 

 

 

 

 

 

 

 

 

 

Poruka je uređivana zadnji put čet 12.1.2012 13:06 (Floki).
 
0 0 hvala 1
13 godina
neaktivan
offline
C++ no match for "operator>>"

Hvala. Inace, nisam jos ucio ni parove ni bubble sort ni STL. {#}

Poruka je uređivana zadnji put čet 12.1.2012 20:06 (Rattner).
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: C++ no match for "operator>>"
Rattner kaže...

Hvala. Inace, nisam jos ucio ni parove ni bubble sort ni STL. {#}

 A što bi bilo da moraš učiti HeapSort ili Merge Sort?{#}

Those types are not abstract, they are as real as int and float. – Doug McIlroy
14 godina
neaktivan
offline
Re: C++ no match for "operator>>"
royalhero kaže...

 A što bi bilo da moraš učiti HeapSort ili Merge Sort?{#}

Ma nije to ništa teško. Čista logika {#}. S druge strane, quick sort je zanimljiv.

http://www.chess.com/livechess/profile/Tracer1808
13 godina
neaktivan
offline
Re: C++ no match for "operator>>"
TracerCPP kaže...

Ma nije to ništa teško. Čista logika {#}. S druge strane, quick sort je zanimljiv.

 Zašto onda ih nisi objasnio u knjizi?

Those types are not abstract, they are as real as int and float. – Doug McIlroy
17 godina
offline
Re: C++ no match for "operator>>"
Rattner kaže...

Hvala. Inace, nisam jos ucio ni parove ni bubble sort ni STL. {#}

Ok, evo ti prilika sad za naučiti bubble sort.

Inače si sam potegao algoritam swap iz STL-a, pa sam zato i spomenuo STL.

Pošto si kod nizova, vrjeme je za algoritme sortiranja, dinamičku alokaciju i pokazivače i reference, sve je to povezano.

Inače je zadatak tako koncipiran da moraš znati neki algoritam sortiranja, u opisu zadatka piše arrays, a to uključuje i algoritme sortiranja.

Poruka je uređivana zadnji put čet 12.1.2012 20:46 (Floki).
14 godina
neaktivan
offline
Re: C++ no match for "operator>>"

Zato što imaju jako puno coda, a taj code zahtjeva malo više znanja i razumijevanja nego što se došlo s gradivom u knjizi (rekurzije, binarna stabla itd). To je za malo napredije, ali kada se dođe do te razine nije ih problem shvatiti tj. logiku kojom oni rade.

http://www.chess.com/livechess/profile/Tracer1808
13 godina
neaktivan
offline
Re: C++ no match for "operator>>"
royalhero kaže...

 A što bi bilo da moraš učiti HeapSort ili Merge Sort?{#}

Daleka buducnost za mene {#}

 

 

Floki kaže...

Ok, evo ti prilika sad za naučiti bubble sort.

Inače si sam potegao algoritam swap iz STL-a, pa sam zato i spomenuo STL.

Pošto si kod nizova, vrjeme je za algoritme sortiranja, dinamičku alokaciju i pokazivače i reference, sve je to povezano.

Inače je zadatak tako koncipiran da moraš znati neki algoritam sortiranja, u opisu zadatka piše arrays, a to uključuje i algoritme sortiranja.

U onom tutorialu po kojemu radim, swap je (veoma kratko) objasnjen u lekciji 6.4 - Sorting an array using selection sort. Ostali algoritmi sortiranja se ne obraduju u ovom tutorialu ali sada kada vidim da je bubble sort puno kraci i pregledniji od selection sorta, obradit cu ga u narednih nekoliko dana. STL se obraduje tek u 16. poglavlju.

Ja sam trenutno na 7. poglavlju, na funkcijama i radim passing arguments by...

Dinamicku alokaciju, pokazivace i reference sam obradio. Samo teorijski to jest. Nisam jos poceo rijesavati zadatke s pokazivacima.

 

Ako netko zna neku stranicu sa zadatcima ili ako ih ima u PDF/wordu/bilocemu, dobro bi mi doslo. Zasada imam ovu, ovu i u PDF-u neke zadatke s nekog natjecanja (pise HONI 2011/2012, 3.kolo.).

 

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice