c++, wyklad c4

background image

C/C++

instrukcje:

grupowa
warunkowa „if”
wyboru „switch”
p
ętla „while”
p
ętla „do while”
p
ętla „for

break
continue

background image

Instrukcja przypisania

W instrukcji przypisania następuje przypisanie wartości wyrażenia
zmiennej postaci:

wynik=c/(i+f)*d-sin(x)+0.5;

Możliwe jest przypisanie wielokrotne postaci:

a=b=c=0;

wykorzystywane np. do zerowania zmiennych względnie ich
inicjalizacji tą samą wartością.

C/C++ - instrukcje

background image

C/C++ - instrukcje

Instrukcja grupowa

Instrukcja grupowa (blok instrukcji) jest ciągiem instrukcji ujętych w nawiasy

klamrowe.

Instrukcja grupowa jest traktowana jak instrukcja elementarna, jeśli dochodzi

do wejścia do bloku to wszystkie instrukcje składowe w niej zawarte są
wykonywane.

Przykład:

{

x=1;

y=3;

z=x+y;

}

background image

C/C++ - instrukcje

Instrukcja warunkowa

Instrukcja warunkowa (alternatywy) jest instrukcją pozwalającą na

alternatywną realizację dwóch bloków instrukcji. Sterowanie wyborem
jest realizowane wartością wyrażenia logicznego.

Postać ogólna instrukcji warunkowej:

if(W) I1 else I2

Jeżeli wartością wyrażenia logicznego W jest true (różna od zera) to

realizowana jest instrukcja (grupowa) I1, w przeciwnym wypadku (else)
instrukcja I2.

background image

C/C++ - instrukcje

Instrukcja warunkowa c.d.

Przykład 1. Sprawdzenie parzystości liczby całkowitej

unsigned int x;

cin>>x;

if (x%2==0)

{

cout<<”Liczba ”<<x<< ”jest parzysta”;

}

else

{

cout<<”Liczba ”<<x<< ”jest nieparzysta”;

}

Uwaga: Jeśli w bloku występuje jedna instrukcja nawiasy klamrowe (programowe) można

pominąć.

if (x%2==0)

cout<<”Liczba ”<<x<< ”jest parzysta”;

else

cout<<”Liczba ”<<x<< ”jest nieparzysta”;

przykład

background image

C/C++ - instrukcje

Instrukcja warunkowa niepełna

W przypadku gdy nie ma żadnych instrukcji do wykonania po słowie kluczowym else,

mówimy o niepełnej instrukcji warunkowej. W takiej sytuacji słowo kluczowe
else nie występuje, a instrukcja ma postać:

if (W) I

Przykład 2. Wyznaczenie modułu liczby całkowitej (wartości bezwzględnej).

int x,y;

cin>>x;

y=x;

if (x<0) y=-x;

cout<<”\nModuł liczby ”<<x<<”jest równy ”<<y;

// rozwi

ą

zanie z wykorzystaniem wyra

ż

enia

//warunkowego

y= x>=0 ? x:-x;

przykład

background image

C/C++ - instrukcje

Instrukcja warunkowa c.d.

Zagnieżdżanie instrukcji warunkowych

.

Instrukcje warunkowe można zagnieżdżać, czyli po słowie kluczowym if lub

else może wystąpić kolejna instrukcja warunkowa, a w tej z kolei kolejna
itd. W przypadku kiedy mamy do czynienia z zagnieżdżonymi
instrukcjami warunkowymi, wśród których występują instrukcje niepełne
i pełne oraz opuszczone zostały nawiasy klamrowe (występują
pojedyncze instrukcje), teoretycznie może nie być jednoznaczne
przyporządkowanie słowa else do jednego w wcześniejszych wystąpień
słowa kluczowego if.

W C++ problem jednak nie występuje, gdyż w takim przypadku else

przynależy do najbliższego (wcześniejszego) wystąpienia słowa if.

