Reverse
Advanced User
- Joined
- Jul 11, 2010
- Messages
- 191
- Reaction score
- 46
C++ z Reverse - Lekcja trzecia!
No wi?c czas zacz?? lekcj? trzeci?, w kt?rej zacznie si? zabawa z j?zykiem C++. Od tej lekcji nie b?dzie ju? tak ?atwo, szybko i przyjemnie tak jak z pierwszymi dwoma lekcjami!
3.1 Instrukcje steruj?ce.
Instrukcje steruj?ce s? to polecenia s?u??ce do sterowania przebiegiem programu. W instrukcjach steruj?cych podejmowane s? decyzje o wykonaniu tych czy innych instrukcji programu. Decyzje te podejmowane s? w zale?no?ci od spe?nienia lub niespe?nienia jakiego? warunku. Prosto rzecz ujmuj?c, od prawdziwo?ci lub fa?szywo?ci danego wyra?enia.
3.2 Prawda i Fa?sz
W j?zyku C++ nie specjalnego typu okre?laj?cego zmienne logiczne - czyli te, kt?re przyjmuj? warto?ci: prawda lub fa?sz. To znaczy ?e sprawdza si? czy warto?? danego obiektu jest r?wna czy r??na od zera.
Warto?? zero - fa?sz
Warto?? inna ni? zero - prawda
Nie musi by? to nawet zawarto?? jednego obiektu. Mo?e to by? tak?e bardziej skomplikowane wyra?enie, kt?re trzeba obliczy?, aby przekona? si? jaka jego warto??. A wynik nie musi by? wcale liczb?.
3.3 Instrukcja warunkowa if
Instrukcja if mo?e mie? dwie formy:
if(wyra?enie) instrukcja1 ;
lub
if(wyra?enie) instrukcja1 ;
else instrukcja 2;
W miejsce "wyra?enie" wpisujemy co? co ma jak?? warto?? np. a - 1. Je?eli w pierwszym przypadku czyli:
if(a - 1) cout << "Prawda" ;
je?li po odj?ciu od liczby "a" wyra?enie jest mniejsze od zera to instrukcja nie jest wykonywana, czyli nasz program nic nam nowego nie wy?wietla.
Ale je?li chodzi o drugi spos?b tj.
if(a - 1) cout << "Prawda" ;
else cout << "Falsz" ;
to je?li a - 1 jest mniejsze od zera to wykonywana jest instrukcja2, czyli wy?wietli si? nam na ekranie komunikat o tre?ci Falsz.
3.4 Blok instrukcji
Cz?sto zdarza si? ?e chodzi nam o wykonanie warunkowe kilku instrukcji. Stosujemy w?wczas instrukcje sk?adan? inaczej zwan? blokiem. S? to po prostu zwyk?e instrukcje ograniczone nawiasami { } .
Pami?taj ?e po klamrze nie stawiamy ?rednika.
{
instr1 ;
instr2 ;
instr3 ;
}
A oto przyk?ad programu w kt?rym zastosujemy instrukcje blokow?:
[/FONT]
Pami?taj ?e po klamrze nie stawiamy ?rednika.
{
instr1 ;
instr2 ;
instr3 ;
}
A oto przyk?ad programu w kt?rym zastosujemy instrukcje blokow?:
Code:
[FONT=Times New Roman]
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int predkosc, punkty_karne ;
cout << " Z jaka szybkoscia jedziemy? [km/h]: ";
cin >> predkosc ;
if(predkosc > 80)
{
cout << "\n" << predkosc << "km/h to za szybko! \n" ;
punkty_karne= 10 ;
}
else
{
cout << "\nJadac" << predkosc << " km/h nie lamiesz przepisow \n" ;
punkty_karne = 0 ;
}
cout << "Masz " << punkty_karne
<< " punktow karnych \n" ;
if(punkty_karne) cout << "Popraw sie !" ;
system("PAUSE");
return EXIT_SUCCESS;
}
A efektem naszej pracy jest :
lub:
3.5 Instrukcja while
Instrukcja while wygl?da tak:
while(wyra?enie) instrukcja1 ;
Najpierw sprawdzana jest warto?? wyra?enia. Je?li wynik jest zerowy to instrukcja1 nie jest wykonywana. Je?li jednak warto?? wyra?enia jest inna od zera ( prawda) to instrukcja1 jest wykonywana. Kr?tko m?wi?c instrukcja while - oznacza je?li/je?eli to znaczy je?li warto?? wyra?enia b?dzie nier?wna zeru to program ca?y czas b?dzie wykonywa? t? instrukcj? p?ki wyra?enie nie przyjmie warto?ci zerowej, najlepiej b?dzie jak poka?e to na przyk?adzie :
A o to efekt naszej pracy :
A co je?li pod instrukcja while damy :
while(a)
}
cout << "*" ;
a = a +1 ;
)
Odpowied? jest prost instrukcja b?dzie wykonywana bez ko?ca bo warto?? wyra?enia ( w naszym przypadku a) nigdy nie b?dzie r?wna zeru.
Instrukcja while wygl?da tak:
while(wyra?enie) instrukcja1 ;
Najpierw sprawdzana jest warto?? wyra?enia. Je?li wynik jest zerowy to instrukcja1 nie jest wykonywana. Je?li jednak warto?? wyra?enia jest inna od zera ( prawda) to instrukcja1 jest wykonywana. Kr?tko m?wi?c instrukcja while - oznacza je?li/je?eli to znaczy je?li warto?? wyra?enia b?dzie nier?wna zeru to program ca?y czas b?dzie wykonywa? t? instrukcj? p?ki wyra?enie nie przyjmie warto?ci zerowej, najlepiej b?dzie jak poka?e to na przyk?adzie :
Code:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int a;
cout << " Ile masz lat? Za kazdy jeden rok narysujemy gwiazdke! : " ;
cin >> a ;
cout << "\n No to narysujmy je wszystkie "
<< a << ": " ;
while(a)
{
cout << "*" ;
a = a - 1 ;
}
system("PAUSE");
return EXIT_SUCCESS;
}
A co je?li pod instrukcja while damy :
while(a)
}
cout << "*" ;
a = a +1 ;
)
Odpowied? jest prost instrukcja b?dzie wykonywana bez ko?ca bo warto?? wyra?enia ( w naszym przypadku a) nigdy nie b?dzie r?wna zeru.
Koniec lekcji trzeciej!
I w?a?nie dobrn?li?my do ko?ca trzeciej lekcji, z t? wiedz? mo?ecie ju? bawi? si? w pisanie drobnych program?w, nie martwcie si? to dopiero pocz?tek prawdziwej zabawy w C++, teraz ka?da nast?pna lekcja b?dzie kilkakrotnie trudniejsza. Na nast?pnej lekcji zajmiemy si? p?tlami i instrukcjami switch i break.
Pozdrawiam,
Reverse.
Pozdrawiam,
Reverse.