Instrukcja switch

Transkrypt

Instrukcja switch
Cwiczenia_Wstęp do informatyki
dr. Elżbieta Kryś
.
p. 1
1. Funkcja f(x) jest określona w sposób następujący:
2x
f ( x)
x2
x
dla x
5
dla ( 5 x 7)
2
dla x 7
Napisz algorytm, który wczyta (z klawiatury) wartoć "x" i wydrukuje wartość funkcji f(x).
2. Napisz algorytm który będzie drukował wartość podatku na podstawie wczytanego
dochodu. Podatki oblicza się wg następujących zasad:
a) jeśli dochód (D) nie przekracza 37 024 zł to podatek wynosi 19% od dochodu.
b) jeśli dochód (D) zawiera się w granicach (37 024 < D < 74048) to podatek wynosi
6516.40 zł plus 30% nadwyżki ponad 37 024 zł.
c) jeśli dochód (D) przekracza 74 048 zł, to podatek wynosi 17632.60 zł plus 40%
nadwyżki ponad 74 048 zł.
3. Napisz algorytmy, który symulują działanie czterodziałaniowego kalkulatora
(if, else if ) a także instrukcje ( switch case )
Instrukcja switch
Instrukcja switch służy do wybierania jednego przypadku z wielu.
Instrukcja switch
Instrukcja switch służy do wybierania jednego
przypadku z wielu.
switch (wyrażenie)
{
case wart_1 : { instr_1;
break; }
case wart_2 : { instr_2;
break; }
…
case wart_n : { instr_n;
break; }
default
: { instr_(n+1);
break; }
}
Przykład użycia instrukcji switch.
/*-------------------------------------------------------------------------------------------------*/
/* Algorytm oblicza stopień na podstawie liczby otrzymanych punktów */
/* Kryteria:
0.. 49 pkt. - 2
*/
/*
50.. 59 pkt. - 3
*/
/*
60.. 69 pkt. - 3.5
*/
/*-----------------------------------------------------------------------------------------------int lp;
Cwiczenia_Wstęp do informatyki
dr. Elżbieta Kryś
.
p. 2
float stopien;
cout << "Podaj liczbę punktów (0 <= lp <= 100): ";
cin >> lp;
lp = lp/10;
switch (lp)
{
case 5 : { stopien = 3; break;}
case 6 : { stopien = 3.5; break;}
case 7 : { stopien = 4; break;}
case 8 : { stopien = 4.5; break;}
case 9,10 : { stopien = 5; break;}
default : { stopien = 2; break;}
}
cout << "Twoja ocena: "<< stopien;
Działanie instrukcji switch:
obliczane jest wyrażenie umieszczone w nawiasach po słowie
switch;
jeśli jego wartość odpowiada którejś z wartości podanej w jednej z etykiet
case, wówczas wykonywane są instrukcje począwszy od tej etykiety.
Wykonywanie ich kończy się po napotkaniu instrukcji break. Działanie
instrukcji switch zostaje wówczas zakończone;
jeśli wartość wyrażenia nie zgadza się z żadną z wartości podanych
w etykietach case, wówczas wykonywane są instrukcje umieszczone po
etykiecie default.
etykieta default może być umieszczona w dowolnym miejscu instrukcji switch,
nawet na samym jej początku. Co więcej, etykiety default może nie być wcale.
Wówczas, jeśli w zbiorze etykiet case nie ma żadnej etykiety równej wartości
wyrażenia, instrukcja switch nie będzie wykonana.
instrukcje występujące po etykiecie case nie muszą kończyć się instrukcją
break. Jeśli jej nie umieścimy, to będą wykonywane instrukcje umieszczone
pod następną etykietą case.
Cwiczenia_Wstęp do informatyki
dr. Elżbieta Kryś
.
p. 3
Instrukcja while
Jeśli wyrażenie nie przyjmie wartości 0, instrukcja będzie się wykonywać nieskończoną
ilość razy
- najpierw obliczana jest wartość wyrażenia w nawiasach (może być instrukcja złożona!).
- jeśli wartość ta jest prawdziwa (niezerowa), to następuje wykonywanie instrukcji w
pętli tak długo, aż wyrażenie przyjmie wartość zerową ( fałsz).
- należy zwrócić uwagę, że wartość wyrażenia jest obliczana przed wykonaniem
instrukcji.
Algorytm na czytanie i sumowanie n liczb całkowitych, sumowanie jest przerwane, gdy
wczytana liczba jest zerem.
Wyświetlić sumę i liczbę składników.
/*-------------------------------------------------------------------------------------------*
Sumowanie n liczb całkowitych. -Jeśli sumowanym składnikiem jest 0,
to proces sumowania zostaje zakończony.
*/
int a, liczba, n, Suma;
cin>>n;
cin>>a;
licznik = 0; Suma = 0;
while ((a != 0) && (licznik < n))
{
licznik = licznik++;
Suma = Suma + a;
cout << "Podaj a: "; cin >> a; }
cout << "Suma = " << Suma << "Liczba składników = " << licznik;
Instrukcja do -while
Cwiczenia_Wstęp do informatyki
dr. Elżbieta Kryś
.
p. 4
- instrukcja jest wykonywana w pętli tak długo póki wyrażenie ma wartość niezerową
(prawda)
- z chwilą, gdy wyrażenie przyjmie wartość zerową (fałsz), działanie instrukcji zostaje
zakończone
Napisać algorytm na czytanie i sumowanie liczb całkowitych - sumowania należy
przerwać w chwili, gdy suma przekroczy wartość 100. Wyświetlić sumę i liczbę
składników
/*Algorytm na sumowanie liczb całkowitych - sumowanie zostanie zakończone, gdy suma
skladnikow przekroczy wartość 2000 */
int a, licznik, Suma;
licznik = 0;
Suma = 0;
do {
cout << "Podaj a: ";
cin >> a;
licznik = licznik++;
Suma = Suma + a; }
while (Suma < 2000);
cout << "Suma = " << Suma << "Liczba składników = " << licznik
Instrukcja
for
wyrażenie1 - jest to instrukcja inicjalizująca wykonywanie pętli for;
Cwiczenia_Wstęp do informatyki
dr. Elżbieta Kryś
.
p. 5
wyrażenie2 - jest to wyrażenie obliczane przed każdym obiegiem pętli. Jeśli jest ono
różne od zera, to wykonywane zostaną instrukcje będące treścią pętli;
wyrażenie3 - jest to instrukcja wykonywana na zakończenie każdego obiegu pętli
. Jest to ostatnia instrukcja wykonywana bezpośrednio przed obliczeniem wyrażenia
warunkowego wyrażenie2
Działanie instrukcji for:
1.`najpierw wykonywane jest wyrażenie1- instrukcja inicjalizująca pracę pętli
2.`obliczane jest wyrażenie2- wyrażenie warunkowe; jeśli jest ono równe 0 -praca pętli
jest przerywana;
3.`jeśli wyrażenie warunkowe(wyrażenie2) jest różne od zera, wówczas wykonywane
zostaną instrukcje będące treścią pętli(instrukcja);
4.`po wykonaniu treści pętli wykonane zostanie wyrażenie3, po czym następuje powrót
do p. 2.
Algorytm obliczania silni z N :
/*---------------------------------------------------------------------------------------*/
/* Algorytm obliczania silni - N
/*---------------------------------------------------------------------------------------*/
int i, N, Silnia;
cin >> N;
Silnia = 1;
if (N >= 2)
for (i=2; i <= N; i++)
Silnia = Silnia*i;
cout << "Silnia z " << N << " równa się: " << Silnia ;
Napisz algorytm, który dla wartości "x" z przedziału {-15...15} wydrukuje wartość funkcji
f(x). Funkcja f(x) jest określona w sposób następujący:
Cwiczenia_Wstęp do informatyki
dr. Elżbieta Kryś
.
p. 6
2x
dla x
x2
f ( x)
x
5
dla ( 5 x 7)
2
dla x 7
Sprawność algorytmów
Który z algorytmów jest wydajniejszy - uzasadnij odpowiedż
Algorytm 1
Start
2
3 N
Czytaj:
i :=5 2
N=2
6
27
TAK
Pisz: N 3jest L.P.
NIE
71
Stop
2
TAK
8
i dzieli N
3 jest L.P.
Pisz: N nie
NIE
1
7
i :=5i+1
NIE
TAK
i =8 N
2
7
Cwiczenia_Wstęp do informatyki
dr. Elżbieta Kryś
.
p. 7
Algorytm 2
Start
2
3
Czytaj:
N
T AK
N =1 2, 3
NIE
6
2 dzieli
N
72
Pisz: N 3jest L.P.
1
7
T AK
Stop
2
NIE
i :=5 3
T AK
8
i dzieli N
3 jest L.P.
Pisz: N nie
NIE
1
7
i :=5i+2
NIE
T AK
i =8 N
2
7
Cwiczenia_Wstęp do informatyki
dr. Elżbieta Kryś
.
p. 8
Algorytm 3
Start
2
3
Czytaj:
N
TAK
N =1 2, 3
NIE
6
2 dzieli
N
72
Pisz: N 3jest L.P.
1
7
TAK
Stop
2
NIE
i :=5 3
TAK
8
i dzieli N
3 jest L.P.
Pisz: N nie
NIE
1
7
i :=5i+2
NIE
TAK
8
i > Sqrt(N)
2
7
Napisz trzy algorytmy wykorzystujące struktury sterujące ( lub kombinacje struktur.)
dla instrukcji.
Napisane algorytmy przedstaw w postaci diagramów

Podobne dokumenty