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

Potrzebuje pomocy z switch...case

Ostatnio zmodyfikowano 2012-06-27 12:08
Autor Wiadomość
Benu1
Temat założony przez niniejszego użytkownika
Potrzebuje pomocy z switch...case
» 2012-06-27 01:07:07
Witam przedstawiam wam skrypt:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include "time.h"
#include "cstdlib"
using namespace std;


int funkcja_losujaca()
{
    int losowanie_liczby;
    losowanie_liczby =( rand() % 60 ) + 50;
    return losowanie_liczby;
}



int main()
{
    char wywolanie, wywolanie_ponowne;
   
    cout << "Liczba zostala juz wylosowana" << endl;
    cout << "Czy chcesz wywolac funkcje?\nNapisz t lub n: " << endl;
    cout << "Wybierasz: ";
    cin >> wywolanie;
    switch( wywolanie )
    {
    case 't':
        cout << "Wylosowana liczba to: " << funkcja_losujaca() << endl;
        do
        {
            cout << "Czy chcesz ja wywolac jeszcze raz?.\nNapisz T/N" << endl;
            cout << "Zdecydowales, ze: ";
            cin >> wywolanie_ponowne;
            switch( wywolanie_ponowne )
            {
            case 'T':
                cout << "Ponowna wywolana liczba losowa to: " << funkcja_losujaca() << endl;
            }
        } while( wywolanie_ponowne != 't' );
       
    case 'n':
        cout << "W takim razie dziekuje za skorzystanie z programu" << endl;
    }
   
    return 0;
}

Moj problem polega na tym ze nie mam pomyslu gdzie wstawic fragment skryptu taki jak:
C/C++
case 'N':
cout << "To dziekuje i bye bye" << endl;

Zeby sie w petli nie powtarzal zanim ktos napisze jakikolwiek post ( mowa o poczatkujacych programistach ) jesli chca mi pomoc pierw niech skompiluja i sprawdza czy podane przez nich rozwiazanie jest poprawne. Czekam na odpowiedzi :)

PS. Rozmkninialem nad tym 40 min i nie wymyslilem bo zawsze w petli sie to pojawialo i chyba mysle ze utknalem w pupie ;<. Moze dlatego ze jest pozna porna i moj mozg nie funkcjonuje tak jak powinien (jestem spiacy)
P-59242
Benu1
Temat założony przez niniejszego użytkownika
» 2012-06-27 01:41:28
Prosze was o pomoc COMMON

@Deja Vu bladam pomoz mecze sie prawie 3 h juz z tym ;(
P-59244
Benu1
Temat założony przez niniejszego użytkownika
» 2012-06-27 02:42:31
Moge dostac warna ale posta nowego zrobilem po to bys Deja Vu zauwazyl ze ktos potrzebuje pomocy bo ja mecze sie juz 3h prawie z tym :( mialem tyle przeblyskow ze szok :D
P-59246
ison
» 2012-06-27 08:17:24
case 'T':
 tu chyba T z małej miało być
} while( wywolanie_ponowne != 't' );
 zamiast != powinno być ==
P-59248
m4tx
» 2012-06-27 09:04:44
http://m4tx.pl/blog/2012/06/plissssssss-pomozcieeeee/
Jak ktoś będzie miał czas to Ci pomoże.
P-59250
Benu1
Temat założony przez niniejszego użytkownika
» 2012-06-27 11:18:14
ison nie... ma byc case 'T':
poniewaz to jest do drugiego pytania i chce dopisac teraz case 'N': lecz jesli dopisze to pod tym case 'T' to powtarza  mi sie to w petli i wychodzi syf (nie umiem wytlumaczyc co sie dzieje wiec najlepiej skompiluj i zobacz). Czekam na dalsze porady

@m4tx

Zalezy mi na tym bardzo poniewaz chce dalej pracowac a nie moge bo stoje w miejscu
PS. nie czytalem tego twojego bloga bo jest za dlugi xD przepraszam :P

@edit
ison jesli dalem tak jak ty } while( wywolanie_ponowne == 't' );  to petla mi w ogole nie chodzi a z tego co mi wiadomo to petla konczy sie jest jest false wiec chyba musi byc !=
 
P-59254
Admixior
» 2012-06-27 11:25:31
To skoro chcesz mieć z dużej litery (nie rozumiem dlaczego) to w takim razie powinieneś zmienić while( wywolanie_ponowne != 't' ); na while( wywolanie_ponowne == 'T' );
PS zauważ to równa się. W while podajesz kiedy  ma pętla kontynuować się(true), a nie przerwać

//edit: dopóki warunek jest spełniony (user podaje 'T') dopóty pętla działa
Z twojego kodu wynika że jak user poda inną literę to kontynuuje, a jak 't' to przerywa.
P-59256
Benu1
Temat założony przez niniejszego użytkownika
» 2012-06-27 11:30:26
Admixior super masz u mnie browca jedyny blad jaki robilem to taki ze utwierdzono mnie w fakcie przez pewnego osobnika ze w while trzeba podawac negowanie prawdy by petla sie powtarzala czy cos juz sam nie wiem bo mam namieszanie.  Przeczytam uwaznie jesszcze raz kurs na temat do..while w kazdym badz razie wiem na czym moj blad polegal i dziekuje za poswiecenie mi odrobiny czasu, blad ten pisany w while przeze mnie juz sie nie bedzie powtarzal poniewaz dobrze mi to wytlumaczyles!:P

@edit
zamieszcze wam caly skrypcik juz naprawiony w 98%, poniewaz nie losuje mi liczb z przedzialu od 50 do 60 tylko wieksze i kminie jak naprawic ;>

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include "time.h"
#include "cstdlib"
using namespace std;


int funkcja_losujaca()
{
    int losuje_od = 50, losuje_do = 60;
    int losowanie_liczby;
    losowanie_liczby =( rand() % losuje_do ) + losuje_od;
    return losowanie_liczby;
}

int main()
{
    char wywolanie, wywolanie_ponowne;
   
    cout << "Liczba zostala juz wylosowana" << endl;
    cout << "Czy chcesz wywolac funkcje?\nNapisz t lub n: " << endl;
    cout << "Wybierasz: ";
    cin >> wywolanie;
    switch( wywolanie )
    {
    case 't':
        cout << "Wylosowana liczba to: " << funkcja_losujaca() << endl;
        do
        {
            cout << "Czy chcesz ja wywolac jeszcze raz?.\nNapisz T/N" << endl;
            cout << "Zdecydowales, ze: ";
            cin >> wywolanie_ponowne;
            switch( wywolanie_ponowne )
            {
            case 'T':
                cout << "Ponowna wywolana liczba losowa to: " << funkcja_losujaca() << endl;
            }
        } while( wywolanie_ponowne == 'T' );
       
    case 'n':
        cout << "W takim razie dziekuje za skorzystanie z programu" << endl;
    }
   
    return 0;
}
P-59257
« 1 » 2
  Strona 1 z 2 Następna strona