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

Rozdział 15 do..while , problem z zadaniem

Ostatnio zmodyfikowano 2012-04-19 22:25
Autor Wiadomość
Hotivek
Temat założony przez niniejszego użytkownika
Rozdział 15 do..while , problem z zadaniem
» 2012-04-19 21:09:33
Czy kalkulator z drugiego zadania może tak wyglądać.  Co dodać żeby pokazywało tylko 1 wynik .

C/C++
#include <iostream>

using namespace std;

int main()
{
   
    int one, two, dz, wynik;
   
    cout << "Podaj pierwsza liczbe" << endl;
    cin >> one;
    cout << "Podaj druga liczbe\n";
    cin >> two;
   
    cout << "Jakie dzialanie chcesz wykonac?\n";
    cout << "[1] Dodawanie\n[2] Odejmowanie\n[3] Mnozenie\n[4] Dzielenie\n[5] Rezygnuje\n";
    cin >> dz;
   
    do
    {
        cout << "Wynik to " << one + two << endl;
       
        break;
       
    } while( dz = 1 );
   
    do
    {
        cout << "Wynik to" << one - two << endl;
        break;
    } while( dz = 2 );
   
    do
    {
        cout << "Wynik to" << one * two << endl;
        break;
    } while( dz = 3 );
   
    do
    {
        cout << "Wynik to" << one / two << endl;
        break;
    } while( dz = 4 );
   
    do
    {
        cout << "Koniec\n";
        break;
    } while( dz = 0 );
   
   
    return 0;
}

A tutaj inne . Nie wiem jak napisać "Jeżeli błąd, wróć do kroku 1".

C/C++
#include <iostream>

using namespace std;

int main()
{
    int liczba;
   
   
    cout << "Podaj jakas liczbe\n";
    cin >> liczba;
   
   
    if( liczba > 0 )
    {
        do {
            cout << "Plik\n";
            liczba--;
           
        } while( liczba > 0 );
       
    }
   
   
    if( liczba < 0 )
    {
        cout << " podaj dodatnia liczbe\n";
    }
   
    return 0;
}
P-54840
RazzorFlame
» 2012-04-19 21:59:16
Nie sądze żeby ktos zrozumiał twoje pytanie ...
P-54846
Hotivek
Temat założony przez niniejszego użytkownika
» 2012-04-19 22:07:54
W pierwszym przypadku chciałbym się dowiedzieć jak zatrzymać wykonywanie pętli do...while po podaniu np 2 żeby program podał wynik samego odejmowania a nie wszystkie za każdym razem.

A w drugim w jaki sposób napisać przekierowanie że w przypadku if (liczba<0) program wraca do początku i pyta ponownie cin>>liczba .
P-54850
SeaMonster131
» 2012-04-19 22:12:49
1.
Wszędzie dałeś do {} while(); więc wiadomo, że wykona się każda pętla (patrz. kurs), użyj switch(), if, lub chociażby pętli while() jak tak bardzo chcesz :)

2.
Tutaj natomiast, pętla (np do {} while) musi się wykonywać dopóki !cin.good (czyli nie jest wprowadzona poprawna wartość), a w tej pętli oczywiście wpisywanie liczby oraz pamiętaj o czyszczeniu strumienia.

if (liczba<0)
No albo pętla musi się wykonywać dopóki liczba jest mniejsza od 0 :)
P-54851
Hotivek
Temat założony przez niniejszego użytkownika
» 2012-04-19 22:15:10
Dziękuję
P-54852
RazzorFlame
» 2012-04-19 22:20:30
C/C++
do
{
    cout << "Wynik to " << one + two << endl;
   
    break;
   
} while( dz = 1 );

Pff... Czy to naprawde takie trudne?
'=' - Przypisanie
'==' porownanie.
Po co robisz pętle jeżeli tylko raz z niej korzystasz. Mysle że w tym zadaniu chodziło żeby cały program był w petli.
Patrz:
C/C++
#include <iostream>

using namespace std;

int main()
{
    int a, b, dz;
   
    do
    {
        cout << "Podaj 1 liczbe: ";
        cin >> a;
        cout << "Podaj 2 liczbe: ";
        cin >> b;
        cout << "Co chcesz wyswietlic?\n[1]Dodawanie\n[2]Odejmowanie\n[3]Dzielenie\n[4]Mnozenie\n[5]Wyjscie";
        cin >> dz;
       
        if( dz == 1 ) //dodawanie
        {
            cout << "\n\n" << a + b << endl;
        }
        if( dz == 2 ) //odejmowanie
        {
            cout << "\n\n" << a - b << endl;
        }
        if( dz == 3 ) //mnozenie
        {
            cout << "\n\n" << a * b << endl;
        }
        if( dz == 4 ) //dzielenie
        {
            cout << "\n\n" << a / b << endl;
        }
       
    } while( dz != 5 ); //wykonuj dopóki 'dz' jest inne od 5 (opcja wyjscia)
   
    return 0;
}
I masz.
P-54853
Bimbol
» 2012-04-19 22:25:22
@Ad Pierwszy przykład.

Zamiast while do użyj Switch Case lub if.
Używając pętli do while z warunkami:
while( dz = 1 );
while( dz = 2 );
while( dz = 3 );
while( dz = 4 );

Znak
=
 przypisuje wartość, a nie porównuje wartości.
A pętla while wykonuje się jeśli warunek jest prawdziwy.
Czyli dając taki warunek obojętnie co wpiszesz nie będzie to prawdą i program
leci do przodu wykonując to wszystko po kolei.

C/C++
do
{
    cout << "Wynik to " << one + two << endl;
   
    break;
   
} while( dz = 1 );

do
{
    cout << "Wynik to" << one - two << endl;
    break;
} while( dz = 2 );

do
{
    cout << "Wynik to" << one * two << endl;
    break;
} while( dz = 3 );

do
{
    cout << "Wynik to" << one / two << endl;
    break;
} while( dz = 4 );

do
{
    cout << "Koniec\n";
    break;
} while( dz = 0 );

Napisałeś to bez sensu. Wróc do lekcji o If i Switch Case.

Edit. Uprzedziło mnie już sporo osób.





 
P-54854
« 1 »
  Strona 1 z 1