C++ Wykład II 2004 2005

background image

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),

background image

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

background image

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;
}

}

background image

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.

background image

AJ

AJ

S

S

warune

warune

k

k

Instrukcja

Instrukcja

NIE

NIE

TAK

TAK

Instrukcja warunkowa

niepełna

if

if

„jeżeli”

„jeżeli”

background image

AJ

AJ

S

S

if (w>0)
{
cout<<”sukces”<
<endl;
}

Słowo

kluczowe

„if”

Warunek podlegający
sprawdzaniu

Instrukcja
wykonywana po
spełnieniu warunku

background image

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”

background image

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

background image

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

background image

AJ

AJ

S

S

OPERATORY LOGICZNE

OPERATO

R

ZNACZENIE

!

Negacja

&&

Koniunkcja

||

Alternatywa

background image

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

background image

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

background image

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.”

background image

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

background image

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.

background image

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

background image

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

background image

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

background image

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);
}

background image

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;
}

background image

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) .

background image

AJ

AJ

S

S

Instrukcja iteracyjna (pętla)

while

„dopóki”

N

T

warun

warun

ek

ek

Instrukcja

wewnętrzna

background image

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

background image

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);
}

background image

AJ

AJ

S

S

 

while (liczba!=0)
{

suma+=liczba;

iloczyn*=liczba;

cin>>liczba;
}

suma=suma+liczba;

iloczyn=iloczyn*liczba;

background image

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).

background image

AJ

AJ

S

S

Instrukcja iteracyjna (pętla)

do while

„wykonuj

dopóki”

T

N

warune

warune

k

k

Instrukcja wewnętrzna

background image

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ą

background image

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);

}

background image

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

background image

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

background image

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

background image

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);

}

background image

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

*

*

* *

* *

* * *

* * *

* * * *

* * * *

* * * * *

* * * * *

background image

AJ

AJ

S

S

Instrukcja

break

„przerwij”

break;

Powoduje opuszczenie aktualnego
poziomu

pętli

lub

instrukcji

wyboru.
Dopuszczalne zastosowanie tylko w
tych instrukcjach.

background image

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;

}

background image

AJ

AJ

S

S

Instrukcja

continue

„kontynuuj”

continue;

Dopuszczalne zastosowanie tylko w
instrukcjach iteracyjnych, powoduje
przejście do następnej iteracji.

background image

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);

}

background image

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.

background image

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

background image

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;
}

background image

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)

...

{

}

...
}

background image

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

background image

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

background image

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

background image

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

background image

AJ

AJ

S

S

#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


Document Outline


Wyszukiwarka

Podobne podstrony:
C++ Wyklad II 2004 2005
c++ wykłady, C++ Wykład IV 2004 2005
c++ wykłady, C++ Wykład III 2004 2005
C Wykład VI 2004 2005
II KOLOKWIUM z patofizjo, II KOLOKWIUM 2004/2005
Pytania biochemia 2004-2005, Materiały Farmacja II rok
mat 2004 2005 ii

więcej podobnych podstron