Instrukcje warunkowe if,else oraz instrukcja wyboru switch
-
- Użytkownik
- Posty: 40
- Rejestracja: 10 mar 2010, o 17:26
- Płeć: Kobieta
- Lokalizacja: Polska
- Podziękował: 2 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
Zad.
Wykorzystując instrukcję wyboru switch napisz program komputerowy wypisujący czynności które masz do wykonania od podanej przez użytkownika godziny (godzina podana w postaci liczby unsigned short in).Przypuśćmy że plan dnia masz następujący:
godz.7-,,Pobudka,mycie i sniadanie"
godz.8-14-,,Nauka w szkole"
godz. 15-,,Obiad"
godz.16-17-,,Odrobienie pracy domowej"
godz.18-20-,,Czas wolny"
godz.21-6-,,Spokojny sen"
Na przykład jak ktoś poda godzinę 12 to komputer powinien wypisać:
12-Nauka w szkole
13-Nauka w szkole
14-Nauka w szkole
15-Obiad
16-Odrobienie pracy domowej
17-Odrobienie pracy domowej
18-Czas wolny
19-Czas wolny
20-Czas wolny
21-6-Spokojny sen
zrobiłam tak ale to jest źle :/nie wiem jak to zrobić :/
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{cout<<"Podaj godzine:";
unsigned short int g;
cin>>g;
switch(g)
{case7:cout<<"Pobudka,mycie i sniadanie
";
case8:cout<<"Nauka w szkole
";
case9:cout<<"Nauka w szkole
";
case10:cout<<"Nauka w szkole
";
case11:cout<<"Nauka w szkole
";
case12:cout<<"Nauka w szkole
";
case13:cout<<"Nauka w szkole
";
case14:cout<<"Nauka w szkole
";
case15:cout<<"Obiad
";
case16:cout<<"Odrabianie lekcji
";
case17:cout<<"Odrabianie lekcji
";
case18:cout<<"Czas wolny
";
case19:cout<<"Czas wolny
";
case20:cout<<"Czas wolny
";
case21:cout<<"Spokojny sen
";
default:cout<<"Spokojny sen
";
system("PAUSE");
return EXIT_SUCCESS;
Wykorzystując instrukcję wyboru switch napisz program komputerowy wypisujący czynności które masz do wykonania od podanej przez użytkownika godziny (godzina podana w postaci liczby unsigned short in).Przypuśćmy że plan dnia masz następujący:
godz.7-,,Pobudka,mycie i sniadanie"
godz.8-14-,,Nauka w szkole"
godz. 15-,,Obiad"
godz.16-17-,,Odrobienie pracy domowej"
godz.18-20-,,Czas wolny"
godz.21-6-,,Spokojny sen"
Na przykład jak ktoś poda godzinę 12 to komputer powinien wypisać:
12-Nauka w szkole
13-Nauka w szkole
14-Nauka w szkole
15-Obiad
16-Odrobienie pracy domowej
17-Odrobienie pracy domowej
18-Czas wolny
19-Czas wolny
20-Czas wolny
21-6-Spokojny sen
zrobiłam tak ale to jest źle :/nie wiem jak to zrobić :/
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{cout<<"Podaj godzine:";
unsigned short int g;
cin>>g;
switch(g)
{case7:cout<<"Pobudka,mycie i sniadanie
";
case8:cout<<"Nauka w szkole
";
case9:cout<<"Nauka w szkole
";
case10:cout<<"Nauka w szkole
";
case11:cout<<"Nauka w szkole
";
case12:cout<<"Nauka w szkole
";
case13:cout<<"Nauka w szkole
";
case14:cout<<"Nauka w szkole
";
case15:cout<<"Obiad
";
case16:cout<<"Odrabianie lekcji
";
case17:cout<<"Odrabianie lekcji
";
case18:cout<<"Czas wolny
";
case19:cout<<"Czas wolny
";
case20:cout<<"Czas wolny
";
case21:cout<<"Spokojny sen
";
default:cout<<"Spokojny sen
";
system("PAUSE");
return EXIT_SUCCESS;
-
- Użytkownik
- Posty: 4094
- Rejestracja: 10 lut 2008, o 15:31
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 12 razy
- Pomógł: 805 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
Po pierwsze po case musi być spacja. Po drugie brakuje nawiasów zamykających dla instrukcji case i dla funkcji main.
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
Po trzecie w każdym case musi być instrukcja break, żeby nie wykonywać kolejnych przypadków.
Ogólnie można to zrobić bardziej sprytnie:
Pozdrawiam.
Ogólnie można to zrobić bardziej sprytnie:
Kod: Zaznacz cały
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
unsigned short int g=0;
cout<<"Podaj godzine:";
cin>>g;
switch(g)
{
case 7:
cout<<"Pobudka,mycie i sniadanie
";
break;
case 8: case 9: case 10:
case 11: case 12: case 13:
case 14:
cout<<"Nauka w szkole
";
break;
case 15:
cout<<"Obiad
";
break;
case 16: case 17:
cout<<"Odrabianie lekcji
";
break;
case 18: case 19: case 20:
cout<<"Czas wolny
";
break;
default:
cout<<"Spokojny sen
";
break;
}
return EXIT_SUCCESS;
}
Pozdrawiam.
- Sokół
- Użytkownik
- Posty: 451
- Rejestracja: 17 wrz 2006, o 19:22
- Płeć: Mężczyzna
- Lokalizacja: Zielona Góra
- Podziękował: 15 razy
- Pomógł: 55 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
W gcc (stanardowo w DevCpp) można użyć sztuczki z zakresem na case, w tym wypadku:
Kod: Zaznacz cały
case 8 ... 14:
cout<<"Nauka w szkole
";
break;
-
- Użytkownik
- Posty: 4094
- Rejestracja: 10 lut 2008, o 15:31
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 12 razy
- Pomógł: 805 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
Jeśli dobrze rozumiem polecenie, to chodziło właśnie o to, żeby wykonywać kolejne przypadki. Zresztą poniżej polecenia masz przykład.soku11 pisze:Po trzecie w każdym case musi być instrukcja break, żeby nie wykonywać kolejnych przypadków.
-
- Użytkownik
- Posty: 40
- Rejestracja: 10 mar 2010, o 17:26
- Płeć: Kobieta
- Lokalizacja: Polska
- Podziękował: 2 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
Zrobiłam to jeszcze tak tylko nie wiem jak zrobić żeby wyskakiwały po kolei godziny
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{unsigned short int g=0;
cout<<"Podaj godzine:";
cin>>g;
switch(g)
{case 7: cout<<g<<" "<<"Pobudka,mycie i sniadanie"<<endl;
case 8: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 9: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 10: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 11: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 12: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 13: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 14: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 15: cout<<g<<" "<<"Obiad"<<endl;
case 16: cout<<g<<" "<<"Odrobienie pracy domowej"<<endl;
case 17: cout<<g<<" "<<"Odrobienie pracy domowej"<<endl;
case 18: cout<<g<<" "<<"Czas wolny"<<endl;
case 19: cout<<g<<" "<<"Czas wolny"<<endl;
case 20: cout<<g<<" "<<"czas wolny"<<endl;
case 21...6 : cout<<g<<g<<" "<<"Spokojny sen"<<endl;
break;
}
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{unsigned short int g=0;
cout<<"Podaj godzine:";
cin>>g;
switch(g)
{case 7: cout<<g<<" "<<"Pobudka,mycie i sniadanie"<<endl;
case 8: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 9: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 10: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 11: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 12: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 13: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 14: cout<<g<<" "<<"Nauka w szkole"<<endl;
case 15: cout<<g<<" "<<"Obiad"<<endl;
case 16: cout<<g<<" "<<"Odrobienie pracy domowej"<<endl;
case 17: cout<<g<<" "<<"Odrobienie pracy domowej"<<endl;
case 18: cout<<g<<" "<<"Czas wolny"<<endl;
case 19: cout<<g<<" "<<"Czas wolny"<<endl;
case 20: cout<<g<<" "<<"czas wolny"<<endl;
case 21...6 : cout<<g<<g<<" "<<"Spokojny sen"<<endl;
break;
}
system("PAUSE");
return EXIT_SUCCESS;
}
-
- Użytkownik
- Posty: 4094
- Rejestracja: 10 lut 2008, o 15:31
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 12 razy
- Pomógł: 805 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
W każdej linijce musisz jeszcze zwiększyć g o 1, czyli dopisać g++; (w ten sposób przy wykonywaniu następnej linii kodu zostanie wypisana liczba o jeden większa).
Co do zapisu 21...6, to obawiam się, że kompilator nie jest tak sprytny, żeby domyślić się, że po 23 jest 0 . Nie wiem też, po co w tej linijce kodu wypisujesz zmienną g dwukrotnie. Ani czemu, począwszy od 16, zaczynasz wypisywać g+1 zamiast g.
Co do zapisu 21...6, to obawiam się, że kompilator nie jest tak sprytny, żeby domyślić się, że po 23 jest 0 . Nie wiem też, po co w tej linijce kodu wypisujesz zmienną g dwukrotnie. Ani czemu, począwszy od 16, zaczynasz wypisywać g+1 zamiast g.
-
- Użytkownik
- Posty: 40
- Rejestracja: 10 mar 2010, o 17:26
- Płeć: Kobieta
- Lokalizacja: Polska
- Podziękował: 2 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
g+1 to przez pomyłkę A to jak moge zrobić żeby mi wyświetlił : 21-6-Spokojny sen?
-
- Użytkownik
- Posty: 4094
- Rejestracja: 10 lut 2008, o 15:31
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 12 razy
- Pomógł: 805 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
"21-6" napisz sama, jako stałą znakową. Dopisz po prostu na górze case 0...6, a na dole case 21...23, w obydwu przypadkach program ma wyświetlić tekst "21-6 Spokojny sen".
W przypadku case 0...6 zamiast g++ musisz oczywiście napisać g=7 (bo następną instrukcją, jaką wykona program, jest ta po case 7, przy której chcesz napisać liczbę 7 niezaleznie od tego, czy użytkownik wcześniej podał liczbę 0,1,2,3,4,5 czy 6).
W przypadku case 0...6 zamiast g++ musisz oczywiście napisać g=7 (bo następną instrukcją, jaką wykona program, jest ta po case 7, przy której chcesz napisać liczbę 7 niezaleznie od tego, czy użytkownik wcześniej podał liczbę 0,1,2,3,4,5 czy 6).
-
- Użytkownik
- Posty: 40
- Rejestracja: 10 mar 2010, o 17:26
- Płeć: Kobieta
- Lokalizacja: Polska
- Podziękował: 2 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
A mógłbyś mi to umieścić w tym co napisałam wcześniej? Bo próbuje zrobić tak jak napisałeś ale nic mi nie wychodzi
-
- Użytkownik
- Posty: 4094
- Rejestracja: 10 lut 2008, o 15:31
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 12 razy
- Pomógł: 805 razy
Instrukcje warunkowe if,else oraz instrukcja wyboru switch
Kod: Zaznacz cały
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{unsigned short int g=0;
cout<<"Podaj godzine:";
cin>>g;
switch(g)
{
case 0:case 1: case 2:case 3: case 4: case 5: case 6: cout <<"21-6 Spokojny sen"<<endl; g=6;
case 7: cout<<g<<" "<<"Pobudka,mycie i sniadanie"<<endl; g++;
case 8: cout<<g<<" "<<"Nauka w szkole"<<endl; g++;
case 9: cout<<g<<" "<<"Nauka w szkole"<<endl; g++;
case 10: cout<<g<<" "<<"Nauka w szkole"<<endl; g++;
case 11: cout<<g<<" "<<"Nauka w szkole"<<endl; g++;
case 12: cout<<g<<" "<<"Nauka w szkole"<<endl; g++;
case 13: cout<<g<<" "<<"Nauka w szkole"<<endl; g++;
case 14: cout<<g<<" "<<"Nauka w szkole"<<endl; g++;
case 15: cout<<g<<" "<<"Obiad"<<endl; g++;
case 16: cout<<g<<" "<<"Odrobienie pracy domowej"<<endl; g++;
case 17: cout<<g<<" "<<"Odrobienie pracy domowej"<<endl; g++;
case 18: cout<<g<<" "<<"Czas wolny"<<endl; g++;
case 19: cout<<g<<" "<<"Czas wolny"<<endl; g++;
case 20: cout<<g<<" "<<"czas wolny"<<endl; g++;
case 21: case 22: case 23 : cout<<"21-6 Spokojny sen"<<endl; break;
}
system("PAUSE");
return EXIT_SUCCESS;
}
-
- Użytkownik
- Posty: 40
- Rejestracja: 10 mar 2010, o 17:26
- Płeć: Kobieta
- Lokalizacja: Polska
- Podziękował: 2 razy