Plik do pobrania

Transkrypt

Plik do pobrania
Instrukcje wyboru switch
Podczas tworzenia programu może zdarzyć się, że należy wybrać jeden z wielu sposobów postępowania
w zależności od wartości zmiennej. Zawiłą konstrukcję warunków zagnieżdżonych if …else można zastąpić
instrukcją switch.
Składnia instrukcji wyboru switch:
switch (wyrażenie)
{
case wartosc1: instrukcja1; break;
case wartosc2: instrukcja2; break;
...
default: inna_instrukcjad
}
Jeśli wartość wyrażenia odpowiada którejś z wartości podanej przy jednej z etykiet case , wówczas wykonana
zostanie instrukcja przy tej właśnie etykiecie. Po napotkaniu instrukcji break następuje przekazanie sterowania
do pierwszej instrukcji po switch, czyli nie są sprawdzane kolejne przypadki. Jeśli wyrażenie nie przyjmuje
żadnej z wartości określonych w etykietach case wówczas zostaje wykonana instrukcja oznaczona etykietą
default. Etykieta default nie musi występować w instrukcji wyboru switch i gdy żadna z etykiet case nie ma
wartości równej warunkowi nie wykona się żadna instrukcja:
Przykład
#include <iostream >
#include <conio.h>
int numer_dnia;
using namespace std;
int main()
{
cout <<"Podaj numer dnia tygodnia \n";
cin >>numer_dnia;
switch(numer_dnia)
{
case 1:
cout <<"Poniedziałek";break;
case 2:
cout <<"Wtorek";break;
case 3:
cout <<"Środa";break;
case 4:
cout <<"Czwartek";break;
case 5:
cout <<"Piatek";break;
case 6:
cout <<"Sobota";break;
case 7:
cout <<"Niedziela";break;
default: cout <<"Błedna dana!";
}
getch();
return 0;
}
-1Rafaello
W przypadku, gdy daną czynność należy powtórzyć wiele razy stosujemy pętle. W języku C++ można
wyróżnić trzy rodzaje pętli:
• pętla for
• pętla while
• pętla do … while
Instrukcja pętli for
Pętlę tą stosujemy zwykle, gdy liczba powtórzeń jest z góry określona.
Składnia pętli for:
for(instrukcja_początkowa;warunek_sterujący;instrukcja_kroku)
gdzie:
instrukcja_początkowa – instrukcja wykonywana przed pierwszym obiegiem;
warunek_sterujący – wyrażenie logiczne, które decyduje o zakończeniu działania pętli (jeśli jest fałszywe,
wówczas następuje zakończenie wykonywania instrukcji w pętli
instrukcja_kroku – instrukcja wykonywana po każdym przebiegu pętli, modyfikująca zazwyczaj tzw. licznik
petli
Przykład
for (i=0;i<10;i=i+1)
{
cout <<”wypisuję ten napis 10 razy\n”;
cout <<”wykonałem się <<i<<” raz!”;
}
Instrukcja pętli while
Pętla while wykonuje się kolejny raz, gdy wyrażenie jest prawdziwe (czyli ma wartość niezerową)
Składnia pętli while:
while (wyrażenie)
{
instrukcje;
}
gdzie:
wyrażenie – wyrażenie logiczne (przyjmując wartość „prawda” lub „fałsz”
Przykład
while (a>0)
{
cout <<”Podaj kolejną liczbę”;
cin <<a;
}
cout <<”Podałeś liczbe nieujemną, kończę działanie!”;
Instrukcja pętli do … while
Pętla do …while wykonuje się kolejny raz, gdy wyrażenie jest prawdziwe (czyli ma wartość niezerową)
Składnia pętli while:
do
{
instrukcje;
} while (wyrażenie)
gdzie:
wyrażenie – wyrażenie logiczne (przyjmując wartość „prawda” lub „fałsz”
UWAGA: Różnica między ostatnimi dwoma pętlami, jest taka, że pętla do … while wykona się zawsze co
najmniej raz, zaś pętla while może nie wykonać się wcale.
-2Rafaello
Zadania
Zadanie 1
Dwucyfrowe
Dana jest liczba dwucyfrowa k. Napisz program, który wypisze wszystkie liczby dwucyfrowe nie większe niż
k w kolejności rosnącej.
Wejście
Pierwszy i jedyny wiersz wejścia zawiera liczbę całkowitą k z zakresu 10..99.
Wyjście
W kolejnych wierszach należy zapisać rosnący ciąg liczb całkowitych dwucyfrowych, nie większych niż k.
Przykład
Dla danych wejściowych:
13
poprawną odpowiedzią jest:
10
11
12
Zadanie 2
13
PaNie
Dane są liczby całkowite a i b. Napisz program, który wypisze wszystkie liczby parzyste w kolejności rosnącej,
a następnie wszystkie liczby nieparzyste w kolejności malejącej z przedziału <a; b>.
Wejście
Pierwszy i jedyny wiersz wejścia zawiera dwie liczby całkowite a i b (a<=b) oddzielone pojedynczą spacją z
zakresu 0..255.
Wyjście
W kolejnych wierszach należy zapisać rosnący ciąg liczb parzystych z przedziału <a; b>, zaś po nim malejący
ciąg liczb nieparzystych z tego przedziału.
Przykład
Dla danych wejściowych:
3 6
poprawną odpowiedzią jest:
4 6
5 3
Zadanie 3 SiŚ
Dany jest ciąg liczb całkowitych zakończony liczbą zero, która nie należy do ciągu.
Napisz program, który wyznaczy sumę wszystkich liczb ciągu oraz ich średnią arytmetyczną.
Wejście
W pierwszym wierszu wejścia zapisano ciąg liczb całkowitych z zakresu z zakresu 1..65535 zakończony
liczbą zero.
Wyjście
Wyjście zgodne z przykładem.
Przykład
Dla danych wejściowych:
6 16 5 1 17 0
poprawną odpowiedzią jest:
45
9.00
Zadanie 4
Dana
jest
Suma
liczba
rzeczywista p. Oblicz ile początkowych składników nieskończonej sumy
1/1+1/2+1/3+1/4+1/5+... należy dodać do siebie, aby otrzymać liczbę nie mniejszą niż p.
Wejście
Pierwszy i jedyny wiersz wejścia zakończony znakiem nowej linii zawiera nieujemną liczbę rzeczywistą p.
Wyjście
W pierwszym w jedynym wierszu wyjścia zakończonym znakiem nowej linii należy zapisać dwie liczby
oddzielone pojedynczą spacją: obliczoną ilość początkowych składników sumy oraz wartość tej sumy.
Przykład
Dla danej wejściowej:
-3Rafaello
0.281
poprawną odpowiedzią jest:
1 1.000000
Zadanie 5
Największy podzielnik
Dana jest liczba naturalna n nie większa od 2147483647. Napisz program, który wyznaczy największy
dzielnik podanej liczby mniejszy od n.
Wejście:
Liczba naturalna n z zakresu 1… 2147483647
Wyjście
Największy dzielnik podanej liczby mniejszy od niej samej
Przykład
Dla danej wejściowej:
36
poprawną odpowiedzią jest:
18
Zadanie 6 Niesforne Ogry
Jak wiadomo Gumisie żyją na świecie. Ale teraz nie nimi się zajmiemy. Obok gumisiów żyje Książe Iktorn
wraz ze swoją bandą złych i śmierdzących Ogrów. Stwory te mają bardzo ograniczoną inteligencję.. Książe
Iktorn ma nie lada problem z zebraniem wszystkich stworów podczas porannej zbiórki, gdyż zawsze dokładnie
jeden się gdzieś zapodzieje. Wierny podnóżek księcia Iktorna – inteligentny i sprytny (co wśród ogrów rzadko
się zdarza) Tołdi wpadł na pomysł jak sprawdzić, którego ogra brakuje. Otóż każdy z paskudów będzie miał
wytatuowany na ramieniu numer, który został zapisany w notesie Tołdiego. Ponieważ ogrów jest dużo a mały
Tołdi nie zawsze sobie radzi ze sprawdzaniem obecności Książe poprosił Ciebie (w nadziej, że nie odmówisz –
podobno obiecał sowitą zapłatę) o napisanie programu, który wczyta numery wszystkich ogrów z notesu
Tołdiego, wczyta numery ogrów znajdujących się na apelu i wyznaczy numer tego obrzydliwca, który gdzieś
się zapodział.
Wejście:
Ciąg różnych liczb z przedziału 2…1 000 000– numerów ogrów zakończony wartością zero (która nie oznacza
ogra) zapisanych w notesie Tołdiego
Ciąg liczb – numerów ogrów będących na porannym apelu również zakończonych liczbą 0
Wyjście:
Numer ogra, którego brakuje na porannym apelu
Przykład
Dla danych:
1 5 10 3 4 2 0
2 1 5 10 3 0
poprawną odpowiedzią jest: 4
Zadanie 7
FIB
Ciąg liczbowy 1 1 2 3 5 8 13 21 ... nazywamy ciągiem Fibonacciego, a jego wyrazy liczbami
Fibonacciego. W ciągu tym pierwsze dwa wyrazy są równe 1, każdy następny jest sumą dwóch poprzednich.
Napisz program, który dla danej liczby n wyznaczy ilość liczb Fibonacciego mniejszych od n oraz poda ich
sumę.
Wejście
Pierwszy i jedyny wiersz wejścia zakończony znakiem nowej linii zawiera liczbę całkowitą n z zakresu
0..65535.
Wyjście
W pierwszym wierszu wyjścia należy zapisać ilość liczb Fibonacciego mniejszych od n, w wierszu drugim
zakończonym znakiem nowej linii ich sumę.
Przykład
Dla danej wejściowej:
18
poprawną odpowiedzią jest:
7
33
-4Rafaello

Podobne dokumenty