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

[Lekcja 14] Prośba o sprawdzenie zadanie domowego

Ostatnio zmodyfikowano 2011-09-01 11:28
Autor Wiadomość
makarone
Temat założony przez niniejszego użytkownika
[Lekcja 14] Prośba o sprawdzenie zadanie domowego
» 2011-08-09 17:09:42
witam,
tak sobe popatrzylem na wczesniejsze rozwiazania ale mi przyszlo do glowy jeszcze inne, pytanie czy poprawnie to zapisalem i czy na dluzszamete takie kombinowanie nie jest ulomne.
pozdrawiam,

C/C++
#include <iostream>
int main()
{
    float x, y;
    int innaz;
   
    std::cout << "Podaj liczbe X: ";
    std::cin >> x;
   
    std::cout << "Podaj liczbe Y: ";
    std::cin >> y;
   
    std::cout << "co chesz zrobic? wybierz: " << std::endl;
    std::cout << "1 - mnozenie (x*y)" << std::endl;
    std::cout << "2 - odejmowanie (x-y)" << std::endl;
    std::cout << "3 - dzielenie (x/y)" << std::endl;
    std::cout << "Dowolna inna liczba lub znak - wszystkie te dzialania jednoczesnie" << std::endl;
    std::cin.clear();
    std::cin.sync();
   
    std::cin >> innaz;
   
    switch( innaz )
    {
    case 1:
       
        std::cout << "Wynik dla x * y: " << x * y << std::endl;
        break;
       
    case 2:
       
        std::cout << "Wynik dla x - y : " << x - y << std::endl;
        break;
       
    case 3:
       
        if( y != 0 )
        {
            std::cout << "Wynik dla x / y : " << x / y << std::endl;
        }
        else
             std::cout << "Wynik dla x/y dzielac przez zero nic nie zmieniasz... sprobuj innym razem";
       
        break;
       
        default:
        std::cout << "Wynik x * y : " << x * y << std::endl;
        std::cout << "Wynik x - y : " << x - y << std::endl;
       
        if( y != 0 )
        {
            std::cout << "Wynik x / y : " << x / y << std::endl;
        }
        else
        {
            std::cout << "Wynik x / y : Dzielac przez zero nic nie zmieniasz..." << std::endl;
            std::cout << "Sprobuj innym razem z innymi liczbami" << std::endl;
        }
       
        break;
    }
    return 0;
}
P-38576
makarone
Temat założony przez niniejszego użytkownika
» 2011-08-09 20:53:52
takie pytanie jak zrobic,zeby nie bylo mozliwe wskawianie zamiast cyfr/liczb liter?
chodzi mi o to aby nie bylo wogole mozliwe takie dzilanie, niezaleznie odtego czy mam do czynienia z ukladem [cyfraznak] czy tez [znakcyfra].
moze sa na sali madrzejsze glowy od mojej.

poki co mam cos takiego ale nie spelnia to moich oczekiwan.
pomijajac tez fakt ze pewnie niewiele w tym zapisie jest ok, ale jak zrobic, zeby po wpisaniu blednego "X" od razu wyskakiwal komunikat ze liczba nie jest poprawna.
kombinowalem ale bezplodnie jakos.


podsumowujac plan jest taki:
1. podaj liczbe X
2. liczba poprawna idziesz dalej - liczba bledna wywala komunikat o bledzie, koniec zabawy
3. jesli poprawna - podaj liczbe Y
4. powtorka jak w pkt 2

pozdrawiam i prosze o rady,
m

C/C++
#include <iostream>
int main()
{
    float x, y;
    int innaz;
   
    std::cout << "Podaj liczbe X: ";
    std::cin >> x;
    bool skax;
   
    if( skax = std::cin.good() )
   
    {
        std::cout << "Podaj liczbe Y: ";
        std::cin >> y;
        bool skay;
       
        if( skay = std::cin.good() )
       
        {
            std::cout << "co chesz zrobic? wybierz: " << std::endl;
            std::cout << "1 - mnozenie (x*y)" << std::endl;
            std::cout << "2 - odejmowanie (x-y)" << std::endl;
            std::cout << "3 - dzielenie (x/y)" << std::endl;
            std::cout << "Dowolna inna liczba lub znak - wszystkie te dzialania jednoczesnie" << std::endl;
            std::cin.clear();
            std::cin.sync();
           
            std::cin >> innaz;
           
            switch( innaz )
            {
            case 1:
                std::cout << "Wynik dla x * y: " << x * y << std::endl;
                break;
               
            case 2:
               
                std::cout << "Wynik dla x - y : " << x - y << std::endl;
                break;
               
            case 3:
               
                if( y != 0 )
                {
                    std::cout << "Wynik dla x / y : " << x / y << std::endl;
                }
                else
                     std::cout << "Wynik dla x/y dzielac przez zero nic nie zmieniasz... sprobuj innym razem";
               
                break;
               
                default:
                std::cout << "Wynik x * y : " << x * y << std::endl;
                std::cout << "Wynik x - y : " << x - y << std::endl;
               
                if( y != 0 )
                {
                    std::cout << "Wynik x / y : " << x / y << std::endl;
                }
                else
               
                     std::cout << "Wynik x / y : Dzielac przez zero nic nie zmieniasz..." << std::endl;
               
                std::cout << "Sprobuj innym razem z innymi liczbami" << std::endl;
               
                break;
            }
        }
        else
             std::cout << "Wpisane dane nie sa poprawne. Sprobuj ponownie.";
       
    }
    else
         std::cout << "Wpisane dane nie sa poprawne. Sprobuj ponownie.";
   
    return 0;
}
P-38609
SeaMonster131
» 2011-08-09 22:08:36
1. podaj liczbe X
2. liczba poprawna idziesz dalej - liczba bledna wywala komunikat o bledzie, koniec zabawy
3. jesli poprawna - podaj liczbe Y
4. powtorka jak w pkt 2
No to ja bym zrobił coś na wzór tego oo:

