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

Podobne dokumenty