CLAB 3 2009-2010, Ćwiczenia laboratoryjne


Podejmowanie decyzji w programie - instrukcja warunkowa - if...else, operatory relacyjne i logiczne, instrukcja wyboru - switch ... case

Cele ćwiczenia:

Nowe zagadnienia:

Definicje nowych pojęć

W programach pisanych w C lub C++ nie zawsze wszystkie instrukcje muszą być wykonywane kolejno (sekwencyjnie). Słowa kluczowe if (jeżeli) oraz else (a jeśli nie) pozwalają na wybór jednej z dwu (lub jednej z wielu ) możliwości.

if (warunek1) //jeżeli warunek jest spełniony wykonaj instrukcję 1

{

instrukcja1; // jedna instrukcja prosta lub instrukcja złożona

}

else //a jeśli nie wykonaj instrukcję 2

{

instrukcja2; // jedna instrukcja prosta lub instrukcja złożona

}

Jeśli warunek jest spełniony, komputer wykonuje tylko instrukcje (jedna instrukcja prosta lub jedna instrukcja złożona) w pierwszej parze nawiasów {...}, następującej po słowie if. Część następująca po słowie else zostanie zignorowana. Jeśli warunek nie zostanie spełniony, komputer wykonuje tylko instrukcje po drugiej parze nawiasów - po słowie else, natomiast część pierwsza po słowie if zostanie zignorowana.

Część 2 instrukcji po słowie else jest opcjonalna i może być pominięta (jeśli jest logicznie zbędna).

Możliwe jest zagnieżdżanie instrukcji warunkowych, co umożliwia dokonywanie wyboru spośród wielu możliwości.

Instrukcja prosta to pojedyncze zdanie kodu źródłowego w C++ zakończone ;.

Instrukcja złożona (blok) to wiele instrukcji prostych ujętych w parę nawiasów klamrowych {...}.

Graficzny zapis instrukcji warunkowej pełnej przedstawiono poniżej.

0x08 graphic

Operatory porównania

Operator

Działanie

Przykład

Zapis w C++

==

równa się

a==b

if (a==b)

!=

różne od

a!=b

if (a!=b)

<

Mniejsze

a<b

if (a<b)

>

Większe

a>b

if (a>b)

<=

mniejsze lub równe

a<=b

if (a<=b)

>=

większe lub równe

a>=b

if (a>=b)

Zadanie 1

Napisz program źródłowy obliczający wartość wyrażenia: 0x01 graphic
dla x wprowadzonego z klawiatury. Wyeliminuj możliwość dzielenia przez zero i obliczania pierwiastka z liczby ujemnej.

WERSJA I (bez użycia operatorów logicznych)

#include <cstdlib>

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

float x,y;

cout<<"Podaj wartosc liczby x"<<endl;

cin>>x;

if (x<=0)

{

cout<<"Pierwiastek liczby ujemnej lub dzielenie przez zero"<<endl;

}

else

if (x==2)

{

cout<<"Dzielenie przez zero x=2 "<<endl;

}

else

if (x==5)

{

cout<<"Dzielenie przez zero x=5 "<<endl;

}

else

{

y=x/(sqrt(x)*(x-2)*(x-5));

cout<<" y= "<<y<<endl;

}

cout<<endl;

system (“pause”);

return 0;

}

Operatory logiczne

0x08 graphic
&& - and - iloczyn logiczny przykładowy zapis w C++

|| - or - suma logiczna if(x==2 || x==5 || x<=-5)

! - not - negacja logiczna

WERSJA II (z operatorami logicznymi)

#include <cstdlib>

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

float x, y;

cout<<"Podaj wartosc liczby x"<<endl;

cin>>x;

if (x<=0 || x==2 || x==5)

cout<<"Pierwiastek liczby ujemnej lub dzielenie przez zero"<<endl;

else

{

y=x/(sqrt(x)*(x-2)*(x-5));

cout<<" y= "<<y<<endl;

}

cout<<endl;

system (“pause”);

return 0;

}

0x08 graphic

wersja I wersja II

W przypadku kiedy możliwości wyboru jest dużo posługiwanie się instrukcjami if..else staje się skomplikowane. Wygodniej jest zastosować instrukcje wyboru switch...case. Pozwala ona bez potrzeby zagnieżdżania sporządzić listę wszystkich możliwych wartości, oraz przeglądając tę listę - wybiera ten jeden przypadek, który nas interesuje.

switch (zmienna) //zmienna sterująca (selektor)

{

case'A': instrukcja 1; // jedna instrukcja prosta lub instrukcja złożona

break; //break jako instrukcja sterująca może być pominięta

case'B': instrukcja 2; w instrukcji switch lecz tylko świadomie, gdyż

break; powoduje zmianę zakresu realizacji całej instrukcji

case'C': instrukcja 3;

break;

default: instrukcja n; // wariant domyślny -wszystkie pozostałe możliwości

0x08 graphic
}

Zmiana wielkości liter

Język C++ rozróżnia wielkość liter. Aby zamienić małe litery na duże można użyć funkcji toupper bezpośrednio po wczytaniu zmiennej. Duże litery na małe zamieniamy przy pomocy funkcji tolower. Należy pamiętać, że funkcje te znajdują się w bibliotece <ctype.h>.

char zmienna; char zmienna;

cin>>zmienna; cin>>zmienna;

zmienna=toupper(zmienna); zmienna=tolower(zmienna);

Ustawienie wydruku na ekranie

Przesunięcie napisu CWICZE o dwa znaki tabulacji i przerzucenie do kolejnej linii można zrealizować następująco:

cout<<”\t \t \n CWICZE”;

lub

cout<<'\t'<<'\t'<<'\n'<<”CWICZE”;

