PROGRAMOWANIE I JZYK C++ / ANALIZA 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;
}
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;
}
Cześć 2: Przekazywanie parametrów do funkcji przez wskaznik.
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;
}
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;
}
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];
}
Cześć 4: Przekazywanie parametrów do funkcji przez wartość, wskaznik 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;
}
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 AnalizaProgCPP Wyklad Analizawyklad z analizy matematycznej dla studentow na kierunku automatyka i robotyka aghBUD WODNE Wykład 6 analiza mechaniczna filtracja MESanaliza finansowa wyklad Analiza wstepna i poziomaSopot stat 11 wyklad 9 Analiza kowariancji i ogolny model liniowyProgCPP Wyklad Teoria 2Wyklad AnalizaMat 11 08CPP WYKLADY ANALIZA 2Wykład 1 3 Analiza finansowaPZN wyklad 7 analiz ekon finansWykład 4 Analiza ekonomicznaWykłady z analizy matematycznej dla I roku Elektroniki iwięcej podobnych podstron