cw 4 funkcje


Programowanie proceduralne
Ćwiczenie 4
Funkcje
Aukasz Sztangret
Katedra Informatyki Stosowanej i Modelowania
Funkcje
#include
using namespace std;
int potega(int li, int st);
int main()
{
int a, b, n;
cout << "Podaj liczbe\n"; cin >> a;
cout << "Podaj potege\n"; cin >> n;
cout << "Podaj potege\n"; cin >> n;
b=potega(a,n);
cout << a << " ^ " << n << " = " << b << endl;
system("pause");
return 0;
}
int potega(int li, int st)
{
int wyn=li;
for (int i=2; i<=st; i++)
wyn*=li;
return wyn;
}
Argumenty domniemane
#include
using namespace std;
int potega(int li, int st=2);
int main()
{
int a, b, n;
int a, b, n;
cout << "Podaj liczbe\n"; cin >> a;
cout << "Podaj potege\n"; cin >> n;
b=potega(a,n);
cout << a << " ^ " << n << " = " << b << endl;
b=potega(a);
cout << a << " ^ 2 = " << b << endl;
system("pause");
return 0;
}
// definicja funkcji potega jak na poprzednim slajdzie
Zadanie 1
Napisać funkcję liczącą silnię nie
u\ywając pętli for ani while.
u\ywając pętli for ani while.
Przesyłanie argumentów przez
referencje
#include
using namespace std;
void podwoj(int a, int &c);
int main()
{
int a=1, b=10;
cout << "a = " << a << "\tb = " << b << endl;
podwoj(a,b);
cout << "a = " << a << "\tb = " << b << endl;
system("pause");
return 0;
}
void podwoj(int a, int &c)
{
cout << "\ta = " << a << "\tc = " << c << endl;
a*=2;
c*=2;
cout << "\ta = " << a << "\tc = " << c << endl;
}
Zmienne statyczne
#include
using namespace std;
void licznik();
int main()
{
for (int i=0; i<10; i++)
for (int i=0; i<10; i++)
licznik();
system("pause");
return 0;
}
void licznik()
{
static int ile=0;
ile++;
cout << ile << endl;
}
Wskazniki w argumentach funkcji
#include
using namespace std;
void podwoj(int *wsk);
int main()
{
int a;
cout << "Podaj liczbe\n";
cout << "Podaj liczbe\n";
cin >> a;
cout << "\na = " << a << endl;
podwoj(&a);
cout << "a = " << a << endl;
system("pause");
return 0;
}
void podwoj(int *wsk)
{
*wsk*=2;
}
Zwracanie wskazników przez funkcje
#include
int *podwoj(int a)
using namespace std;
{
int *w;
int *podwoj(int a);
w=&a;
int main()
*w=a*2;
{
return w;
return w;
int a, *wsk;
}
cout << "Podaj liczbe\n";
cin >> a;
wsk=podwoj(a);
cout << "\na = " << a << endl;
cout << "*wsk = " << *wsk << endl;
system("pause");
return 0;
}
Zwracanie wskazników przez funkcje
int *podwoj(int a) int *podwoj(int a)
{ {
int *w=new int; static int b=a;
*w=a*2; int *w;
*w=a*2; int *w;
return w; w=&b;
} *w=b*2;
return w;
}
Przekazywanie tablic do funkcji
void podwoj(int a[][2])
#include
{
using namespace std;
for (int i=0; i<2; i++)
{
for (int j=0; j<2; j++)
void podwoj(int a[][2]);
a[i][j]*=2;
void wypisz(int a[][2]);
}
int main()
wypisz(a);
{
{
}
}
void wypisz(int a[][2])
int tab[][2]={1,2,3,4};
{
wypisz(tab);
for (int i=0; i<2; i++)
podwoj(tab);
{
for (int j=0; j<2; j++)
wypisz(tab);
cout << a[i][j] << "\t";
system("pause");
cout << endl;
return 0;
}
}
cout << endl;
}
Zadanie 2
Napisać funkcję zwracającą ślad
macierzy, np.
ł 1 2 3 4 ł
ł 1 2 3 4 ł
ł łłł
ł łłł
ł
ł
ł śłł
5 6 7 8
ł
śłł = 1+ 6 +11+16 = 34
trł ł
ł śłł
9 10 11 12
ł
ł13 14 15 16śłł
ł
ł ł
ł łł
Odbieranie tablic od funkcji
#include
int *tworz(int a, int n)
using namespace std;
{
int *w;
int *tworz(int a, int n);
w=new int[n];
int main()
{ for (int i=0; iint a, b, n, *wsk;
*(w+i)=a+i;
cout << "Podaj poczatek i koniec\n";
cout << "Podaj poczatek i koniec\n";
return w;
cin >> a >> b;
}
n=b-a+1;
wsk=tworz(a,n);
for (int i=0; icout << *(wsk+i) << endl;
system("pause");
return 0;
}
Odbieranie tablic 2-D od funkcji
#include
int **tworz(int n)
using namespace std;
{
int **tworz(int n);
int **wsk=new int*[n];
int main()
for (int i=0; i{
wsk[i]=new int[n];
int **t, n;
cout << "Podaj rozmiar
for (int i=0; imacierzy\n";
macierzy\n";
{
cin >> n;
for (int j=0; jt=tworz(n);
wsk[i][j]=i*n+j;
for (int i=0; i{
}
for (int j=0; jreturn wsk;
cout << *(*(t+i)+j) << "\t";
}
cout << endl;
}
system("pause");
return 0;
}
Zadanie 3
Napisać funkcję zwracającą macierz
transponowaną, np.
T
1 2 3 1 4 7
ł łł ł łł
ł4 5 6śł = ł2 5 8śł
ł śł ł śł
ł śł ł śł
ł7 8 9ł ł3 6 9ł
Wskazniki do funkcji
#include int podwoj(int a)
using namespace std; {
return (a*2);
int podwoj(int a); }
int potroj(int a); int potroj(int a)
int main() {
{ return (a*3);
{ return (a*3);
int a, (*fun)(int a); }
a=10;
fun=podwoj;
cout << (*fun)(a) << endl;
fun=potroj;
cout << (*fun)(a) << endl;
system("pause");
return 0;
}
Zadanie 4
Wprowadzić z klawiatury długość odcinka, następnie w
zale\ności od wyboru policzyć: pole kwadratu, pole
koła lub pole trójkąta równobocznego (trzy ró\ne
funkcje) stosując wskazniki do funkcji, np.
Podaj dlugosc UWAGA!
3 Wywołanie funcji
1). Pole kwadratu powinno wyglądać:
2). Pole kola cin >> wybor;
3). Pole trojkata pole=(*wsk[wybor-1])(bok);
1
Pole wynosi: 9
Wskaznik do funkcji jako argument
innej funkcji
#include
using namespace std;
double dod (double a, double b){return (a+b);}
double ode (double a, double b){return (a-b);}
double mno (double a, double b){return (a*b);}
double dzi (double a, double b){return (a/b);}
void wprowadz(double (*wsk)(double, double));
int main()
{
int wybor;
double (*wsk[4])(double, double)={dod, ode, mno, dzi};
double (*wsk[4])(double, double)={dod, ode, mno, dzi};
cout << "Wybierz dzialanie\n";
cout << "1.Dodawanie\n2.Odejmowanie\n";
cout << "3.Mnozenie\n4.Dzielenie\n";
cin >> wybor;
wprowadz(*wsk[wybor-1]);
system("pause");
return 0;
}
void wprowadz(double (*wsk)(double, double))
{
double a, b;
cout << "Podaj dwie liczby\n";
cin >> a >> b;
cout << "Wynik = " << (*wsk)(a,b) << endl;
}
Co to jest a???
int *(*(*a)(int))[10];
Co to jest a???
int *(*(*a)(int))[10];
a jest wskaznikiem do
a jest wskaznikiem do
funkcji wywoływanej z parametrem typu int,
zwracającej wskaznik do
10-cio elementowej tablicy
wskazników do typu int.
Co to jest a???
int (*(*a())[10])();
Co to jest a???
int (*(*a())[10])();
a jest funkcją wywoływaną bez argumentów,
a jest funkcją wywoływaną bez argumentów,
zwracającą wskaznik do
10-cio elementowej tablicy
wskazników do
funkcji wywoływanej bez parametrów
zwracającej wartość typu int.
Co to jest a???
float (*(*a)(int))(double);
Co to jest a???
float (*(*a)(int))(double);
a jest wskaznikiem do
a jest wskaznikiem do
funkcji wywoływanej z parametrem typu int,
zwracającej wskaznik do
funkcji wywoływanej z parametrem typu double,
zwracającej wartość typu float.
Co to jest a???
double (*(*(*a)())[10])();
Co to jest a???
double (*(*(*a)())[10])();
a jest wskaznikiem do
funkcji wywoływanej bez parametrów,
zwracającej wskaznik do
10-cio elementowej tablicy
wskazników do
funkcji wywoływanych bez parametrów,
zwracających wartość typu double.
Argumenty z linii wywołania programu
#include
using namespace std;
int main(int a, char *b[])
{
cout<<"Dostalem parametrow: "<cout<<"Dostalem parametrow: "<for (int i=0; icout<system("pause");
return 0;
}
Argumenty z linii wywołania programu
#include
#include
using namespace std;
int main(int a, char *b[])
{
{
if (!(a-3))
{
cout<cout<}
system("pause");
return 0;
}
Zadanie 5
Napisać program przyjmujący z linii
wywołania programu dwie liczby oraz
znak działania (+ -) jakie ma
zostać wykonane, np.
zostać wykonane, np.
program 2 3 +
2 + 3 = 5


Wyszukiwarka

Podobne podstrony:
ćw 2 funkcje białek
2 Funkcje zmiennej zespolonej CW
ćw 3 analiza i funkcje białek
Ćw 02 Rysowanie podstawowych obiektów graficznych – funkcje paska „Rysuj”
Cw 4 Odpornosc nieswoista funkcje granulocytow wer 3 2b
Ćw 05 Funkcje paska „Warstwy”
cw 2 przekształacanie funkcji logicznych
Ćw 03?ycja rysunków – funkcje paska „Zmień”
3 Calka funkcji zmiennej zespolonej CW
Ćw 4 Kontrola funkcji granulocytow
cw poprawiające funkcje kd
Geneza i funkcjonowanie mitu arkadyjskiego
Fundacje i Stowarzyszenia zasady funkcjonowania i opodatkowania ebook
integracja funkcji
FUNKCJA CHŁODZENIE SILNIKA (FRIC) (ZESPOLONE Z KALKULATOREM
MATLAB cw Skrypty

więcej podobnych podstron