Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych. Autor artykułu: mgr Jerzy Wałaszek, wersja1.0 |
©2008 mgr
Jerzy Wałaszek |
Instrukcja warunkowa (ang. conditional instruction) służy do tworzenia rozgałęzień w programach. Instrukcja ta posiada następującą składnię:
if(warunek) instrukcja1; else
instrukcja2;
warunek | - | jest wyrażeniem, które może przyjmować wartość 0 - wtedy
jest traktowane jako niespełnione, fałszywe, albo wartość różną od 0 - wtedy
jest traktowane jako spełnione, prawdziwe. W warunkach często stosuje się
operatory porównań: < <= == >= > != - różny Operatory porównań zwracają wartość 0, jeśli porównanie jest negatywne, lub wartość 1, jeśli porównanie jest pozytywne. Wartości 0 i 1 w języku C++ mogą być reprezentowane stałymi false (0) i true (1). Przykłady:
|
instrukcja1 | - | instrukcja wykonywana, gdy warunek ma wartość różną od 0, czyli gdy jest prawdziwy (true) |
instrukcja2 | - | instrukcja wykonywana, gdy warunek ma wartość równą 0,
czyli gdy jest fałszywy (false). Człon z else może być pominięty, jeśli nasz
algorytm nie przewiduje wykonania żadnej operacji przy fałszywym warunku.
Wtedy instrukcja warunkowa upraszcza się do postaci: if(warunek) instrukcja; |
Jeśli w instrukcji warunkowej if musimy wykonać więcej niż jedną operację, to stosujemy tzw. instrukcję złożoną, czyli grupę instrukcji objętych klamrami:
{
inst1;
inst2;
...;
}
Składnia instrukcji if będzie następująca:
if(warunek)
{
instrukcje wykonywane, gdy warunek jest różny od zera
}
else
{
instrukcje wykonywane, gdy warunek jest równy zero
}
Instrukcja wyboru służy do warunkowego wykonywania operacji w zależności od wartości pewnego wyrażenia. Składnia jest następująca:
switch(wyrażenie)
{
case w_1: inst;
inst;
...;
case w_2: inst;
inst;
...;
...
...
...
case w_n: inst;
inst;
...;
default: inst;
inst;
...;
}
wyrażenie | - | jest wyrażeniem dającym w wyniku liczbę całkowitą |
w_i | - | liczby całkowite, etykiety, które mogą być wartością wyrażenia |
inst; | - | instrukcje wykonywane wewnątrz instrukcji switch. |
Instrukcja switch działa w sposób następujący:
Komputer oblicza wartość wyrażenia umieszczonego w nawiasach instrukcji switch. Następnie sprawdza, któraś z opcji case w_i posiada etykietę w_i o takiej wartości. Jeśli tak, to następuje wykonanie instrukcji umieszczonych za dwukropkiem etykiety. Jeśli żadna z etykiet nie odpowiada wartości wyrażenia, to zostają wykonane instrukcje umieszczone za dwukropkiem opcji default.
Instrukcje wewnątrz switch są wykonywane jedna za drugą. Na końcu zwykle umieszcza się instrukcję break, która powoduje przerwanie wykonywania instrukcji w swich - jeśli tego nie zrobimy, to wykonanie przejdzie do kolejnego bloku case (czasem jest to potrzebne).
W języku C++ funkcję definiujemy następująco:
typ_wyniku nazwa_funkcji(lista_parametrów)
{
treść funkcji;
}
typ_wyniku | - | określa rodzaj zwracanej przez funkcję wartości. Może to być int, double itd. Jeśli funkcja nie zwraca żadnej wartości, to stosujemy typ void. |
nazwa_funkcji | - | nazwa, poprzez którą będziemy wywoływać funkcję. Zasady tworzenia nazw funkcji są identyczne jak dla zmiennych. |
lista_parametrów | - | funkcja może wymagać dodatkowych danych, które przekazuje
jej wywołujący program. Dane są przekazywane w parametrach funkcji.
Parametry definiuje się podobnie do zmiennych: typ nazwa, typ nazwa... |
treść funkcji | - | definicje zmiennych oraz instrukcje, które są w ramach
funkcji wykonywane Do zwracania wyniku funkcji używamy na końcu funkcji instrukcji return, za którą umieszczamy wyrażenie. Wyrażenie jest obliczane i jego wynik zostaje zwrócony przez funkcję. |
Przykład:
Funkcja z dwoma parametrami zwracająca liczbę całkowitą - instrukcja return jest konieczna.
int suma(int a,int b)
{
return a + b;
}
Funkcja bezargumentowa, nie zwracająca żadnego wyniku - instrukcja return nie jest konieczna
void przywitanie()
{
cout << "Witaj w naszym programie.\n"
"-------------------------\n\n";
}
Pierwszą funkcję wywołujemy na przykład tak:
...
cout << suma(5,25) << endl;
...
Drugą funkcję wywołujemy tak:
...
przywitanie();
...
Napiszemy prosty program, który rysuje kostkę do gry. W tym celu wykonajmy prostą analizę:
Liczba oczek 1
2 3 4
5 6
1 wiersz ----- ----- -----
----- ----- -----
2 wiersz | | | o| |
o| |o o| |o o| |o o|
3 wiersz | o | | | | o
| | | | o | |o o|
4 wiersz | | |o | |o
| |o o| |o o| |o o|
5 wiersz ----- ----- -----
----- ----- -----
Wiersz nr 1 i 5 jest we wszystkich kostkach taki sam: -----
.
Pozostałe wiersze zależą od liczby oczek n:
wiersz 2:
| | - 1
n == 1
| o| - 2 3 n < 4
|o o| - 4 5 6 w pozostałych przypadkach
wiersz 3:
|o o| - 6 n == 6
| | - 2 4 n % 2 == 0
| o | - 1 3 5 w pozostałych przypadkach
wiersz 4:
| | - 1
n == 1
|o | - 2 3 n < 4
|o o| - 4 5 6 w pozostałych przypadkach
Z rozważań tych wynika następujący program rysowania kostki:
// Program rysowania kostki do gry // (C)2008 Koło informatyczne w I LO w Tarnowie // Kurs programowania w C++ dla początkujących //-------------------------------------------- #include <iostream> using namespace std; // Funkcja rysuje kostkę o zadanej liczbie oczek //---------------------------------------------- void kostka(int n) { cout << " ----- \n"; // wiersz nr 2 if(n == 1) cout << "| |\n"; else if(n < 4) cout << "| o|\n"; else cout << "|o o|\n"; // wiersz nr 3 if(n == 6) cout << "|o o|\n"; else if(n % 2 == 0) cout << "| |\n"; else cout << "| o |\n"; // wiersz nr 4 if(n == 1) cout << "| |\n"; else if(n < 4) cout << "|o |\n"; else cout << "|o o|\n"; cout << " ----- \n"; } int main() { int n; cout << "Ile oczek? "; cin >> n; kostka(n); cout << endl << endl; system("pause"); return 0; } |
Ile oczek? 5 ----- |o o| | o | |o o| ----- Aby kontynuować, naciśnij dowolny klawisz . . . |
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe