wykład 4 - Wydział Matematyki i Informatyki UŁ
Transkrypt
wykład 4 - Wydział Matematyki i Informatyki UŁ
Instrukcja wyboru Typ znakowy Wstęp do programowania wykład 4 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcje pętli Instrukcja wyboru Typ znakowy Instrukcje pętli Instrukcja wielokrotnego wyboru Instrukcja wielokrotnego wyboru switch umożliwia podejmowanie decyzji na podstawie wartości pewnego wyrażenia. Składnia: switch (wyrażenie) { case wartość1 : instrukcje_1 case wartość2: instrukcje_2 ... default: instrukcje_n } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli wyrażenie musi być typu całkowitego lub “wyrażalnego” przez wartość całkowitą (jak np. char) jeżeli wyrażenie ma wartość podaną po słowie kluczowym case, program wykonuje kod umieszczony za dwukropkiem odpowiadającym tej wartości (tj. instrukcje dla danego przypadku oraz dla przypadków poniżej ) przerwanie sekwecji i zakończenie switch można uzyskać używając instrukcji break jeżeli wyrażenie ma wartosc inną niż następujące po case, wykonywne są instrukcje podane po słowie default Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Przyklad użycia # include < iostream > using namespace std ; int main () { int a ; cout << " podaj liczbe " ; cin >> a ; switch ( a ) { case 10: cout << " podales 10 " << endl ; break ; case 100: cout << " podales 100 " << endl ; break ; default : cout << " nie podales 10 ani 100 " << endl ; break ; // mozna pominac , i tak konczymy } return 0; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcje pętli Instrukcja wyboru Typ znakowy Instrukcje pętli Przyklad użycia - “alternatywa” # include < iostream > using namespace std ; int main () { int a ; cout << " podaj liczbe " ; cin >> a ; switch ( a ) { case 10: case 11: case 12: cout << " podales 10 , 11 albo 12 " << endl ; break ; case 100: cout << " podales 100 " << endl ; break ; default : cout << " nie podales 10 , 11 , 12 ani 100 " << endl ; } return 0; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Typ znakowy char typ char służy do przechowywania znaków. Zazwyczaj jest jednobajtowy przykłady znaków: ‘a’, ‘1’, ‘@’ char jest typem całkowitym (każdy znak odpowiada liczbie całkowitej - wartości znaku w kodzie ASCII) Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Przyklad użycia - “menu”, char + switch # include < iostream > using namespace std ; int main () { char wybor ; cout << " choose an option : A - adding element , P printing elements , E - exit : " ; cin >> wybor ; switch ( wybor ) { case ’a ’: case ’A ’: cout << " adding an element " << endl ; break ; case ’p ’: case ’P ’: cout << " printing an element " << endl ; break ; case ’e ’: case ’E ’: cout << " exit " << endl ; break ; default : cout << " wrong key pressed " << endl ; } return 0; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Przyklad użycia - “menu”, char + if # include < iostream > using namespace std ; int main () { char wybor ; cout << " choose an option : A - adding element , P printing elements , E - exit : " ; cin >> wybor ; if ( wybor == ’a ’ || wybor == ’A ’) cout << " adding an element " << endl ; else if ( wybor == ’p ’ || wybor == ’P ’) cout << " printing an element " << endl ; else if ( wybor == ’e ’ || wybor == ’E ’) cout << " exit " << endl ; else cout << " wrong key pressed " << endl ; return 0; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Pętle i ich rodzaje Pętle umożliwiają iteracyjne wykonywanie pewnych kroków pewien fragment programu możemy wykonać wielokrotnie raz za razem (być może dla zmienionych danych) Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Pętle i ich rodzaje Pętle umożliwiają iteracyjne wykonywanie pewnych kroków pewien fragment programu możemy wykonać wielokrotnie raz za razem (być może dla zmienionych danych) Zazwyczaj w językach programowania można wyróżnić dwa rodzaje pętli: pętle wykonujące się określoną liczbę razy pętle wykonujące się do momentu spełnienia pewnego warunku (“sterowane warunkiem”) Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Pętle i ich rodzaje Pętle umożliwiają iteracyjne wykonywanie pewnych kroków pewien fragment programu możemy wykonać wielokrotnie raz za razem (być może dla zmienionych danych) Zazwyczaj w językach programowania można wyróżnić dwa rodzaje pętli: pętle wykonujące się określoną liczbę razy pętle wykonujące się do momentu spełnienia pewnego warunku (“sterowane warunkiem”) przy czym tak naprawdę pętle pierwszego rodzaju są wygodniejszym zapisem pewnych pętli drugiego rodzaju Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Pętle “sterowane warunkiem” w C++ Dwa rodzaje: while loop do ... while loop Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcje pętli Instrukcja wyboru Typ znakowy Instrukcje pętli Pętla while while(warunek) { instrukcje } wykonywanie instrukcji lub grupy instrukcji jest powtarzane tak długo, jak długo warunek jest prawdziwy. Warunek sprawdzany jest przed rozpoczęciem wykonywania zawartości pętli Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Pętla while while(warunek) { instrukcje } wykonywanie instrukcji lub grupy instrukcji jest powtarzane tak długo, jak długo warunek jest prawdziwy. Warunek sprawdzany jest przed rozpoczęciem wykonywania zawartości pętli Instrukcje wewnątrz pętli mogą nie zostać wykonane Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Przyklad - wypisanie liczb od 1 do 10, while # include < iostream > using namespace std ; int main () { int i = 1; while (i <=10) { cout << i << endl ; i ++; } return 0; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcje pętli Instrukcja wyboru Typ znakowy Instrukcje pętli Pętla do..while do { instrukcje } while (warunek); wykonywanie instrukcji lub grupy instrukcji jest powtarzane tak długo, jak długo warunek jest prawdziwy. Warunek sprawdzany jest po wykonaniu zawartości pętli Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Pętla do..while do { instrukcje } while (warunek); wykonywanie instrukcji lub grupy instrukcji jest powtarzane tak długo, jak długo warunek jest prawdziwy. Warunek sprawdzany jest po wykonaniu zawartości pętli Instrukcje wewnątrz pętli są wykonane co najmniej raz Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Przyklad - wypisanie liczb od 1 do 10, do .. # include < iostream > using namespace std ; int main () { int i = 1; do { cout << i << endl ; i ++; } while (i <=10) ; return 0; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcje pętli while Instrukcja wyboru Typ znakowy Instrukcje pętli Obu rodzajów pętli “sterowanych warunkiem” można w wielu przypadkach używać zamiennie, chociaż w niektórych sytuacjach któryś rodzaj może być wygodniejszy Przykłady (Rózne petle, takie samo działanie) int i = 1; ... while(i<=10) { cout << i << endl; i++; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania | | | | | | | | int i = 1; ... do { cout << i << endl; i++; } while(i<=10); Instrukcja wyboru Typ znakowy Instrukcje pętli Uwagi (do wszystkich petli sterowanych warunkiem) warunek sterujący pętlą może zawierać zmienne dowolnego typu, może być również wyrażeniem o stałej wartości interpretowalnej jako prawda lub fałsz jeśli chcemy aby pętla kiedyś się zakończyła, instrukcje wewnątrz pętli muszą umożliwiać zmianę wartości logicznej warunku sterującego pętlą instrukcji wewnątrz pętli może być dowolnie dużo, moga być nimi także kolejne instrukcje pętli Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Przyklad - pętla nieskończona (śnieg ;-) ) # include < iostream > using namespace std ; int main () { while ( true ) { cout << " * " ; } return 0; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcje pętli Instrukcja wyboru Typ znakowy Instrukcje pętli Instrukcje sterujące wewnątrz pętli break - przerywa wykonywanie instrukcji pętli (lub instrukcji tt switch), powodując przejście do wykonywania instrukji następujących bezpośrednio po przerwanej continue - przerywa bieżące wykonanie pętli, powodując przejście do kolejnej iteracji (ze sprawdzeniem warunku przed wykonaniem) Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Przyklad - użycie break Zamiast wszystkich liczb całkowitych z zakresu 1..10 wypisywane są tylko liczby od 1 do 3: # include < iostream > using namespace std ; int main () { int i = 0; do { i ++; if ( i == 4) break ; cout << i << endl ; } while (i <=10) ; return 0; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Przyklad - użycie continue Zamiast wszystkich liczb całkowitych z zakresu 1..10 wypisywane są tylko liczby parzyste: # include < iostream > using namespace std ; int main () { int i = 0; do { i ++; if ( i %2 == 1) continue ; cout << i << endl ; } while (i <=10) ; return 0; } Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcje pętli Instrukcja wyboru Typ znakowy Instrukcje pętli Zadanie 1 Napisać program sumujący liczby całkowite podawane przez użytkownika oraz obliczający średnią z wprowadzonych liczb. Wprowadzenie liczby 0 oznacza zakończenie podawania. Końcowe 0 ma nie być brane pod uwagę przy obliczaniu średniej. Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania Instrukcja wyboru Typ znakowy Instrukcje pętli Zadanie 2 Kotka rodzi jednorazowo do 6 kociąt i może mieć kocięta 2 razy w ciągu roku. Po pół roku młode mogą mieć kocięta. Mamy jedną kotkę. Napisać program obliczający w którym pokoleniu kocia rodzinka może - w wariancie “pesymistycznym” - osiagnąć liczebność podaną przez użytkownika. ... a po rozwiązaniu tego zadania i popatrzeniu na wyniki zachęcam do zajrzenia tutaj Agata Półrola Wydział Matematyki i Informatyki UŁ Wstęp do programowania