Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Moja głupia funkcja

Ostatnio zmodyfikowano 2008-08-06 23:16
Autor Wiadomość
invisiblekid
Temat założony przez niniejszego użytkownika
Moja głupia funkcja
» 2008-08-04 19:31:20
Napisałem program o dość głupiej tematyce, ale nawet taki głupi program nie chce mi zadziałać. Dlatego potrzebuje pomocy przy tej funkcji, która się nie kompiluje:
C/C++
void Dyscyplina( bool & pomoc, string & sport )
{
    cout << "Podaj dyscypline: ";
    cin >> sport;
    if( sport == "koszykowka" )
    {
        cout << "Tak, to jest koszykowka." << endl;
        pomoc = true;
    } else cout << "Nie, to nie jest " << sport << "." << endl;
   
    return;
}
Podczas kompilacji pojawia się błąd, że zdefiniowałem za mało argumentów. Za bardzo tego nie rozumiem pomieważ wydaje mi się, iż zdefiniowałem wszytko czego używam w tej funkcj.
BTW: Mam jeszcze teoretyczne pytanko czy w parametrach tej funkcji przy zmiennej "sport" potrzebuje ten znaczek "&", czy tylko dodałem go przez swoją nadgorliwość?
TIA.
P-1154
jimmye
» 2008-08-04 19:48:50
Proponuję takie rozwiązanie:

C/C++
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

int main()
{
    int dyscyplina;
    string sport;
    string pomoc;
   
    cout << "Podaj dyscypline: ";
    cin >> sport;
    if( sport == "koszykowka" )
    {
        cout << "Tak, to jest koszykowka." << endl;
        pomoc = true;
    } else cout << "Nie, to nie jest " << sport << "." << endl;
   
    getch();
    return( 0 );
}

U Ciebie zamiast return(0); było return; i juz masz 1 błąd.
Naucz się rozpoznawać błędy, ktore wskazuje ci kompilator.
Przejżyj mój kod i zobacz co zrobiłeś źle.
P-1156
invisiblekid
Temat założony przez niniejszego użytkownika
» 2008-08-04 20:14:45
Nie za bardzo o to mi chodziło. W całym programie funkcję main mam inną, chodziło mi o to, że to co cytowałem nie działa jako odrębna funkcja. Ale dzięki za chęć pomocy :D
A tak poza tym raczej umiem rozpoznawać komunikaty (może nie wszystkie, ale po angielsku rozumiem i głupi nie jestem- przynajmniej tak myślę :P)
BTW: zmienna "pomoc" ma mieć charakter logiczny, a nie słowny (czy whateva jaki)
P-1157
DejaVu
» 2008-08-04 21:05:50
Wklej cały kod - moim zdaniem na początku programu nie masz napisanego:
void Dyscyplina( bool & pomoc, string & sport );
Tylko jakąś inną linijkę, której nie zmodyfikowałeś później dodając parametr. Z tego co wkleiłeś nic nie wywnioskujemy bo wygląda na to że składniowo funkcja jest napisana poprawnie.

/edit:
Poniższy przykład mi działa:
C/C++
#include <iostream>
#include <conio.h>
using namespace std;

void Dyscyplina( bool & pomoc, string & sport );

int main()
{
    bool tPomoc;
    string tSport;
    Dyscyplina( tPomoc, tSport );
    getch();
    return 0;
}

void Dyscyplina( bool & pomoc, string & sport )
{
    cout << "Podaj dyscypline: ";
    cin >> sport;
    if( sport == "koszykowka" )
    {
        cout << "Tak, to jest koszykowka." << endl;
        pomoc = true;
    } else cout << "Nie, to nie jest " << sport << "." << endl;
   
    return;
}
P-1161
invisiblekid
Temat założony przez niniejszego użytkownika
» 2008-08-05 14:23:56
Ok, ten błąd mi się wyjaśnił (zapomniałem dodać parametry do funkcji wewnątrz kodu- moja głupota jednak nie zna granic), ale mam inny problem: funkcja się kompiluje ale nie wyświetla się okno programu gdy włączam uruchom :(. Zamieszczam kod programu (jest nieskończenie głupi, a w dodatku trochę zrzynałem z kursu- lekcji o strukturach- ale jak widać nie umiem nawet zrzynać):
C/C++
#include <iostream>
#include <conio.h>
#include "materialy/console.ddt"

using namespace std;
using namespace ddt::console;

void WyswietlKomunikaty()
{
    gotoxy( 1, 25 );
    cout << "Aby komtynuowac wcisnij dowolny klawisz      ";
    cout << "[ESC] Wyjscie     ";
    return;
}
void Dyscyplina( bool & pomoc, string & sport )
{
    cout << "Podaj dyscypline: ";
    cin >> sport;
    if( sport == "koszykowka" )
    {
        cout << "Tak, to jest koszykowka." << endl;
        pomoc = true;
    } else cout << "Nie, to nie jest" << sport << "." << endl;
   
    return;
}

int main()
{
    string sport;
    bool koniec = false;
    bool pomoc = false;
    while( koniec != false )
    {
        clrscr();
        textcolor( 12 );
        cout << "Witaj. Twoim zadaniem jest zgadniecie ulubionego sportowca autora tego programu." << endl;
        if( pomoc = true ) cout << "Dyscyplina: " << sport << endl;
       
        cout << "Podaj sportowca: " << endl;
        string nazwa;
        cin >> nazwa;
        cin.ignore();
        if( nazwa == "Bryant" )
        {
            cout << "Tak, moim ulubionym sportowcem tez jest Kobe" << endl;
        } else
        {
            if( nazwa == "Malysz" )
            {
                cout << "Nie to nie Adam, to tez nie ta dyscyplina sportu." << endl;
                if( pomoc != true ) Dyscyplina( pomoc, sport );
               
            } else
            {
                if( nazwa == "Kubica" )
                {
                    cout << "Nie to nie Robert, choc jego tez lubie." << endl;
                    if( pomoc != true ) Dyscyplina( pomoc, sport );
                   
                } else
                {
                    cout << "Nie trafiles w mojego ulubionego sportowca" << endl;
                    if( pomoc != true ) Dyscyplina( pomoc, sport );
                   
                    WyswietlKomunikaty();
                }
            }
        }
       
        unsigned char znak = getch();
        switch( znak )
        {
        case 27:
            koniec = true;
            break;
        }
    }
    return( 0 );
}
Jakbyście mi mogli powiedzieć co robię źle, byłbym wdzięczny. Mam wrażenie, że to coś z funkcją getch(), ale nie wiem jak sobie z tym poradzić.      
    
 
P-1169
DejaVu
» 2008-08-05 18:08:58
Hm... konsola wogóle Ci się nie wyświetla? Zapewne masz utworzony projekt. Prawy klawisz na projekcie/ properties i tam powinno być wybrane zamiast GUI to Console (czy coś takiego) => z pamięci piszę więc nazwy mogą być trochę inne. Niemniej jednak tam jest lista z czterema pozycjami i jedna z nich to Console, którą powinieneś zaznaczyć.
P-1171
invisiblekid
Temat założony przez niniejszego użytkownika
» 2008-08-05 21:13:24
Tylko, że ja nie tworzyłem żadnego projektu, wiec nie wiem co zmieniać. A czy panu ten program działa?
P-1174
DejaVu
» 2008-08-05 22:54:39
Popraw warunek pętli while na:
while( koniec == false )
P-1176
« 1 » 2
  Strona 1 z 2 Następna strona