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

Problem z prostym programem

Ostatnio zmodyfikowano 2012-09-06 22:14
Autor Wiadomość
Sayrs
Temat założony przez niniejszego użytkownika
Problem z prostym programem
» 2012-09-06 21:32:55
Witam,
mam pewien problem z moim prostym programikiem, wszystko niby działa, tyle że program prosi mnie po kilka raz o podanie danych do strumieni wejsciowych w funkcjach, które wywołuje niestety nie we własciwej kolejnosci. Poniżej zamieszczam mój programik i proszę o powiedzenie mi co zrobiłem źle.

C/C++
#include <iostream>
using namespace std;

//------------------------------------------------------------

int Wprowadz1()
{
    int Predkosc;
    bool Prawda;
    do
    {
        cout << "Wprowadz predkosc ciala goniacego (m/s): ";
        cin >> Predkosc;
        Prawda = cin.good();
        cin.clear();
        cin.sync();
    } while( Prawda == 0 );
   
    return Predkosc;
}

//------------------------------------------------------------

int Wprowadz2()
{
    int Predkosc;
    bool Prawda;
    do
    {
        cout << "Wprowadz predkosc ciala gonionego (m/s): ";
        cin >> Predkosc;
        Prawda = cin.good();
        cin.clear();
        cin.sync();
    } while( Prawda == 0 );
   
    return Predkosc;
}

//------------------------------------------------------------

int Odleglosc()
{
    int Odleglosc;
    bool Prawda;
    do
    {
        cout << "Wprowadz odleglosc miedzy cialami (m): ";
        cin >> Odleglosc;
        Prawda = cin.good();
        cin.clear();
        cin.sync();
    } while( Prawda == 0 );
   
    return Odleglosc;
}

//------------------------------------------------------------

int Wybor()
{
    int Liczba;
    bool Prawda;
    do
    {
        cin >> Liczba;
        Prawda = cin.good();
        cin.clear();
        cin.sync();
    } while( Prawda == 0 );
   
    return Liczba;
}

//------------------------------------------------------------

int main()
{
   
    int Wybrales;
    int A;
    int B;
    int C;
    do
    {
        cout << "--------------------------------------------------" << endl;
        cout << "| Wybierz jedna z opcji:                         |" << endl;
        cout << "| [1] W ile jedno cialo dogoni drugie            |" << endl;
        cout << "| [0] Koniec                                     |" << endl;
        cout << "--------------------------------------------------" << endl;
        Wybor();
        Wybrales = Wybor();
        switch( Wybrales )
        case 1
    : Wprowadz1();
        Wprowadz2();
        Odleglosc();
        A = Wprowadz1();
        B = Wprowadz2();
        C = Odleglosc();
        cout << "Cialo goniace dogoni drugie cialo w czasie " <<( C /( A - B ) ) << " sekund" << endl;
        break;
    } while( Wybrales == 1 );
   
    cout << "This is over...";
    return 0;
}


PS - Sorki za błędy ortograficzne ale klawka mi nawala :/
P-64465
cyklopek11
» 2012-09-06 22:09:33
Pocisk naprowadzający ....
1.)
C/C++
Wybor(); // --> wartość zwracana tej funkcji ulatuje w próżnię ....do usunięcia
Wybrales = Wybor();

2.) Gdzie Switch ma case 0:    ????????

Popraw te błędy i spróbuj podumać czy to pomoże ...

P-64470
Sayrs
Temat założony przez niniejszego użytkownika
» 2012-09-06 22:13:52
Dzięki za pomoc, ale już sam wyczaiłem co zrobiłem nie tak, do zamknięcia.
P-64474
paki2009
Wyjasnienie
» 2012-09-06 22:14:45
Jak deklarujesz funkcje to zwróć uwagę na to co do niej wpisujesz, mianowicie wpisałeś  zapytanie do wprowadzenia prędkości ciała w funkcji, wywołuje się ona dwa razy, ponieważ
//Wprowadz1();
//Wprowadz2();
//Odleglosc();
A = Wprowadz1();
B = Wprowadz2();
C = Odleglosc();

Chodzi o to że funkcja zapyta ciebie o dany parametr nawet jak została przypisana do zmiennej, zatem usuń Wprowadz1(); itp. Po wykonaniu tej operacji program będzie działał jak należy.
P-64475
« 1 »
  Strona 1 z 1