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

Wyjście z programu za pomocą znaku x lub X w pętli while

Ostatnio zmodyfikowano 2013-10-20 21:05
Autor Wiadomość
lvcky
Temat założony przez niniejszego użytkownika
Wyjście z programu za pomocą znaku x lub X w pętli while
» 2013-10-20 19:05:30
Witam serdecznie,
mam pewien problem.
Chciałbym, żeby w momencie gdy użytkownik wybierze na klawiaturze znak x lub X (niezaleznie od jego wielkosci) program zamykał się. Nie mogę tego zrobić. Czy ktoś mi pomoże?


Napisałem program, który wygląda tak:

C/C++
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <math.h>

using namespace std;

int _tmain( int argc, _TCHAR * argv[] )
{
    float a, b, c, wynik1, wynik2, wynik3, alfa, beta, gamma;
    char koniec, wybor;
    cout << "MENU:\n" << endl;
    cout << "Wybierz na klawiaturze przycisk 1 jesli chcesz obliczyc pole i obwod prostokata\n" << endl;
    cout << "Wybierz na klawiaturze przycisk 2 jesli chcesz obliczyc pole i obwod trojkat\n" << endl;
    cout << "Wybierz na klawiaturze przycisk 3 jesli chcesz obliczyc wszystkie katy w trojkacie\n" << endl;
    cout << "Jesli chcesz zakonczyc wybierz x lub X\n" << endl;
    cin >> wybor;
   
    while( wybor != 'x', wybor != 'X' )
    {
       
        if( wybor == '1' )
        {
            cout << " Wprowadz dlugosc boku a\n" << endl;
            cin >> a;
            cout << " Wprowadz dlugosc boku b\n" << endl;
            cin >> b;
            wynik1 = a * b;
            cout << "Pole prostokata wynosi:" << wynik1 << endl;
            wynik2 = a * 2 + b * 2;
            cout << "Obwod prostokata wynosi:" << wynik2 << endl;
        }
        if( wybor == '2' )
        {
            cout << " Wprowadz dlugosc boku a\n" << endl;
            cin >> a;
            cout << " Wprowadz dlugosc boku b\n" << endl;
            cin >> b;
            cout << " Wprowadz dlugosc boku c\n" << endl;
            cin >> c;
            wynik1 =( sqrt(( a + b + c ) *( a + b - c ) *( a - b + c ) *( - a + b + c ) ) ) / 4;
            cout << "Pole trojkata wynosi:" << wynik1 << endl;
            wynik2 = a + b + c;
            cout << "Obwod trojkata wynosi:" << wynik2 << endl;
        }
        if( wybor == '3' )
        {
            cout << " Wprowadz dlugosc boku a\n" << endl;
            cin >> a;
            cout << " Wprowadz dlugosc boku b\n" << endl;
            cin >> b;
            cout << " Wprowadz dlugosc boku c\n" << endl;
            cin >> c;
            alfa =( b * b + c * c - a * a ) /( 2 * b * c );
            beta =( b * b + a * a - c * c ) /( 2 * b * a );
            gamma =( c * c + a * a - b * b ) /( 2 * c * a );
            wynik1 = acos( alfa ) * 180 / 3.14159265;
            cout << "kat bac wynosi" << wynik1 << endl;
            wynik2 = acos( beta ) * 180 / 3.14159265;
            cout << "kat bca wynosi" << wynik2 << endl;
            wynik3 = acos( gamma ) * 180 / 3.14159265;
            cout << "kat abc wynosi" << wynik3 << endl;
           
            cout << "Wybierz co chcesz obliczyc" << endl;
            cin >> wybor;
        }
       
    }
    system( "pause" );
    return 0;
P-94142
Matej
» 2013-10-20 19:32:36
Zamień na dużą i sprawdzaj.
http://www.cplusplus.com/reference/cctype/toupper/
C/C++
wybor = toupper( wybor );
while( wybor != 'X' )
P-94148
lvcky
Temat założony przez niniejszego użytkownika
» 2013-10-20 19:53:00
No ok, ok wszystko fajnie działa ale 2 pytania:
1) Da się to zrobić innym sposobem?
2) W momencie kiedy wpisuje x program po akceptacji znaku wyświetla tekst: "Press any key to continue". Można ten tekst jakoś ominąć, żebym nie musiał ponownie wciskać entera?
P-94151
Monika90
» 2013-10-20 20:07:45
Da się to zrobić innym sposobem?
operator || w warunku

W momencie kiedy wpisuje x program po akceptacji znaku wyświetla tekst:
To po co wywołujesz system("pause");?
P-94154
lvcky
Temat założony przez niniejszego użytkownika
» 2013-10-20 20:25:40
dziękuje bardzo za pomoc! :)
P-94159
MrPoxipol
» 2013-10-20 21:05:59
wyświetla tekst: "Press any key to continue"
system( "PAUSE>nul" );
P-94165
« 1 »
  Strona 1 z 1