Zadanie 2

Napisz program, który po wprowadzeniu określonego numeru dnia pisze jego nazwę słownie:

np. 1- poniedziałek; 2 - wtorek; 3 - środa itd. Jeżeli wskazany numer będzie większy od 7 na ekranie ma się pojawić informacja „Wcisnąłeś zły przycisk”.

#include <cstdlib>

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

int z; //jezeli z bedzie znakiem to deklarujemy char z;

0x08 graphic

cout<<"Podaj numer dnia tygodnia = ";

cin>>z;

switch(z)

{

case 1: cout<<"poniedzialek"<<endl; //case 'p': cout<<"poniedzialek"<<endl;

break;

case 2: cout<<"wtorek"<<endl;

break;

case 3: cout<<"sroda"<<endl;

break;

case 4: cout<<"czwartek"<<endl;

break;

case 5: cout<<"piatek"<<endl;

break;

case 6: cout<<"sobota"<<endl;

break;

case 7: cout<<"niedziela"<<endl;

break;

default: cout<<"Wcisnoles zly przycisk"<<endl;

}

system (“pause”);

return 0;

0x08 graphic
}

0x08 graphic
0x08 graphic
0x08 graphic

Zadania C++ 2

  1. Napisz program obliczający pierwiastki równania kwadratowego dla współczynników równania a, b, c podanych z klawiatury dla Δ > 0, Δ = 0 i Δ < 0.

  1. Napisz program znajdujący największą spośród trzech liczb podanych z klawiatury.

  1. Napisz program informujący czy wprowadzona z klawiatury liczba jest parzysta czy nieparzysta.

  1. Napisz program, który w zależności od podanego znaku z obliczy pole powierzchni i obwód jednej z figur płaskich tj. np.:

  1. Napisz program, który w zależności od podanego znaku z obliczy pole powierzchni, objętość

i masę jednej z brył geometrycznych, tj. np.:

przyjmując ciężar właściwy jakiegoś metalu, z którego bryła zostanie wykonana.

  1. Napisz program obliczający należność za energię elektryczną po podaniu z klawiatury jej zużycia w kWh. Na całkowitą kwotę składają się koszty wynikające ze zużycia energii oraz opłata stała uzależniona od przynależności do określonej grupy. Przyjmij, że odbiorcy podzieleni są na trzy grupy:

Grupa 1 zużycie od 0 do 300 kWh/miesiąc

Grupa 2 zużycie od 301 do 900 kWh/miesiąc

Grupa 3 zużycie powyżej 901 kWh/miesiąc

Na ekranie powinna pojawić się informacja: do jakiej grupy użytkowników należysz, ile płacisz

za zużytą energię, ile wynosi opłata stała w tej grupie oraz całkowity koszt rachunku.

  1. Napisz program, który będzie informował o godzinach odjazdów pociągów do kilku wybranych stacji np.

  1. Napisz program, który w zależności od podanego znaku z obliczy pole powierzchni, objętość

i masę jednej z brył geometrycznych, tj. np.:

przyjmując ciężar właściwy jakiegoś metalu, z którego bryła zostanie wykonana.

  1. Napisz program, który rozpoznaje i informuje czy wprowadzona z klawiatury litera jest spółgłoską czy samogłoską. (samogłoski z pominięciem polskich liter - a, e, i, o, u, y).

  1. Napisz program „Kalkulator”, który wykonuje podstawowe działania arytmetyczne (+, -, *, /) dla dwóch liczb podanych z klawiatury.

Ćwiczenia laboratoryjne nr 3

„Język Programowania” str. 3

N

Warunek

T

Instrukcja 2

Instrukcja 1

zly przycisk

WARIANT II

0x01 graphic

T

T

T

N

N

N

sroda

STOP

x=5

x=2

Obliczenia

Wypr. wyn.

Wypr. infor

Wypr. infor

Wypr. infor

x<=0

Wpr. x

START

x≤0, x=2, x=5

Wypr. wyn.

STOP

Wypr. infor

Obliczenia

Wpr. x

START

N

T

zmienna=

START

STOP

poniedzialek.

wtorek

default

C

B

A

instrukcja n

instrukcja 3

instrukcja 2

instrukcja 1

numer

default

3

2

1

Wybierz



Wyszukiwarka

Podobne podstrony:
CLAB 2 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 8 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 4 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 1 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 6-1 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 1-1 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 1-2 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 7-2 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 3-1 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 9 2009-2010, Napisz program zwiększający parametry a=1 i b=1 o stałe wartości (np
InstrukcjeĆw.2009 2010, Cw.1.E-01. Badanie właściwości elektrycznych kondensatora płaskiego, Laborat
InstrukcjeĆw.2009 2010, Cw.3.M-01,M-02.Równia pochyła.Wahadło, Laboratorium Fizyki; ćwiczenie Nr 1
Plan zajęć 2010,2011, Ćwiczenia laboratoryjne z Chemii ogólnej dla I roku kierunku lekarskiego na r
CLAB 4-1 2008-2009, Ćwiczenia laboratoryjne
Plan ćwiczeń VI rok semestr letni 2009-2010, AM, rozne, med rodzinna, Medycyna Rodzinna
Łamigłówki liczbowe 2009- 2010 Etap I, ĆWICZENIA OGÓLNOUSPRAWNIAJĄ, Matematyka, Łamigłówki liczbowe
ćwiczenia, Praca domowa ćw 2, Chemia ćwiczenia, I rok IŚ, studia stacjonarne 2009/2010
CLAB 10 2009-2010, #include <iostream
Harmonogram Cwiczen terenowych w semestrze zimowym w roku akademickim 2009-2010

więcej podobnych podstron