ProgCPP Wyklad Analiza 03

background image

P

ROGRAMOWANIE I JĘZYK

C++

/

A

NALIZA PROGRAMÓW NR

3

Temat: Funkcje języka C++

Zadanie
Wykonać analizę poniższych programów. Nie używając komputera obliczyć wartości zmiennych określonych
jako OUTPUT przy danych wejściowych INPUT oraz wypisać kolejne wartości drukowane przez program
w konsoli. Sprawdzić wyniki uruchamiając odpowiedni kod programu na komputerze.

Cze
ść 1: Przekazywanie parametrów do funkcji przez wartość.

1.

// INPUT : -
// OUTPUT : liczba

int

WybierzLiczbe (

int

a,

int

b,

int

c);

int

_tmain(

int

argc, _TCHAR* argv[])

{

int

p = 10, q = 3, r = 16;

int

liczba = WybierzLiczbe(p,q,r);


cout <<

"Dane liczby to ..."

<< endl;

cout <<

"p = "

<< p << endl;

cout <<

"q = "

<< q << endl;

cout <<

"r = "

<< r << endl << endl;

cout <<

"Wybrana liczba ma wartosc = "

<< liczba << endl;


_getch();

return

0;

}

int

WybierzLiczbe (

int

a,

int

b,

int

c)

{

int

w;

if

(a > b)

w = a;

else

w = b;

if

(c > w)

w = c;

return

w;

}

background image

2.

// INPUT : -
// OUTPUT : liczba

int

Funkcja1 (

int

x,

int

y);

int

_tmain(

int

argc, _TCHAR* argv[])

{

int

z = 3, q = 12, liczba;


cout <<

"Wartosci zmiennych przed wykonaniem funkcji 'Funkcja1' ..."

<< endl;

cout <<

"z = "

<< z << endl;

cout <<

"q = "

<< q << endl;


liczba = Funkcja1(z,q);

cout <<

"Wartosci zmiennych po wykonaniu funkcji 'Funkcja1' ..."

<< endl;

cout <<

"z = "

<< z << endl;

cout <<

"q = "

<< q << endl;

cout <<

"Wybrana liczba ma wartosc = "

<< liczba << endl;


_getch();

return

0;

}

int

Funkcja1 (

int

x,

int

y)

{

int

a = 4,b = -8,u;


x = (a++) * (--b);
y = (--x) + 10;
u = x + y;

return

u;

}

background image

Cześć 2: Przekazywanie parametrów do funkcji przez wskaźnik.

1.

// INPUT : -
// OUTPUT : liczba

void

Funkcja1 (

int

x,

int

* y,

int

* u);

int

_tmain(

int

argc, _TCHAR* argv[])

{

int

z = 3, q = 12, liczba;


cout <<

"Wartosci zmiennych przed wykonaniem funkcji 'Funkcja1' ..."

<< endl;

cout <<

"z = "

<< z << endl;

cout <<

"q = "

<< q << endl;


Funkcja1(z,&q,&liczba);

cout <<

"Wartosci zmiennych po wykonaniu funkcji 'Funkcja1' ..."

<< endl;

cout <<

"z = "

<< z << endl;

cout <<

"q = "

<< q << endl;

cout <<

"Wybrana liczba ma wartosc = "

<< liczba << endl;


_getch();

return

0;

}

void

Funkcja1 (

int

x,

int

* y,

int

* u)

{

int

a = 6,b = -3;


x = (a++) * (--b);
*y = (--x) + 10;
*u = x - *y;
}

background image

2.

// INPUT : -
// OUTPUT : a[i], i = 0,1,...,5; k

int

Zliczanie (

int

n,

double

a[],

double

w);

int

_tmain(

int

argc, _TCHAR* argv[])

{

int

i,k;

double

tab[6] = {-4.5, 2.1, 6.7, 12.2, 13.8, 7.0};

double

w = 10;


cout <<

"Kolejne elementy tablicy przed wykonaniem funkcji 'Zliczanie' ...";

cout << endl;

for

(i=0; i<=5; i++)

cout <<

"tab["

<< i <<

"] = "

<< tab[i] << endl;


k = Zliczanie (6,tab,w);

cout <<

"Kolejne elementy tablicy przed wykonaniem funkcji 'Zliczanie' ...";

cout << endl;


for

(i=0; i<=5; i++)

cout <<

"tab["

<< i <<

"] = "

<< tab[i] << endl;

cout <<

"Wartosc zwrocona przez funkcje to "

<< k << endl;


_getch();

return

0;

}

int

Zliczanie (

int

n,

double

a[],

double

w)

{

int

i,s = 0;

for

(i=0; i<=n-1; i++)

{

if

(a[i] < 5)

a[i] = a[i] - w;

else

if

(a[i] > 5)

{
s = s + 1;
a[i] = a[i] + 2*w;
}
}

return

s;

}

background image

Cześć 3: Przekazywanie parametrów do funkcji przez referencję.

1.

// INPUT : -
// OUTPUT : B[i], i = 0,1,...,4; iloczyn_elem; iloczyn_elem

void

ZliczenieElementowUjemnych (

int

n,

double

* pB,

int

& liczba);

void

PrzeksztalcenieTablicy (

int

n,

double

* pB);

void

ObliczenieIloczynuLiczb (

int

n,

double

* pB,

double

& iloczyn);

int

_tmain(

int

argc, _TCHAR* argv[])

