AJ
AJ
S
S
INSTRUKCJE
Umożliwiają zapis algorytmu, służą
do sterowania przebiegiem
programu.
-warunkowe (podejmowanie decyzji)
1.
if-else
„jeżeli”,
2.
switch-case
(wybór),
AJ
AJ
S
S
-iteracyjne (pętle, obliczenia
cykliczne)
1.
for
„dla”,
2.
while
„dopóki”,
3.
do ... while
„wykonuj dopóki”
-sterujące przebiegiem programu
1.
break
„przerwij”,
2.
continue
„kontynuj”,
3.
return
„zwróć wartość i
powróć”,
4.
goto
„skocz”
INSTRUKCJE
cd
AJ
AJ
S
S
INSTRUKCJE
- 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;
}
}
AJ
AJ
S
S
Instrukcja warunkowa
Instrukcja warunkowa
if
if
„jeżeli”
„jeżeli”
if
if
(wyrażenie-warunkowe) instrukcja1 [
(wyrażenie-warunkowe) instrukcja1 [else
else
instrukcja2]
instrukcja2]
Pozwala na zbadanie warunku w
Pozwala na zbadanie warunku w
programie, a następnie na
programie, a następnie na
kontynuowanie obliczeń zależnie
kontynuowanie obliczeń zależnie
od spełnienia tego warunku.
od spełnienia tego warunku.
Komputer w ten sposób podejmuje
Komputer w ten sposób podejmuje
decyzje.
decyzje.
AJ
AJ
S
S
warune
warune
k
k
Instrukcja
Instrukcja
NIE
NIE
TAK
TAK
Instrukcja warunkowa
niepełna
if
if
„jeżeli”
„jeżeli”
AJ
AJ
S
S
if (w>0)
{
cout<<”sukces”<
<endl;
}
Słowo
kluczowe
„if”
Warunek podlegający
sprawdzaniu
Instrukcja
wykonywana po
spełnieniu warunku
AJ
AJ
S
S
warun
warun
ek
ek
Instrukcja 1
Instrukcja 1
Instrukcja 2
Instrukcja 2
NIE
NIE
TAK
TAK
Instrukcja warunkowa
pełna
if - else
„jeżeli”
AJ
AJ
S
S
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
AJ
AJ
S
S
OPERATORY RELACYJNE
OPERATO
R
ZNACZENIE
<
Mniejszy
<=
Mniejszy lub równy
>
Większy
>=
Większy lub równy
==
Równy
!=
Nierówny
AJ
AJ
S
S
OPERATORY LOGICZNE
OPERATO
R
ZNACZENIE
!
Negacja
&&
Koniunkcja
||
Alternatywa
AJ
AJ
S
S
w
w1
instrukcja11
instrukcja1
instrukcja12
instrukcja2
N
N
T
T
N
N
T
T
Instrukcja warunkowa
if -
else
zagnieżdżona
AJ
AJ
S
S
if (w>0&&k!=0)
{
if (w1>10)
{
cout<<”sukces”<<endl;
}
else
{
cout<<”moze
byc”<<endl;
}
}
else
{
cout<<”pech”<<endl;
}
Słowo
kluczowe„i
f”
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
AJ
AJ
S
S
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.”
AJ
AJ
S
S
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 rozwiązania"<<endl;
cout<<"brak rozwiązania"<<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
AJ
AJ
S
S
Instrukcja wyboru
switch
switch
(wyrażenie-sterujące)
{
case
E1:instrukcj1;
break
;
case
E2:instrukcj2;
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.
AJ
AJ
S
S
E1
:
E2
:
E3
:
default
:
wyrażenie
wyrażenie
sterujące
sterujące
(selektor)
(selektor)
Instrukcj
a1
Instrukcj
a2
Instrukcj
a3
Instrukcj
an
AJ
AJ
S
S
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
AJ
AJ
S
S
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
AJ
AJ
S
S
Wykrywanie samogłosek
#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;
default: cout<<”To nie jest
samogloska”<<endl;
}
return(0);
}
AJ
AJ
S
S
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;
default
: cout<<”To nie jest
samogloska”<<endl;
}
AJ
AJ
S
S
Instrukcja iteracyjna
(pętla)
while
„dopóki”
while
(wyrażenie-warunkowe)
instrukcja
wewnętrzna
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) .
AJ
AJ
S
S
Instrukcja iteracyjna (pętla)
while
„dopóki”
N
T
warun
warun
ek
ek
Instrukcja
wewnętrzna
AJ
AJ
S
S
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
AJ
AJ
S
S
Wyznaczanie sumy i iloczynu ciągu
liczb całkowitych zakończonego liczbą
zero
#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);
}
AJ
AJ
S
S
while (liczba!=0)
{
suma+=liczba;
iloczyn*=liczba;
cin>>liczba;
}
suma=suma+liczba;
iloczyn=iloczyn*liczba;
AJ
AJ
S
S
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).
AJ
AJ
S
S
Instrukcja iteracyjna (pętla)
do while
„wykonuj
dopóki”
T
N
warune
warune
k
k
Instrukcja wewnętrzna
AJ
AJ
S
S
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ą
AJ
AJ
S
S
Drukowanie cyfr od 0 ... 9
#include <iostream.h>
main()
{
int cyfra=0;
do
{
cout<<cyfra<<” “;
cyfra++;
}
while (cyfra<10);
return(0);
}
AJ
AJ
S
S
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
AJ
AJ
S
S
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
AJ
AJ
S
S
for (i=0; i<10; i+
+)
{
cout<<i<<endl;
}
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--
i+=1
i-=1
i+=krok
i-=krok
AJ
AJ
S
S
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;
return(0);
}
AJ
AJ
S
S
#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
*
*
* *
* *
* * *
* * *
* * * *
* * * *
* * * * *
* * * * *
AJ
AJ
S
S
Instrukcja
break
„przerwij”
break;
Powoduje opuszczenie aktualnego
poziomu
pętli
lub
instrukcji
wyboru.
Dopuszczalne zastosowanie tylko w
tych instrukcjach.
AJ
AJ
S
S
Program wyznaczenia iloczynu ciągu liczb całkowitych
o określonej długości różnych od zera.
#include <iostream.h>
main()
{
int liczba, iloczyn=1, dlugosc, i;
int poprawny=1;
cout<<”Podaj dlugosc ciagu liczb”<<endl;
cin>>dlugosc;
cout<<”Podaj liczby”<<endl;
for (i=1; i<=dlugosc; i++)
{
cin>>liczba;
if (liczba==0)
{
poprawny=0;
break;
}
iloczyn*=liczba;
}
if (poprawny)
cout<<”Iloczyn liczb wynosi:”<<iloczyn;
else
cout<<”Blad danych”;
return 0;
}
AJ
AJ
S
S
Instrukcja
continue
„kontynuuj”
continue;
Dopuszczalne zastosowanie tylko w
instrukcjach iteracyjnych, powoduje
przejście do następnej iteracji.
AJ
AJ
S
S
Program wyznaczenia 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;
return(0);
}
AJ
AJ
S
S
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.
AJ
AJ
S
S
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
}
NIE NALEŻY NADUŻYWAĆ
MNIEJSZA CZYTELNOŚĆ PROGRAMU
AJ
AJ
S
S
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();
return 0;
}
AJ
AJ
S
S
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)
...
{
}
...
}
AJ
AJ
S
S
#include <stdio.h>
funkcje realizujące
operacje we/wy (podejście proceduralne typowe dla
języka C)
printf ( );
scanf ( );
#include <iostream.h>
funkcje
umożliwiające sterowanie strumieniami we/wy
(podejście obiektowe typowe dla języka C++)
cout<<
s
;
cin>>
a
;
niektóre
Biblioteki
standardowe
AJ
AJ
S
S
#include <conio.h>
#include<conio.c>
funkcje
umożliwiające zarządzanie ekranem w trybie
tekstowym
clrscr();
getch();
textcolor(newcolor);
gotoxy(x,y);
wherex();
wherey();
niektóre
Biblioteki
standardowe
AJ
AJ
S
S
#include <iomanip.h>
funkcje
umożliwiające dodatkowe sterowanie
strumieniami we/wy w C++
setw(n)
setfill(z)
setprecision(n) setbase(n)
dec
hex
#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)
fmod(x,y)
niektóre
Biblioteki
standardowe
AJ
AJ
S
S
#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);
strcpy (z1,z2);
niektóre
Biblioteki
standardowe