background image

C/C++ - instrukcje

Instrukcja warunkowa c.d.

Zagnieżdżanie instrukcji warunkowych

.

Przykład 3.

if (a+b>c)

if(a+c>b)

if(b+c>a)

cout<<”to jest trójk

ą

t”;

else

{

cout<<”ten komunikat zobaczymy tylko w przypadku”;

cout<<” niespełnienia warunku (b+c>a) a spełnienia”;

cout<<”pozostałych”;

}

przykład

background image

C/C++ - instrukcje

Instrukcja warunkowa – stopniowanie „if-else-if”

W języku C++ możliwe jest stosowanie następującej postaci instrukcji

warunkowej:

if (W1) I1
else if (W2) I2
...
else if (Wn) In
else In+1

W instrukcji powyższej sprawdzane są warunki od W1 do Wn i w sytuacji

spełnienia któregoś (wartość logiczna true) następuje wykonanie
odpowiedniego bloku instrukcji, a następnie zakończenie całego bloku.
Instrukcja In+1 jest wykonywana jeśli nie został spełniony żaden z
warunków.

background image

C/C++ - instrukcje

Instrukcja warunkowa – stopniowanie if-else-if

Przykład 4. Sprawdzenie czy liczba należy do rzędu jednostek, dziesiątek ,

setek, tysięcy lub większego rzędu.

if (x<10) cout<<”jednostki”;

else if (x<100) cout<<”dziesi

ą

tki”;

else if (x<1000) cout<<”setki”;

else if (x<10000) cout<<”jednostki tysi

ę

cy”;

else cout<<”rz

ą

d wi

ę

kszy ni

ż

jednostki tysi

ę

cy ”;

przykład

background image

C/C++ - instrukcje

Instrukcja wyboru jeden z wielu

„switch”

switch” jest instrukcją, która pozwala

dokonać wyboru jednej z wielu
sekwencji instrukcji. Sterowanie
wyborem odbywa się wartością
(zmiennej lub wyrażenia W).

Instrukcje po klauzuli default

wykonywane są w przypadku, kiedy
wartość wyrażenia W nie jest równa
ż

adnej z wartości wymienionych po

słowie case. Klauzula default jest
opcjonalna, gdy nie występuje i wartość
wyrażenia W nie jest równa żadnej z
wartości wymienionych po słowie case,
nie jest podejmowana żadna akcja.

switch (W){
case wartość1:

instrukcje
break;

case wartość2:

instrukcje
break;
...

default:

instrukcje

}

background image

C/C++ - instrukcje

Instrukcja „switch”

Przykład 5. Szkielet menu programu

int co;

printf(" MENU PROGRAMU \n\n\n" );

printf(" 1 -- dane \n");

printf(" 2 -- obliczenia\n" );

printf(" 3 -- wykres \n\n" );

printf(" wybierz opcje - " );

scanf("%d",&co);

switch (co) {

case 1: printf(" Tu nalezaloby podac dane " );

break;

case 2: printf(" Tu wykonywane bylyby obliczenia " );

break;

case 3: printf(" Tu bylby rysowany wykres " );

break;

default:printf(" niewłasciwy numer polecenia " );

}

przykład

background image

C/C++ - instrukcje

Instrukcja „while”

Instrukcja while jest instrukcją pętli, w której blok instrukcji realizowany

cyklicznie w przypadku gdy wartość logiczna wyrażenia sterującego
pętlą wynosi true (jest różna od zera).

Ogólna postać instrukcji jest następująca:

while(W) I

gdzie W jest wyrażeniem logicznym, a I jest instrukcją grupową.

W celu uniknięcia niekontrolowanego wystąpienia pętli nieskończonej

należy zadbać o to, aby w sekwencji instrukcji realizowanej we
wnętrzu pętli następowała modyfikacja zmiennych występujących w
wyrażeniu logicznym W.

