XII. Warunek wielokrotnego wyboru switch... case



Podobne dokumenty
1 Podstawy c++ w pigułce.

XVII. Funkcje w C Ogólna budowa funkcji Definicja funkcji Co waŝnego powinniśmy wiedzieć o funkcjach

XV. Wskaźniki Odczytywanie adresu pamięci istniejących zmiennych Wskaźniki pierwsze spojrzenie.

Warunek wielokrotnego wyboru switch... case

Instrukcja warunkowa i złoŝona.

1 Podstawy c++ w pigułce.

Część 4 życie programu

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Programowanie - wykład 4

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

VII. Ciągi znaków łańcuchy

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

Instrukcje sterujące. Programowanie Proceduralne 1

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Proste programy w C++ zadania

Programowanie komputerowe. Zajęcia 1

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

Podstawy Programowania Podstawowa składnia języka C++

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Instrukcje sterujące

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.

I - Microsoft Visual Studio C++

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

3. Instrukcje warunkowe

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Programowanie komputerowe. Zajęcia 3

Program do obsługi ubezpieczeń minifort

Część XV C++ Ćwiczenie 1

Wstęp do programowania

Podstawy programowania w języku C i C++

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

Przekazywanie argumentów wskaźniki

Ćwiczenia podstawowe, zestaw 5, część 1

Instalacja i opis podstawowych funkcji programu Dev-C++

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

1 Wielokrotne powtarzanie tych samych operacji

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Metody Metody, parametry, zwracanie wartości

Program do obsługi ubezpieczeń minifort

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Kontrola przebiegu programu

Pytania sprawdzające wiedzę z programowania C++

Instrukcja zarządzania kontami i prawami

Aplikacja sieciowa kalkulatora macierzowego zadanie za 10 punktów

Michał Bielecki, KNI 'BIOS'

Instrukcja zmian w wersji Vincent Office

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Problem Próby rozwiązania Maszyna stanów Inne zastosowania Podsumowanie. Maszyny stanów. Programowanie gier bez Unity, cz. 3.

FUNKCJE WZORCOWE. Wykład 10. Programowanie Obiektowe (język C++) Funkcje wzorcowe wprowadzenie (2) Funkcje wzorcowe wprowadzenie (1)

Struktura pliku projektu Console Application

Programowanie strukturalne i obiektowe. Funkcje

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Serwis Członkowski Polskiej Izby Ubezpieczeń Instrukcja obsługi UŜytkownik

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Język ludzki kod maszynowy

Podstawy programowania w C++

Konstrukcje warunkowe Pętle

Kontrakty zakupowe. PC-Market

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Lekcja : Tablice + pętle

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

ze względu na jego zaokrąglony kształt musimy go umieścić w innych bloczkach np. ze zmienną: lub jeśli chcemy sprawdzić jaki właśnie znak odczytujemy:

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

POLITECHNIKA SZCZECIŃSKA WYDZIAŁ ELEKTRYCZNY

Pętla for. Wynik działania programu:

Podstawy obsługi aplikacji Generator Wniosków Płatniczych

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie strukturalne i obiektowe

Informatyka II. Laboratorium Aplikacja okienkowa

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Umieszczanie kodu. kod skryptu

Podstawy Programowania C++

Jak tworzyć pliki *.pdf z dowolnego programu (np. Word, Exel, PowerPoint itp.).

Budowa i generowanie planszy

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

DYNAMICZNE PRZYDZIELANIE PAMIECI

7. Pętle for. Przykłady

11. PROFESJONALNE ZABEZPIECZENIE HASŁEM

INWENTARYZACJA W PROGRAMIE INTEGRA

Wprowadzenie do programowania w języku C

Transkrypt:

