INSTRUKCJ
E
Stanowią treść zapisu algorytmu, służą do sterowania
działaniem „programu” - (kodu źródłowego)
- warunkowe
(podejmowanie decyzji)
1.
if-else
- jeśli –
to
, wówczas,
dalej
2.
switch-case
-
wybór
, przełącznik
-
przypadek
-iteracyjne
(pętle, obliczenia cykliczne)
1.
for
- dla
2.
while
- dopóki
3.
do ... while
- wykonuj dopóki …
iteracja,
iteracja,
postępowanie polegające na wielokrotnym
powtarzaniu tego
samego przekształcenia
-sterujące przebiegiem programu
1.
break -
przerwij
2.
continue
- kontynuuj
3.
return
- zwróć wartość i powróć
4.
goto –
skocz, przejdź do
INSTRUKCJE
c.d.
-
proste:
pusta, przypisania
-pusta
;
-przypisania
y=x;
masa=gestosc*objetosc;
z+=2;
-
złożone
{ ...
},
{
x=4*a;
y=pow(x,5);
for(i=1;i<10;i++)
{
z=exp(y)/i;
cout<<z<<endl;
}
}
INSTRUKCJE
c.d.
Instrukcja warunkowa:
Instrukcja warunkowa:
Pozwala na zbadanie warunku w programie,
a następnie na kontynuowanie obliczeń zależnie od
spełnienia tego warunku.
Komputer w ten sposób podejmuje decyzje.
if
if
- jeżeli
- jeżeli
if
if
(wyrażenie warunkowe)
(wyrażenie warunkowe)
instrukcja1
instrukcja1
[
[
else
else
instrukcja2
instrukcja2
]
]
(wyrażenie) jest
prawdziwe
else
–
jeszcze
–
w przeciwnym razie
Przy użyciu
Przy użyciu
else
else
wybór był
wybór był
dwuwariantowy
dwuwariantowy
:
:
wykonujemy
wykonujemy
to
to
lub
lub
tamto
tamto
Koło słowa
Koło słowa
else
else
można postawić instrukcję
można postawić instrukcję
if
if
,
,
co daje wybór
co daje wybór
wielowariantowy
wielowariantowy
if
if
(warunek 1)
(warunek 1)
instrukcja 1 ;
instrukcja 1 ;
else if
else if
(warunek 2)
(warunek 2)
instrukcja 2 ;
instrukcja 2 ;
else if
else if
(warunek 3)
(warunek 3)
instrukcja 3 ;
instrukcja 3 ;
else if
else if
(warunek 4)
(warunek 4)
instrukcja 4 ;
instrukcja 4 ;
alternatywa to instrukcja
alternatywa to instrukcja
switch
switch
Warune
Warune
k
k
(wyrażeni
(wyrażeni
e)
e)
Instrukcja 1
Instrukcja 1
NIE
NIE
TAK
TAK
Instrukcja warunkowa
niepełna
if (wyrażenie) instrukcja 1 ;
(wyrażenie)
(wyrażenie)
to wartość – przechowywany
to wartość – przechowywany
obiekt zmiennej logicznej lub też wyrażenie
obiekt zmiennej logicznej lub też wyrażenie
wymagające obliczenia, by poznać jego
wymagające obliczenia, by poznać jego
wartość
wartość
Jeśli wartość (wyrażenia) jest niezerowa to
Jeśli wartość (wyrażenia) jest niezerowa to
wykonywana jest
wykonywana jest
instrukcja 1,
instrukcja 1,
jeśli wartość jest „0” to
jeśli wartość jest „0” to
instrukcja 1
instrukcja 1
nie jest
nie jest
wykonywana
wykonywana
if (w>0)
{
cout<<”sukces”<
<endl;
}
Słowo
kluczowe
if
Warunek podlegający
sprawdzaniu
Instrukcja
wykonywana po
spełnieniu warunku
warune
warune
k
k
(wyrażeni
(wyrażeni
e)
e)
Instrukcja 1
Instrukcja 1
Instrukcja 2
Instrukcja 2
NIE
NIE
TAK
TAK
Instrukcja warunkowa
pełna
if (wyrażenie)
instrukcja 1 ;
else
instrukcja 2 ;
•Jeśli wartość (wyrażenia) jest
niezerowa to wykonywana jest
instrukcja 1, jeśli wartość jest „0” to
instrukcja 1 nie jest wykonywana
•jeśli wartość (wyrażenia) jest „0”
zostanie wykonana instrukcja 2
if (w==0)
{
cout<<”sukces”<
<endl;
}
else
{
cout<<”pech”<<e
ndl;
}
Słowo
kluczowe
„if”
Warunek podlegający
sprawdzaniu
Instrukcja 1
wykonywana po
spełnieniu warunku
Instrukcja 2
wykonywana po
niespełnieniu
warunku
OPERATORY RELACYJNE
arytmetyczne
OPERATOR
OPERATOR
ZNACZENIE
ZNACZENIE
<
<
mniejszy
mniejszy
<=
<=
mniejszy lub równy
mniejszy lub równy
>
>
większy
większy
>=
>=
większy lub równy
większy lub równy
==
==
równy
równy
!=
!=
nierówny
nierówny
OPERATORY RELACYJNE
logiczne
OPERATOR
OPERATOR
ZNACZENIE
ZNACZENIE
!
!
negacja
negacja
&&
&&
koniunkcja
koniunkcja
||
||
alternatywa
alternatywa
w
w1
instrukcja11
instrukcja1
instrukcja12
instrukcja2
N
N
T
T
N
N
T
T
Instrukcja warunkowa
if - else
zagnieżdżona
if (w>0&&k!=0)
{
if (w1>10)
{
cout<<”sukces”<<endl;
}
else
{
cout<<”moze
byc”<<endl;
}
}
else
{
cout<<”pech”<<endl;
}
Słowo
kluczowe
if
Warunek podlegający
sprawdzaniu
Instrukcja1 „if”
zagnie-żdżona
wykonywana po
spełnieniu warunku
Instrukcja2
wykonywana po
niespełnieniu
warunku
Warunek 1
instrukcji1
zagnieżdżonej „if”
podlegający
sprawdzaniu
Równanie kwadratowe
Równanie kwadratowe
– fragment schematu
– fragment schematu
blokowego
blokowego
delta<
0
delta=
=0
x0=
x1=
x2=
T
T
N
N
N
N
T
T
Drukuj x0
Drukuj x1,
x2
Drukuj
„brak rozw.”
cout<<"Podaj wartosc liczby a, b i c"<<endl;
cout<<"Podaj wartosc liczby a, b i c"<<endl;
cin>>a>>b>>c;
cin>>a>>b>>c;
delta=b*b-4*a*c;
delta=b*b-4*a*c;
if (delta<0)
if (delta<0)
cout<<"brak rozwiazania w zbiorze liczb R"<<endl;
cout<<"brak rozwiazania w zbiorze liczb R"<<endl;
else
else
if (delta==0)
if (delta==0)
{
{
x0=-b/(2*a);
x0=-b/(2*a);
cout<<"x0= "<<x0<<endl;
cout<<"x0= "<<x0<<endl;
}
}
else
else
{
{
x1=(-b-sqrt(delta))/(2*a);
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
cout<<"x1="<<x1<<endl;
cout<<"x1="<<x1<<endl;
cout<<"x2="<<x2<<endl;
cout<<"x2="<<x2<<endl;
}
}
Równanie kwadratowe – fragment kodu źródłowego
Równanie kwadratowe – fragment kodu źródłowego
Instrukcja wyboru
switch
switch
(wyrażenie-sterujące)
{
case
E1:instrukcja1;
break
;
case
E2:instrukcja2;
break
;
. . .
default
: instrukcjan;}
Jest to instrukcja sterująca
umożliwiająca
rozgałęzienie na
wiele dróg w programie w zależności
od wartości pewnego wyrażenia-
sterującego zwanego selektorem.
switch
switch
– przełącznik, wielowariantowe
– przełącznik, wielowariantowe
decyzje
decyzje
switch
switch
(wyrażenie)
(wyrażenie)
{
{
case
case
wart1
wart1
:
:
instrA ;
instrA ;
break ;
break ;
case
case
wart2
wart2
:
:
instrB ;
instrB ;
break ;
break ;
default :
default :
instrC ;
instrC ;
break ;
break ;
}
}
case
case
– wypadek, sytuacja
– wypadek, sytuacja
break
break
– zatrzymaj, przerwij
– zatrzymaj, przerwij
default
default
- domniemanie
- domniemanie
Obliczane jest
Obliczane jest
(wyrażenie)
(wyrażenie)
przy słowie
przy słowie
switch
switch
,
,
jeśli odpowiada jednej z etykiet
jeśli odpowiada jednej z etykiet
case
case
, wówczas
, wówczas
wykonywane są instrukcje aż do napotkania
wykonywane są instrukcje aż do napotkania
break.
break.
Następuje wyjście z instrukcji
Następuje wyjście z instrukcji
switch
switch
,
,
czyli wyjście
czyli wyjście
poza jej dolną klamrę.
poza jej dolną klamrę.
Jeśli wartość
Jeśli wartość
(
(
wyrażenie
wyrażenie
)
)
nie zgadza się z żadną z
nie zgadza się z żadną z
wartości podanych przy etykietach
wartości podanych przy etykietach
case
case
,
,
wykonywana są instrukcje przy etykiecie
wykonywana są instrukcje przy etykiecie
default
default
.
.
Etykieta
Etykieta
default
default
może być w dowolnym miejscu lub
może być w dowolnym miejscu lub
też może jej nie być wcale. Wówczas, jeśli wartość
też może jej nie być wcale. Wówczas, jeśli wartość
(
(
wyrażenia
wyrażenia
)
)
nie odpowiada żadnej wartości przy
nie odpowiada żadnej wartości przy
etykietach
etykietach
case
case
opuszczana jest instrukcja
opuszczana jest instrukcja
switch
switch
,
,
bez żadnych działań.
bez żadnych działań.
Nie ma konieczności występowania instrukcji
Nie ma konieczności występowania instrukcji
break
break
.
.
Jej brak powoduje wykonywanie kolejnych instrukcji.
Jej brak powoduje wykonywanie kolejnych instrukcji.
E1
:
E2
:
E3
:
default
:
wyrażenie
wyrażenie
sterujące
sterujące
(selektor)
(selektor)
Instrukcj
a1
Instrukcj
a2
Instrukcj
a3
Instrukcj
an
Instrukcja wyboru
switch
składnia
switch (selektor)
{
case E1:
instrukcja1;
case E2:
instrukcja2;
case E3:
instrukcja3;
...
case En-1:
instrukcjan-1;
default: instrukcjan;
}
Wartość selektora ustala
pierwszą instrukcję do
wykonania
Gdy selektor nie przyjmuje
żadnej dopuszczalnej wartości
od S1-Sn-1
Instrukcje do
wyboru
Instrukcja wyboru
switch
składnia
switch (selektor)
{
case E1: instrukcja1;
break;
case E2: instrukcja2;
break;
case E3: instrukcja3;
break;
...
case En-1:
instrukcjan-1;
break;
default: instrukcjan;
}
Wartość selektora
ustala instrukcję do
wykonania
Gdy selektor nie przyjmuje
żadnej dopuszczalnej wartości
od S1-Sn-1
Instrukcje do
wyboru
Przerwanie
wykonania
instrukcji
Wykonanie tylko określonej grupy
instrukcji
#include <iostream.h>
#include <ctype.h>
#define info “To jest samogloska.”
main()
{
char litera;
cout<<”Podaj litere: ”;
cin>>litera;
litera=toupper(litera);
switch (litera)
{
case ‘A’: cout<<info<<endl;
break;
case ‘E’: cout<<info<<endl;
break;
case ‘I’: cout<<info<<endl;
break;
case ‘O’: cout<<info<<endl;
break;
case ‘U’: cout<<info<<endl;
break;
case ‘Y’: cout<<info<<endl;
break;
default: cout<<”To nie jest
samogloska”<<endl;
}
return(0);
}
Wykrywanie samogłosek
switch
(litera)
{
case
‘A’: cout<<info<<endl;
break;
case
‘E’: cout<<info<<endl;
break;
case
‘I’: cout<<info<<endl;
break;
case
‘O’: cout<<info<<endl;
break;
case
‘U’: cout<<info<<endl;
break;
case
‘Y’: cout<<info<<endl;
break;
default
: cout<<”To nie jest
samogloska”<<endl;
}
Instrukcja iteracyjna (pętla)
while
„dopóki”
while
(wyrażenie-warunkowe) instrukcja
wewnętrzna
while (wyrażenie)
instrukcja 1 ;
Do wykonywania pętli w których wykonanie działań
jest uzależnione od spełnienia na początku warunku
powtarzania działań (warunek sprawdzany na początku)
Obliczana jest wartość (wyrażenia) i jeśli jest zerowa
instrukcja 1 nie jest wykonywana, jeśli wartość (wyrażenia)
jest niezerowa instrukcja 1 jest wykonywana, po czym
ponownie jest obliczana wartość (wyrażenia), według tego
samego schematu. Pętla jest przerywana, jeśli wartość
(wyrażenia) jest zerowa.
Wartość (wyrażenia) jest obliczana przed wykonaniem
instrukcji 1
!
Instrukcja iteracyjna (pętla)
while
„dopóki”
N
T
warun
warun
ek
ek
Instrukcja
wewnętrzna
licznik=0;
while (w<100)
{
w=w+10;
cout<<”w=”<<w<<
endl;
licznik++;
}
Dopóki warunek jest
spełniony instrukcja
wewnętrzna pętli będzie
wykonywana
Przy każdym
przejściu przez
pętlę licznik jest
inkrementowany
Instrukcje
wewnętrzne
pętli
Zerowanie
licznika przed
pętlą
licznik++
licznik++
licznik=licznik+1
licznik=licznik+1
#include <iostream.h>
main()
{
int liczba, suma=0, iloczyn=1;
cout<<”Podaj pierwsza liczbe”<<endl;
cin>>liczba;
while (liczba!=0)
{
suma+=liczba;
iloczyn*=liczba;
cin>>liczba;
}
cout<<”Suma liczb wynosi” <<suma<<endl;
cout<<”Iloczyn liczb wynosi”<<iloczyn<<endl;
return(0);
}
Wyznaczanie sumy i iloczynu ciągu liczb
całkowitych zakończonego liczbą zero
while (liczba!=0)
{
suma+=liczba;
iloczyn*=liczba;
cin>>liczba;
}
suma=suma+liczba;
iloczyn=iloczyn*liczba;
Instrukcja iteracyjna (pętla)
do
while
„wykonuj dopóki”
do
instrukcja
wewnętrzna
while
(wyrażenie-warunkowe);
Do wykonywania pętli w których
wykonanie działań jest uzależnione
od spełnienia
warunku zakończenia
działań
–
warunek sprawdzany na
końcu
!
Pętla
Pętla
do … while …
do … while …
do
do
instrukcja 1
instrukcja 1
while
while
(wyrażenie) ;
(wyrażenie) ;
rób
rób
instrukcja 1
instrukcja 1
dopóki
dopóki
(wyrażenie) ;
(wyrażenie) ;
Najpierw wykonywana jest
Najpierw wykonywana jest
instrukcja 1,
instrukcja 1,
potem obliczana wartość
potem obliczana wartość
(wyrażenia), jeśli (wyrażenie) jest niezerowe to wykonanie
(wyrażenia), jeśli (wyrażenie) jest niezerowe to wykonanie
instrukcji 1
instrukcji 1
zostanie powtórzone, po czym ponownie nastąpi
zostanie powtórzone, po czym ponownie nastąpi
obliczenie (wyrażenia) – dopóki (wyrażenie) będzie niezerowe
obliczenie (wyrażenia) – dopóki (wyrażenie) będzie niezerowe
W odniesieniu do instrukcji
W odniesieniu do instrukcji
while
while
następuje
następuje
zmiana kolejności najpierw wykonywana jest
zmiana kolejności najpierw wykonywana jest
instrukcja 1
instrukcja 1
,
,
a wartość (wyrażenia) obliczana
a wartość (wyrażenia) obliczana
potem, nawet jeśli
potem, nawet jeśli
jest ono
jest ono
zerowe
zerowe
Operator „
Operator „
!=
!=
” oznacza „jest różny”(
” oznacza „jest różny”(
≠
≠
)
)
Np. „ dopóki litera (zmienna) jest różna od K”
Np. „ dopóki litera (zmienna) jest różna od K”
Instrukcja iteracyjna (pętla)
do while
„wykonuj dopóki”
T
N
warune
warune
k
k
Instrukcja wewnętrzna
licznik=0;
do
{
w=w+10;
cout<<”w=”<<w<
<endl;
licznik=licznik+1;
}
while (w<100);
Dopóki warunek nie jest spełniony
instrukcja wewnętrzna pętli
będzie wykonywana
Przy każdym
przejściu przez
pętlę licznik jest
inkrementowany
Instrukcje
wewnętrzne
pętli
Zerowanie
licznika przed
pętlą
#include <iostream.h>
main()
{
int cyfra=0;
do
{
cout<<cyfra<<” “;
cyfra++;
}
while (cyfra<10);
return(0);
}
Drukowanie cyfr od 0 ... 9
Instrukcja iteracyjna (pętli)
for
„dla”,
for
(
wyrażenie-inicjujące; wyrażenie-warunkowe; wyrażenie-
zwiększające
) instrukcja wewnętrzna
-
do wykonywania pętli o określonej
(znanej) liczbie powtórzeń
- stosuje się głównie do wykonania
operacji na tablicach
for
for
(
(
instr_ini ; wyraz_warun ; inst._krok)
instr_ini ; wyraz_warun ; inst._krok)
treść _pętli
treść _pętli
;
;
przykład:
przykład:
for (i=0 ; i<10 ; i=i+1)
for (i=0 ; i<10 ; i=i+1)
{
{
cout<< ”Ku – ku !” ;
cout<< ”Ku – ku !” ;
}
}
for
for
– dla takich warunków rób
– dla takich warunków rób
instr_ini –
instr_ini –
instrukcja inicjująca wykonywana przed
instrukcja inicjująca wykonywana przed
uruchomieniem pętli: i=0
uruchomieniem pętli: i=0
wyraz_warun
wyraz_warun
wyrażanie obliczane przed każdym
wyrażanie obliczane przed każdym
obiegiem pętli. Jeśli jest ono różne od 0 to
obiegiem pętli. Jeśli jest ono różne od 0 to
wykonywane są instrukcje będące treścią pętli:
wykonywane są instrukcje będące treścią pętli:
i<10, jeśli i jest rzeczywiście <10 wówczas
i<10, jeśli i jest rzeczywiście <10 wówczas
wykonywana jest instrukcja będąca treścią pętli: ”Ku-
wykonywana jest instrukcja będąca treścią pętli: ”Ku-
ku”
ku”
inst._krok
inst._krok
– wykonywana na koniec każdego obiegu
– wykonywana na koniec każdego obiegu
przed obliczeniem
przed obliczeniem
wyraz_warun
wyraz_warun
:
:
i=i+1
i=i+1
Praca pętli:
Praca pętli:
–
wykonanie instrukcji inicjalizujących
wykonanie instrukcji inicjalizujących
(
(
instr_ini)
instr_ini)
–
obliczenie wyrażenia warunkowego
obliczenie wyrażenia warunkowego
(
(
wyraz_warun)
wyraz_warun)
, jeśli jest =0 – pętla jest
, jeśli jest =0 – pętla jest
przerywana
przerywana
–
po spełnieniu 2. wykonywane są
po spełnieniu 2. wykonywane są
instrukcje treści pętli
instrukcje treści pętli
–
po wykonaniu 3. wykonywana
po wykonaniu 3. wykonywana
inst._krok
inst._krok
,
,
po czym powtarzana jest akcja od 2.
po czym powtarzana jest akcja od 2.
pętle nieskończone:
pętle nieskończone:
for( ; ; )
for( ; ; )
{
{
…
…
.
.
}
}
while(1)
while(1)
{
{
…
…
.
.
}
}
Ważne informacje:
Ważne informacje:
–
instr_ini
instr_ini
- może być kilka oddzielonych
- może być kilka oddzielonych
przecinkami
przecinkami
–
inst._krok
inst._krok
– j.w.
– j.w.
–
instr_ini
instr_ini
wyraz_warun
wyraz_warun
inst._krok
inst._krok
nie muszą
nie muszą
wystąpić.
wystąpić.
–
Dowolny element można opuścić, należy jednak
Dowolny element można opuścić, należy jednak
zachować „
zachować „
;
;
”
”
–
opuszczenie
opuszczenie
wyraz_warun
wyraz_warun
jest traktowane jakby było
jest traktowane jakby było
ono zawsze niezerowe – prawdziwe
ono zawsze niezerowe – prawdziwe
Instrukcja iteracyjna (pętli)
for
„dla”
N
T
for (w-i;w-w;w-
for (w-i;w-w;w-
z)
z)
Instrukcja
wewnętrzna
for (i=0;
i<10; i++)
{
cout<<i<<en
dl;
}
Słowo
kluczowe
„for”
Wartość
początkowa
licznika
Wartość
końcowa
licznika
Licznik pętli
Instrukcja
wewnętrzna pętli
Instrukcja iteracyjna
for
„dla”
składnia
Inkrementowanie i
dekrementowanie licznika
pętli
i=i+1
i=i+1
i=i-1
i=i-1
i++
i++
i--
i--
i+=1
i+=1
i-=1
i-=1
i+=krok
i+=krok
i-=krok
i-=krok
Zamiana na duże litery
#include <iostream.h>
#include <string.h>
#include <ctype.h>
#define max 30
main()
{
char nazwa [max];
int x;
cout<<”Podaj nazwe: ”<<endl;
cin>>nazwa;
for (x=0; x<strlen(nazwa); x++)
{
nazwa[x]=toupper(nazwa[x]);
}
cout <<endl<<nazwa<<endl;
}
#include <iostream.h>
main()
{
int linia, gwiazdki, ostatnia;
cout<<”Ile gwiazdek chcesz wyswietlic w ostatniej linii ?”<<endl;
cin>>ostatnia;
for (linia=1; linia<=ostatnia; linia++)
{
for (gwiazdki=1; gwiazdki<=linia; gwiazdki++)
{
cout<<”*”;
}
cout<<endl:;
}
return(0);
}
Zagnieżdżanie jednej instrukcji ”for” w
drugiej
*
*
* *
* *
* * *
* * *
* * * *
* * * *
* * * * *
* * * * *
Instrukcja break
„przerwij”
break;
Powoduje opuszczenie aktualnego
poziomu
pętli
lub
instrukcji
wyboru.
Dopuszczalne
zastosowanie tylko w instrukcjach
:
switch, for, while, do…while
Program wyznaczania iloczynu ciągu liczb całkowitych, różnych
od zera
o określonej długości
#include <iostream.h>
main()
{
int liczba, iloczyn=1, dlugosc, i;
cout<<”Podaj dlugosc ciagu liczb”<<endl;
cin>>dlugosc;
cout<<”Podaj liczby”<<endl;
for (i=1; i<=dlugosc; i++)
{
cin>>liczba;
if (liczba==0)
{
break;
}
iloczyn*=liczba;
}
if (liczba==0)
cout<<”Blad danych”;
else
cout<<”Iloczyn liczb wynosi:”<<iloczyn;
}
Instrukcja continue
„kontynuuj”
continue;
Dopuszczalne zastosowanie tylko
w instrukcjach iteracyjnych,
powoduje
przejście do następnej
iteracji
Stosowana wewnątrz pętli
Stosowana wewnątrz pętli
for, while, do … while
for, while, do … while
.
.
Powoduje zaniechanie realizacji instrukcji będących treścią
Powoduje zaniechanie realizacji instrukcji będących treścią
pętli, jednak w przeciwieństwie do instrukcji break nie
pętli, jednak w przeciwieństwie do instrukcji break nie
powoduje przerwania pętli.
powoduje przerwania pętli.
continue
continue
przerywa pojedynczy
przerywa pojedynczy
obieg pętli i zaczyna obieg następny, kontynuując pracę
obieg pętli i zaczyna obieg następny, kontynuując pracę
pętli.
pętli.
int k ;
int k ;
for (k=0 ; k<12 ; k=k+1)
for (k=0 ; k<12 ; k=k+1)
{
{
cout<< ”A” ;
cout<< ”A” ;
if (k>1) continue ;
if (k>1) continue ;
cout<< ”b”<<endl ;
cout<< ”b”<<endl ;
Ab
Ab
Ab
Ab
AAAAAAAAAA
AAAAAAAAAA
Program wyznaczania iloczynu liczb całkowitych tylko
różnych od zera
znajdujących w ciągu liczb o określonej długości
#include <iostream.h>
main()
{
int liczba, iloczyn=1, dlugosc, i;
cout<<”Podaj dlugosc ciagu liczb”<<endl;
cin>>dlugosc;
cout<<”Podaj liczby”<<endl;
for (i=1; i<=dlugosc; i++)
{
cin>>liczba;
if (liczba==0)
{
cout<<”Przejdz do kolejnej liczby ciagu”;
continue;
}
iloczyn*=liczba;
}
cout<<”Iloczyn liczb różnych od zera wynosi:”<<iloczyn;
}
Instrukcja return
„
zwróć wartość
i powróć”
return
wyrażenie;
return 0;
return wynik;
return
(x*x-4);
Napotkanie instrukcji powoduje
zakończenie
wykonywania funkcji
Jeśli zwraca ona wartość, wykonanie
instrukcji spowoduje zwrócenie wartości
funkcji
w miejsce jej wywołania – podanie
nazwy z
argumentami (definiowanie
funkcji własnych)
Instrukcja skoku goto
„skocz”
goto
etykieta;
Umożliwia przekazanie sterowania do określonego
miejsca
wewnątrz aktualnie wykonywanej funkcji
(zasada) programu.
Etykieta określa miejsce w programie, do którego
ma nastąpić skok.
goto etykieta1;
...
etykieta1:
{
instrukcje
}
Tę instrukcję podobno można zawsze ominąć
Tę instrukcję podobno można zawsze ominąć
NIE NALEŻY NADUŻYWAĆ MNIEJSZA CZYTELNOŚĆ
PROGRAMU
W kilku pętlach zagnieżdżonych jedna w drugiej przerywa
W kilku pętlach zagnieżdżonych jedna w drugiej przerywa
działanie tylko tej pętli bezpośrednio, w której jest zapisana.
działanie tylko tej pętli bezpośrednio, w której jest zapisana.
Przerwanie z przejściem jeden poziom wyżej.
Przerwanie z przejściem jeden poziom wyżej.
goto
goto
etykieta
etykieta
;
;
To miejsce (etykieta) jest nazwą po której należy umieścić „
To miejsce (etykieta) jest nazwą po której należy umieścić „
:
:
”.
”.
To miejsce nie jest dowolne w programie – musi leżeć w
To miejsce nie jest dowolne w programie – musi leżeć w
obowiązującym zakresie ważności. Bywa stosowana do
obowiązującym zakresie ważności. Bywa stosowana do
wyskoczenia z obszaru programu
wyskoczenia z obszaru programu
z wieloma pętlami zagnieżdżonymi. Jednak tylko w ramach tego
z wieloma pętlami zagnieżdżonymi. Jednak tylko w ramach tego
bloku programu , w którym znana jest etykieta
bloku programu , w którym znana jest etykieta
cout<<”cos piszemy \n” ;
cout<<”cos piszemy \n” ;
goto
goto
aaa
aaa
;
;
cout<<”tego nie piszemy” ;
cout<<”tego nie piszemy” ;
aaa
aaa
:
:
cout<<”piszemy”
cout<<”piszemy”
cos piszemy
cos piszemy
piszemy
piszemy
Program wyznaczenia iloczynu ciągu liczb całkowitych o
określonej długości różnych od zera
#include <iostream.h>
#include<conio.c>
main()
{
int liczba, iloczyn=1, dlugosc, i;
cout<<"Podaj dlugosc ciagu liczb"<<endl;
cin>>dlugosc;
cout<<"Podaj liczby"<<endl;
for (i=1; i<=dlugosc; i++)
{
cin>>liczba;
if (liczba==0)
goto E1;
iloczyn*=liczba;
}
cout<<"Iloczyn liczb wynosi:"<<iloczyn;
E1:
cout<<"Blad danych";
getch();
}
WSKAZÓWKI SKŁADNIOWE
celem uniknięcia błędów i zwiększenia
przejrzystości programów:
1. Po słowach kluczowych robimy odstęp
2. Instrukcję pustą zapisujemy zawsze w
oddzielnym wierszu
3. Stosujemy wcięcia tekstu
4. Ustawiamy edytor (czcionka, wygląd, kolor)
5. Dwie szkoły pisania nawiasów klamrowych
do grupowania instrukcji:
while (n<10) {
while (n<10)
...
{
}
...
}
#include <stdio.h>
standard input/output
funkcje realizujące operacje we/wy (podejście
proceduralne typowe dla języka C)
printf ( );
scanf ( );
#include <iostream.h>
Input/output stream – strumień we/wy
funkcje umożliwiające sterowanie strumieniami
we/wy (podejście obiektowe typowe dla języka C++)
cout<<
s
;
cin>>
a
;
niektóre
Biblioteki
standardowe
#include <conio.h>
#include<conio.c>
funkcje
umożliwiające zarządzanie ekranem w trybie
tekstowym
clrscr();
getch();
textcolor(n); gdzie n – wartość całkowita 0-15
niektóre
Biblioteki
standardowe
#include <iomanip.h>
funkcje
umożliwiające dodatkowe sterowanie
strumieniami we/wy w C++
Manipulatory, które mają argumenty. Aby określić na ilu znakach ma być wypisana
jakaś dana trzeba podać tę liczbę znaków – to jest ten argument. Korzystanie z
manipulatorów predefiniowanych, posiadających jakieś parametry, trzeba umieścić
DYREKTYWĘ; manipulatory:
setw(int)
setfill(int)
setprecision(int)
setbase(int)
Ustaw szerokość
jakimi znakami
setbase(10)
width
dopełnić liczby,
setbase(16)
Liczba dwucyfrowa
które wypisujemy
setbase(8)
wypisana za pomocą
za pomocą większej
setbase(0)
10 znaków, 8 to
liczby znaków niż
cin – 0x…-
heksadecymalny
wypełnienie
za lub
potrzeba
0…-
oktalny
przed liczbą
cout – domyślny –
dziesiątk.
dec
oct
hex
manipulatory bezargumentowe – ustaw pole basefield na
konwersję
↑
niektóre
Biblioteki
standardowe
#include <math.h>
funkcje umożliwiające obliczenia
w zbiorze liczb rzeczywistych
pow(x,y)
log(x)
log10(x)
exp(x)
sin(x)
cos(x)
tan(x)
floor(x) ceil(x)
#include <complex.h>
funkcje
umożliwiające obliczenia w zbiorze liczb
zespolonych
#include <ctype.h>
funkcje
umożliwiające klasyfikacje danych całkowitych
tolower(z);
toupper(z);
#include <string.h>
funkcje
umożliwiające operacje na łańcuchach (tablicach
znaków)
strlen (z); - długość łańcucha
strcpy (z1,z2); kopiowanie łańcucha
niektóre
Biblioteki
standardowe
#include <graphics.h>
funkcje
umożliwiające zarządzanie ekranem w trybie
graficznym
setbkcolor(int color);
–
ustala kolor tła obrazu
setbkcolor(1);
setcolor(int color);
–
ustala kolor rysowania
setcolor(60);
rectangle(int left, int top, int right, int bottom);
–
funkcja
rysuje prostokąt rozpięty między punktami (left,top) i (right,bottom)
używając aktualnego koloru, rodzaju i grubości linii)
rectangle(4,5,34,56);
bar(int left, int top, int right, int bottom);
–
funkcja wypełnia
prostokątny obszar rozpięty między punktami (left,top) i (right,bottom)
używając aktualnego koloru i wzorca)
bar(45,36,48,58);
niektóre
Biblioteki
standardowe