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

[Lekcja 14] Kalkulator działa jednak są wątpliwości

Ostatnio zmodyfikowano 2012-04-01 22:02
Autor Wiadomość
Lares138
Temat założony przez niniejszego użytkownika
[Lekcja 14] Kalkulator działa jednak są wątpliwości
» 2012-03-31 17:32:27
Witam otóż mam takie pytanie do doświadczonych czy można zamieścić więcej niż jedną wartość w zmiennej lub w samym switch tak jak ja to zrobiłem owszem jak widac wszystko działa jednak zastanawia mnie czy jeżeli bardziej chciałbm rozbudować program to czy nie nastąpią komplikacje wynikające z takiej innowacji programu .Pozdrawiam i czekam na odp.
C/C++
#include <iostream>

int main()

{
   
    int liczba_1, liczba_2;
    char oper1 = '+';
    char oper2 = '-';
    char oper3 = '*';
    char oper4 = '/';
   
    std::cout << "wpisz pierwsza liczbe : ";
    std::cin >> liczba_1;
    std::cout << "wpisz operator ";
    std::cin >>( oper1, oper2, oper3, oper4 );
    std::cout << "wpisz druga liczbe : ";
    std::cin >> liczba_2;
   
    switch( oper1, oper2, oper3, oper4 )
    {
    case '+':
        std::cout << "wynik = " << liczba_1 + liczba_2;
        break;
       
    case '-':
        std::cout << " wynik = " << liczba_1 - liczba_2;
        break;
       
    case '*':
        std::cout << " wynik = " << liczba_1 * liczba_2;
        break;
       
    case '/':
        std::cout << " wynik = " << liczba_1 / liczba_2;
        break;
    }
    return 0;
}
Ps nie wiem jak zrobić ,żeby program wyświetlał sie tak jak w orginale czyli kolorowe linie także zamieszczam tylko to
P-53603
dannooon
» 2012-03-31 19:47:58
Próbuje zrozumieć po co zrobiłeś 4 zmienne typu char, jeśli wystarczy tylko jedna. Poza tym nie mogę załapać sensu tego programu, widać że jesteś początkujący. Przejdź przez kolejne kursy, poznaj pętle, warunki i dopiero zabierz się za takie programy :)
P-53608
jankowalski25
» 2012-03-31 20:09:11
Zamiast
C/C++
char oper1 = '+';
char oper2 = '-';
char oper3 = '*';
char oper4 = '/';
Można wpisać
char oper;
.
Następnie można zamienić
oper1, oper2, oper3, oper4
 na
oper
.
//edit: Sprawdź, co się stanie, gdy zamiast liczby wprowadzisz literę lub zamiast znaku działania wpiszesz coś innego. Spróbuj to naprawić.
P-53611
Lares138
Temat założony przez niniejszego użytkownika
rr
» 2012-03-31 20:41:39
dannooon no jestem początkującym a ten program pisałem bo takie było zadanie i nie mogłem tam wykorzystać żadnych pętli czy czegos innego ponieważ miałem to zrobić z wykorzystaniem dotychczasowej wiedzy takie było zadanie domowe kursu 14 wiem ,że można tu dać bardzo dużo ułatwień i poprawek ale i tak się ciesze ,że w ogóle działa :D

Ps zrobiłem 4 zmienny typu char bo nie byłem świadomy ,że można to wszystko dać w jedno a i tak będzie wybór:D(nie wiem czy zrozumiałeś ale zaraz go przerobię i wtedy powinno być lepiej )


A tutaj poprawiona,skrócona wersja i czy można ją jeszcze bardziej skrócić ?

C/C++
#include <iostream>
int main()

{
    using namespace std;
   
    int liczba_1, liczba_2;
    char oper;
   
   
    cout << "wpisz pierwsza liczbe : ";
    cin >> liczba_1;
    cout << "wpisz operator ";
    cin >> oper;
    cout << "wpisz druga liczbe : ";
    cin >> liczba_2;
   
    switch( oper )
    {
    case '+':
        cout << "wynik = " << liczba_1 + liczba_2;
        break;
       
    case '-':
        cout << " wynik = " << liczba_1 - liczba_2;
        break;
       
    case '*':
        cout << " wynik = " << liczba_1 * liczba_2;
        break;
       
    case '/':
        cout << " wynik = " << liczba_1 / liczba_2;
        break;
    }
    return 0;
}
P-53617
SeaMonster131
» 2012-03-31 21:03:59
Hm za dużo to tu skrócić nie można ;) Możesz jedynie tak działanie wpisywać:
cin >> liczba_1 >> oper >> liczba_2
Ale to zalezy od Ciebie.

Kod wstawiaj w: [cpp] kod [/cpp]

Aha, i powinieneś dorobić zabezpieczenie, aby nie można było dzielić przez 0. Oraz powinno sie znaleźć zabezpieczenie przed wpisaniem liter zamiast liczb i innego działania.
P-53619
Lares138
Temat założony przez niniejszego użytkownika
» 2012-03-31 21:11:37
O właśnie tego znacznika szukałem tj.do wstawienia kodu z c++ z kolorkami.A na to nie wpadłem o tych zabezpieczeniach ,nawet nie wiem jak zrobić ale bd szukał i jak mi sie uda to wstawię poprawione .
P-53622
Lares138
Temat założony przez niniejszego użytkownika
» 2012-04-01 21:23:45
SeaMonster131 moim zdaniem dodanie instrukcji wiersz wyżej od switch czyli
if( liczba_1, liczba_2 > 0 )
,stanowi dobrą bariere aby nie dzielić przez zero ponieważ po w pisaniu 0 program nie wejdzie do switch czyli program się zamknie ,ale nie mogę wynaleźć nic co bo zablokowało wpisywanie liter,mógłbym coś podsunąć ?

Tutaj cały kod

C/C++
#include <iostream>
int main()

{
    using namespace std;
   
    int liczba_1, liczba_2;
    char oper;
   
   
    cout << "wpisz pierwsza liczbe : ";
    cin >> liczba_1;
    cout << "wpisz operator ";
    cin >> oper;
    cout << "wpisz druga liczbe : ";
    cin >> liczba_2;
   
   
    if( liczba_1, liczba_2 > 0 )
    switch( oper )
    {
    case '+':
        cout << "wynik = " << liczba_1 + liczba_2;
        break;
       
    case '-':
        cout << " wynik = " << liczba_1 - liczba_2;
        break;
       
    case '*':
        cout << " wynik = " << liczba_1 * liczba_2;
        break;
       
    case '/':
        cout << " wynik = " << liczba_1 / liczba_2;
        break;
    }
    return 0;
}
P-53697
DejaVu
» 2012-04-01 21:29:33
C/C++
if( liczba_1, liczba_2 > 0 )
Znajdź kurs w którym opisywany jest taki zapis to Ci pogratuluje chyba połowa użytkowników tego forum ;p
P-53698
« 1 » 2
  Strona 1 z 2 Następna strona