XII. Warunek wielokrotnego wyboru switch... case 12.1. Gdy mamy więcej niŝ dwie moŝliwości Do tej pory poznaliśmy warunek if... else... Po co nam kolejny? Trudno powiedzieć, ale na pewno nie po to, Ŝeby Cię zniechęcać do programowania. Moim zdaniem warunek switch... case został wprowadzony, w celu poprawienia czytelności kodu. Nie umoŝliwia on bowiem bardziej zaawansowanych warunków, niŝ oferuje nam to wcześniej omawiany warunek typu if... else. MoŜna nawet powiedzieć, Ŝe warunek switch... case ma duŝo mniejsze moŝliwości, od if... else. Po co więc nam on? OtóŜ są sytuacje, w których warto skorzystać warunku switch... case i dlatego zostanie on omówiony. Przyjrzyjmy się najpierw składni. switch(zmienna) case wartosc1: //tu instrukcje zostaną wykonane jeśli (zmienna==wartosc1) //koniec warunku; wychodzi z warunku switch case wartosc2: //tu instrukcje zostaną wykonane jeśli (zmienna==wartosc2) //koniec warunku; wychodzi z warunku switch //tu mogą być kolejne case... default://instrukcja warunkowa switch wykonuje ten kod //wtedy i tylko wtedy, gdy nie został spełniony //Ŝaden inny wyŝej wymieniony warunek //wychodzi z warunku switch; Warto w tym miejscu wymienić kilka przykładów, gdzie warto stosować warunek typu switch...case - są to głównie listy wyboru, gdzie na podstawie np. naciśniętego klawisza, wybieramy dalszy przebieg programu. MoŜna równieŝ porównywać napis wprowadzony przez uŝytkownika i gdy któryś z nich będzie taki sam, jak w warunku switch...case, to wykona się określony kod. 12.2. O czym naleŝy pamiętać korzystając ze switch... case Zostały jeszcze dwie waŝne sprawy, które powinieneś wiedzieć jako przyszły programista. Sprawa pierwsza to: w warunku switch...case nie moŝna deklarować zmiennych. Jeśli potrzebujesz koniecznie zmienną tymczasową, to musisz ją zadeklarować przed warunkiem switch...case. Druga sprawa: jeśli zapomnisz słowa kluczowego, kaŝdy kolejny warunek się wykona w switch'u (aŝ do napotkania słówka ). 12.3. Praktyczny przykład wykorzystania switch... case PoniŜej zamieszczam przykład prezentujący działanie switch...case. float a; float b; cout<<"podaj pierwsza liczbe: "; cin>>a;

cout<<"podaj druga liczbe: "; cin>>b; cout<<"liczba a: "<<a<<endl; cout<<"liczba b: "<<b<<endl; cout<<"menu wyboru:"<<endl; cout<<"[1] Oblicz: a+b"<<endl; cout<<"[2] Oblicz: a-b"<<endl; cout<<"[3] Oblicz: a*b"<<endl; cout<<"[4] Oblicz: a/b"<<endl; cout<<"wpisz numer: "; int wybor; cin>>wybor; cout<<endl<<"wpisales numer: "<<wybor<<endl; switch(wybor) case 1: cout<<"opcja "<<wybor<<" wynik dodawania a+b="<<a+b<<endl; case 2: cout<<"opcja "<<wybor<<" wynik odejmowania a-b="<<a-b<<endl; case 3: cout<<"opcja "<<wybor<<" wynik mnozenia a*b="<<a*b<<endl; case 4: cout<<"opcja "<<wybor<<" wynik dzielenia a/b="<<a/b<<endl; default: cout<<"opcja "<<wybor<<" taka opcja nie istnieje!"<<endl; return(0); 12.4 enum typ wyliczeniowy Jest innym spojrzeniem na stałe(const). Najlepiej uŝywać ich jako stałych symbolicznych, chociaŝ moŝemy z nich tworzyć nowe typy(jednak nie w pełni). Przykład wykorzystania enum: enum DDT Admin, Moderator, Uzytkownik; int Piotr = 0; int Patzick = 1; int Dante = 2; //własność enum if (Piotr == Admin) cout << "Adminem DDT jest Piotr.\n"; if (Patzick == Moderator) cout << "Adminowi pomaga kilku moderatorow\n" << "jednym z nich jest Patzick.\n";