background image

C/C++ - instrukcje

Instrukcja „while”

Przykład 6. Wczytywanie znaków z klawiatury i wyświetlanie ich na

ekranie. Wczytywanie kończy znak „q”.

char c;

cout<<"

podawaj znaki, \'q\' ko

ń

czy

wprowadzanie\n

";

c=getch();

while (c!='q')

{

cout<<c;

c=getch();

}

cout<<"\

nkoniec wprowadzania\n

";

przykład

przykład. szukanie liczby w wektorze

zauważmy, że pierwszym

wczytanym znakiem może

być ‘q’

background image

C/C++ - instrukcje

Instrukcja „do while”

Instrukcja do while jest instrukcją pętli, w której została zmieniona

kolejność bloków w stosunku do pętli while. W instrukcji do while
najpierw następuje wykonanie bloku instrukcji a dopiero po nim
sprawdzany jest warunek (wyrażenie logiczne) i jeśli jest spełniony
(wartość true) następuje kolejne wykonanie bloku operacji.

Ogólna postać instrukcji jest następująca:

do I while (W);

gdzie W jest wyrażeniem logicznym, a I jest instrukcją grupową.

Podobnie jak pętli while, w celu uniknięcia niekontrolowanego wystąpienia

pętli nieskończonej należy zadbać o to, aby w sekwencji instrukcji
realizowanej we wnętrzu pętli następowała modyfikacja zmiennych
występujących w wyrażeniu logicznym W.

background image

C/C++ - instrukcje

Instrukcja „ do while”

Przykład 7. Losowe wyświetlanie znaków na konsoli do momentu

naciśnięcia klawisza.

unsigned char c;

do{

c=rand();

putchar(c);

}while (!kbhit());

cout<<"koniec wy

ś

wietlania";

//

putchar(c)- wy

ś

wietla znak o podanym kodzie

//

kbhit() – zwraca true je

ś

li naci

ś

ni

ę

to klawisz

przykład

przykład. pełne menu

background image

C/C++ - instrukcje

Instrukcja pętli „for”

W większości języków programowania konstrukcja pętli for zakłada, że liczba powtórzeń

pętli jest sterowana specjalnie do tego celu użytą zmienną oraz to, że liczba powtórzeń
pętli jest z góry znana (lub można ją wyznaczyć). Są to dwie cechy odróżniające pętlę
for od pętli while lub do while.

Stąd też bardzo częstym zastosowaniem pętli for są operacje na tablicach.
W języku C++ konstrukcja pętli for jest bardziej elastyczna, w zasadzie można nią zastąpić

pozostałe, co najwyżej tracąc na przejrzystości programu.

Ogólna postać instrukcji for jest następująca:

for (W1;W2;W3) I

gdzie:

W1 – ustawienie początkowych wartości (inicjalizacja)

zmiennej lub zmiennych sterujących pętlą;

W2 - warunek pozostania w pętli;
W3- instrukcja lub instrukcje modyfikacji zmiennych sterujących;
I – blok instrukcji realizowany w ramach pętli.

background image

C/C++ - instrukcje

Instrukcja pętli „for” c.d.

for (W1;W2;W3) I

Pętla for jest realizowana w następujący sposób. W pierwszej kolejności wykonywane

są instrukcje inicjalizujące zmienne sterujące pętlą W1, jeśli jest ich więcej niż
jedna to są separowane przecinkiem.Ta czynność realizowana jest tylko raz.

Następnie cyklicznie: sprawdzana jest wartość wyrażenia logicznego W2, jeśli wynosi

true (liczba różna od zera) realizowany jest blok instrukcji I, a po nim
wykonywane są instrukcje modyfikacji zmiennej sterującej ( lub zmiennych,
wówczas instrukcje separuje się przecinkiem) W3.

Instrukcję for można przedstawić posługując się instrukcją while w następujący sposób:

W1 while (W2) { I W3 }