C/C++
#include <iostream>
#include <conio.h>

using namespace std;


int main()
{
    int x, y;
    bool czy_dobrze = false;
   
    while( !czy_dobrze )
    {
        cin.clear();
        cin.sync();
       
        cout << "\nPodaj liczbe 1: ";
        cin >> x;
        czy_dobrze = cin.good();
        if( !czy_dobrze )
        {
            cout << "Sieroto, to liczba ma byc! Goodbye";
            getch();
            return 0;
        }
       
        cout << "Podaj liczbe 2: ";
        cin >> y;
        czy_dobrze = cin.good();
        if( !czy_dobrze )
        {
            cout << "Sieroto, to liczba ma byc! Goodbye";
            getch();
            return 0;
        }
       
    }
   
    cout << "X + Y = " << x + y;
   
   
    return 0;
}
P-38617
makarone
Temat założony przez niniejszego użytkownika
» 2011-08-09 22:37:31
nie no wszystko ladnie, ale mnie to wyglada na potrzebe zastosowanie czegos jakby "petli".
dodatkowo problem pozostal jako taki:
1. jak podalem liczbe nr 2 w formacie [cyfraznak] program "łyknął" tę "cyfre" co stala na poczatku i dalej policzył jakby literki nigdy tam nie bylo.
2. jak podalem liczbe nr 1 w formacie [cyfraznak] juz nie łyknął ale mimo to wyswietlil komunikat "podaj liczbe nr 2...." a dopiero potem ze "tak wogole to fail".

ale nie powiem twoja wersja jest zgrabniejsza.
P-38621
kar0lek1
» 2011-08-26 19:32:28
hmm.. a Ja napisałem coś takiego.. bo zauważyłem że u Ciebie nie ma opcji wyboru przy odejmowaniu czy dzieleniu.. bo przecież odejmując a-b i b-a masz inny wynik, tak samo przy dzieleniu. Wiem, że można odpalić jeszcze raz i wpisać odwrotnie liczby.. ale myślę że wygodniej jest jak będziemy mieli od razu wybór takiego działania.
A oto mój kod:
C/C++
#include <iostream>

using namespace std;

int main()
{
    float liczba_pierwsza;
    float liczba_druga;
    int dzialanie;
   
   
    cout << "Moj pierwszy maly kalkulator :) " << endl;
   
    cout << "Prosze podac pierwsza liczbe : " << endl;
    cin >> liczba_pierwsza;
   
    cout << "Teraz prosze podac druga liczbe : " << endl;
    cin >> liczba_druga;
   
    cout << "Czas na obliczenia ! " << endl;
   
    cout << "Jeżeli chcesz wykonać: \n"
    "[1] - dodawanie kliknij \n"
    "[2] - odejmowanie liczba pierwsza - liczba druga \n"
    "[3] - odejmowanie liczba druga - liczba pierwsza \n"
    "[4] - mnożenie \n"
    "[5] - dzielenie liczba pierwsza / liczba druga \n"
    "[6] - dzielenie liczba druga / liczba pierwsza \n";
   
    cin >> dzialanie;
   
    switch( dzialanie )
    {
    case 1:
        cout << "Wynik dodawania : " << liczba_pierwsza + liczba_druga << endl;
        break;
       
    case 2:
        cout << "Wynick odejmowania liczba pierwsza - liczba druga : " << liczba_pierwsza - liczba_druga << endl;
        break;
       
    case 3:
        cout << "Wynik odejmowanie liczba druga - liczba pierwsza : " << liczba_druga - liczba_pierwsza << endl;
        break;
       
    case 4:
        cout << "Wynik mnożenia : " << liczba_pierwsza * liczba_druga << endl;
        break;
       
       
    case 5:
        if( liczba_pierwsza, liczba_druga != 0 )
             cout << "Wynik dzielenia liczba pierwsza / liczba druga : " << liczba_pierwsza / liczba_druga << endl;
        else
             cout << "Nigdy nie dziel przez zero ! " << endl;
       
        break;
       
       
    case 6:
        if( liczba_pierwsza, liczba_druga != 0 )
             cout << "Wynik dzielenia liczba druga / liczba pierwsza : " << liczba_druga / liczba_pierwsza << endl;
        else
             cout << "Nigdy nie dziel przez zero ! " << endl;
       
        break;
       
        default:
        cout << "Nie wybrales zadnego dzialania !. Sprobój ponownie :) " << endl;
        break;
    }
    return 0;
}
P-39995
makarone
Temat założony przez niniejszego użytkownika
» 2011-09-01 11:28:40
i dlatego ne ma co za wczesnie zamykac postów:)
P-40378
« 1 »
  Strona 1 z 1