{

int

i,m,liczba_elem;

double

iloczyn_elem;

m = 5;

double

B[5] = {-1.0, -2.0, -4.0, 13.0, 2.0};


cout <<

"Kolejne elementy tablicy przed wykonaniem funkcji ..."

<< endl;

for

(i=0; i<=4; i++)

cout <<

"B["

<< i <<

"] = "

<< B[i] << endl;


ZliczenieElementowUjemnych(m,&B[0],liczba_elem);
PrzeksztalcenieTablicy(m,B);
ObliczenieIloczynuLiczb(m,B,iloczyn_elem);

cout <<

"Kolejne elementy tablicy po wykonaniu funkcji ..."

<< endl;

for

(i=0; i<=4; i++)

cout <<

"B["

<< i <<

"] = "

<< B[i] << endl;


cout <<

"Liczba elementow ujemnych = "

<< liczba_elem << endl;

cout <<

"Iloczyn elementow tablicy = "

<< iloczyn_elem << endl;

_getch();

return

0;

}

void

ZliczenieElementowUjemnych (

int

n,

double

* pB,

int

& liczba)

{

int

i;

liczba = 0;

i = 0;

do

{

if

(pB[i] < 0)

liczba = liczba + 1;

i = i + 1;
}

while

(i < n);

}

void

PrzeksztalcenieTablicy (

int

n,

double

* pB)

{

int

i = 0;

do

{

if

(pB[i] < 0)

pB[i] = -1.0 * pB[i];

else

pB[i] = pB[i] + 2.0;

i = i + 1;
}

while

(i < n);

}

void

ObliczenieIloczynuLiczb (

int

n,

double

* pB,

double

& iloczyn)

{

int

i;


iloczyn = 1.0;

for

(i=0; i<=n-1; i++)

iloczyn = iloczyn*pB[i];
}

background image

Cześć 4: Przekazywanie parametrów do funkcji przez wartość, wskaźnik lub referencję
(zadania mieszane).

1.

// INPUT : adres zmiennej a = 1000, adres zmiennej b = 2000,
// adres zmiennej c = 3000
// OUTPUT : podac wartosci, ktore wypisze program

int

Funkcja1 (

int

* x,

int

* y);

int

_tmain(

int

argc, _TCHAR* argv[])

{

int

a = 2,b = -5,c = 15;

int

* ptr1 = &a, * ptr2 = &b;


cout <<

"a = "

<< a << endl;

cout <<

"b = "

<< b << endl;

cout <<

"c = "

<< c << endl;


cout <<

"ptr1 = "

<< ptr1 << endl;

cout <<

"ptr2 = "

<< ptr2 << endl;

cout <<

"*ptr1 = "

<< *ptr1 << endl;

cout <<

"*ptr2 = "

<< *ptr2 << endl;


c = Funkcja1 (ptr1,ptr2);

cout <<

"c = "

<< c << endl;

cout <<

"*ptr1 = "

<< *ptr1 << endl;

cout <<

"*ptr2 = "

<< *ptr2 << endl;


cout <<

"a = "

<< a << endl;

cout <<

"b = "

<< b << endl;

cout <<

"c = "

<< c << endl;


_getch();

return

0;

}

int

Funkcja1 (

int

* x,

int

* y)

{

int

q = 5;


*x = (*x)++;
*y = (*y) + 10;

q = *x + *y;

return

q;

}

background image

2.

// INPUT : adres zmiennej a = 1000
// OUTPUT : podac wartosci, ktore wypisze program

void

Funkcja1 (

int

x,

int

* y,

int

& z);

int

_tmain(

int

argc, _TCHAR* argv[])

{

int

a = -3,b = 10,c = 5;

int

* ptr1 = &a;


cout <<

"a = "

<< a << endl;

cout <<

"b = "

<< b << endl;

cout <<

"c = "

<< c << endl;

cout <<

"ptr1 = "

<< ptr1 << endl;

cout <<

"*ptr1 = "

<< *ptr1 << endl;


Funkcja1 (c,&a,b);

cout <<

"a = "

<< a << endl;

cout <<

"b = "

<< b << endl;

cout <<

"c = "

<< c << endl;

cout <<

"ptr1 = "

<< ptr1 << endl;

cout <<

"*ptr1 = "

<< *ptr1 << endl;


_getch();

return

0;

}

void

Funkcja1 (

int

x,

int

* y,

int

& z)

{
x = (++x) - ((*y)--);
z = x + (*y) + 10;
}


Wyszukiwarka

Podobne podstrony:
ProgCPP Wyklad Analiza 01
ProgCPP Wyklad Analiza 02
Z Wykład 15.03.2008, Zajęcia, II semestr 2008, Analiza matematyczna
WYKŁAD 18.03.2012R, PDF i , RACHUNKOWOŚĆ I ANALIZA FINANSOWA
analiza ekonomiczna wykład 3 (23 03 2005) CNW7P7ZDIONFR4Y3KP3PAZMHQ5OQTRLYBTUHYBA
Wykład analiza instrumentalna spektrometria mas (word 03)
Z Wykład 15.03.2008, Zajęcia, II semestr 2008, Analiza matematyczna
WYKLAD ANALIZA MATEMATYCZNA
Wykład VIII 03 04 2012
MIKROBIOLOGIA JAMY USTNEJ, WYKŁAD 3, 28 03 2013
całki, szeregi zadania z kolosa wykład 21 03 2009
wyklad 2 c.d.- 05.03.2012, ALMAMER Fizjoterapia, Masaż
Wykład 3 03 2014
prawo?ministracyjne Wyklad III 8 03 2011

więcej podobnych podstron