background image

C/C++ - instrukcje

Instrukcja pętli „for” c.d.

W1 while (W2) {I W3}

Przykład 8. Obliczenie sumy N początkowych liczb naturalnych

const int N=15;

int suma=0;

for(int i=1;i<=N;i++)

{

suma+=i;

}

cout<< suma;

const int N=15;

int suma=0;

int i=1;

while (i<=N)

{

suma+=i;

i++;

}

cout<< suma;

przykład

background image

C/C++ - instrukcje

Instrukcja pętli „for” c.d.

Przykład 9. Wypełnienie tablicy dwuwymiarowej liczbami całkowitymi

wypełnianie,losowanie, wyświetlanie tablic

const int N=2,M=3;

int tab[N][M],p;

cout<<"podawaj elementy tablicy "<<N<<'x'<<M<<endl;

for ( int i=0;i<N;i++)

for (int j=0;j<M;j++)

{

cout<<'('<<i<<','<<j<<

)=

;

cin>>p;

tab[i][j]=p;

}

background image

C/C++ - instrukcje

Instrukcja pętli „for” c.d.

for (W1;W2;W3) I

Elementy składowe pętli W1,W2,W3 są opcjonalne, w skrajnym

przypadku pętla pozbawiona wszystkich tych elementów jest pętlą

nieskończoną:

for ( ; ; ) cout<<”p

ę

tla niesko

ń

czona\n”;

Inną odmianą pętli for jest pętla opóźniająca, gdzie blok operacji jest

pusty:

for(int i=0;i<1000;i++);

background image

C/C++ - instrukcje

Instrukcja break

Instrukcja break umieszczona w pętli while, do while lub for powoduje wyjście z
pętli. W instrukcji switch, zastosowana na zakończenie sekwencji case, powoduje
zakończenie instrukcji switch.

Należy pamiętać o tym, aby nie nadużywać instrukcji break i jeśli jest to możliwe
zastąpić odpowiednio zmodyfikowaną instrukcją pętli.

Uzasadnione (?) użycie instrukcji break może nastąpić w pętli nieskończonej do jej
opuszczenie o ile zajdą do tego okoliczności (przykład poniżej).

Przykład 10. Nieskończona pętla for przerywana przez naciśnięcie przycisku na
klawiaturze.

for ( ; ; )

{

if (kbhit()) break;

}

przykład

background image

C/C++ - instrukcje

Instrukcja continue

Instrukcja continue umieszczona w pętli while, do while lub for powoduje:

- w pętli for zakończenie realizacji bieżącej iteracji i przejście do modyfikacji zmiennej

sterującej,

-w pętlach while i do while pominięcie dalszych instrukcji w bloku i przejście do

sprawdzenia warunku.

Należy pamiętać o tym, że nadużywanie instrukcji continue może spowodować
pogorszenie czytelności programu i jeśli jest to możliwe zastąpić instrukcję continue
instrukcją warunkową.

for (int i=1;i<100 ;i++ )

{

if (i%2!=0) continue;

cout<<i<<endl;

}

Przykład 11. Wyświetlanie liczb
parzystych z przedziału [1,99].

przykład


Wyszukiwarka

Podobne podstrony:
c++ wyklad c4
Napęd Elektryczny wykład
wykład5
Psychologia wykład 1 Stres i radzenie sobie z nim zjazd B
Wykład 04
geriatria p pokarmowy wyklad materialy
ostre stany w alergologii wyklad 2003
WYKŁAD VII
Wykład 1, WPŁYW ŻYWIENIA NA ZDROWIE W RÓŻNYCH ETAPACH ŻYCIA CZŁOWIEKA
Zaburzenia nerwicowe wyklad
Szkol Wykład do Or
Strategie marketingowe prezentacje wykład
Wykład 6 2009 Użytkowanie obiektu
wyklad2
wykład 3

więcej podobnych podstron