if (Dante == Uzytkownik) cout << "Jednak forum nie istnialoby" << " bez swoich uzytkownikow\n\n"; cout << "Oto stale enum-a:\n" << DDT(0) << ", " << DDT(1) << ", " << DDT(2) << ".\n"; cout << "To tez stale enum-a:\n" << Admin << ", " << Moderator << ", " << Uzytkownik << "."; return 0; Typ ten jest promowany do int dla kaŝdej instrukcji (if, for, while, swich). Oznacza to ni mnie ni więcej, iŝ po prostu stałe enumeratora są zamieniane na liczby. Co potwierdza prezentowany kod. W naszym kodzie DDT staje się typem wyliczeniowym, a nazwy Admin, Moderator, Uzytkownik jego enumeratorami(czyli stałymi symbolicznymi). Domyślnie tak jako to ma miejsce w tablicach, stałe te są numerowane od 0. Dlatego if (Piotr == Admin) jest prawdziwe. Numerowanie stałych moŝemy sami zmienić ręcznie wprowadzając ich wartości np. enum Admin = 10, Moderator, Uzytkownik =50;. W tym wypadku Moderator będzie miał wartość 11. Przyjrzymy się teraz jak będzie wyglądać pierwszy przykład z uŝyciem enum. 12.5 swich + enum enum dodawanie = 1, odejmowanie = 2, mnozenie = 3, dzielenie = 4; float a; float b; cout<<"podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "liczba a: " << a <<endl << "liczba b: " << b << endl << "Menu wyboru:" << endl << "[1] Oblicz: a+b" << endl << "[2] Oblicz: a-b" << endl << "[3] Oblicz: a*b" << endl << "[4] Oblicz: a/b" << endl; cout<<"wpisz numer: "; int wybor; cin>>wybor; cout<<endl<<"wpisales numer: "<<wybor<<endl; switch(wybor)

case dodawanie: cout<<"opcja "<<wybor<<" wynik dodawania a+b="<<a+b<<endl; case odejmowanie: cout<<"opcja "<<wybor<<" wynik odejmowania a-b="<<a-b<<endl; case mnozenie: cout<<"opcja "<<wybor<<" wynik mnozenia a*b="<<a*b<<endl; case dzielenie: cout<<"opcja "<<wybor<<" wynik dzielenia a/b="<<a/b<<endl; default: cout<<"opcja "<<wybor<<" taka opcja nie istnieje!"<<endl; return(0); Program działa tak samo, instrukcja swich zyskała trochę na czytelności. 12.6 Ćwiczenia Zaprojektuj aplikację*, zadanie będzie wymagało sporej wiedzy, wykorzystane jest większość poznanych do tej pory informacji. Dodam, iŝ uŝyteczne będą biblioteki #include "ddtconsole.h" i #include <ctime>. Oto jak wygląda aplikacja: Posiada menu(powstało dzięki console.ddt) z wyborem pięciu opcji. Po wybraniu jednej z 5 opcji pokaŝą się odpowiednie dane. Do przechowywania komunikatów(95% wyświetlanych danych) uŝyto tablicy trójwymiarowej. Opcje 1-3 zawierają tekst jak na zdjęciu wyŝej. Opcja 4 robi pauzę, ale uŝytkownik podaje czas pauzy w jednostkach minutowych czyli jeśli chcesz 6 s pauzy(to trzeba wpisać 0.1). Jednak komunikat o tym ile uŝytkownik wybrał pokazuje się w sekundach. Na kolejnym zdjęciu pokazane jest opcja 5 zamykająca aplikację:

Koniec polega na odliczeniu ok. 5 sekund i zamknięciu aplikacji. Aplikacja sprawdza czy podczas próby wyboru została wpisana cyfra(liczba), jeśli nie to pojawia się komunikat i dopóki nie zostanie naciśnięta liczba nie da się przejść dalej. WAśNE wszystkie komunikaty, które widzisz są zapisane jako łańcuch w tabeli o której wspomniałem(uŝycie zapisu cout << "Co wybierasz szefie?" jest niedozwolone). Oczywiście to jak Ty wykonasz aplikację, zaleŝy od Ciebie, ja tylko podałem pewne informacje o tym jak ja ją wykonałem. Jeśli zrobisz to inaczej, a otrzymany wynik będzie taki sam(lub podobny) to bardzo dobrze. Aplikacja nie jest łatwa, jednak stworzenie menu, oraz pierwsze 4 opcje nie powinny sprawić ci większych trudności jeŝeli rzetelnie i sumiennie podeszłaś do nauki kursu. Problem moŝe ci sprawić odliczanie(czasu zamknięcia) przy zakończeniu programu i sprawdzenie czy naciśnięta została cyfra, ale od tego jest forum by naprowadzić Cię na odpowiednie rozwiązanie.