Lista 7, lista7 r

background image

Informatyka (I E / I AiR) - lista zadań 7 - propozycje rozwiązań

1. Użyj rekurencji i napisz funkcję o prototypie double a(int n), która dla n<0 zwróci 0, a dla

n≥0 obliczy n-ty wyraz ciągu a zdefiniowanego następująco:

a

0

=

1

a

n

=

a

n−1

n

2

#include <iostream>
using namespace std;
double a(int n)
{
if (n<0) return 0;
if (n==0) return 1;
return a(n-1)+n*n;
}
//program wypisuje 30 pierwszych wyrazów ciągu
int main()
{
for (int i=0;i<30;i++)
cout<<"a["<<i<<"]="<<a(i)<<endl;
system("pause");
return 0;
}

2. Użyj rekurencji i napisz funkcję o prototypie double b(int n), która dla n<0 zwróci 0, a dla

n≥0 obliczy n-ty wyraz ciągu b zdefiniowanego następująco:

b

0

=

1

b

n

=

b

n−1



100−

n

#include <iostream>
#include <cmath>
using namespace std;
double b(int n)
{
if (n<0) return 0;
if (n==0) return 1;
return b(n-1)+100-sqrt(n);
}
//program wypisuje 30 pierwszych wyrazów ciągu
int main()
{
for (int i=0;i<30;i++)
cout<<"b["<<i<<"]="<<b(i)<<endl;
system("pause");
return 0;
}

3. Dla funkcji z zadań 1 i 2 napisz program, który wypisze wszystkie wyrazy ciągu (a

n

) dla

0<n<1000 które są mniejsze od odpowiedniego wyrazu ciągu (b

n

).

background image

#include <iostream>
#include <cmath>
using namespace std;
double a(int n)
{
if (n<0) return 0;
if (n==0) return 1;
return a(n-1)+n*n;
}
double b(int n)
{
if (n<0) return 0;
if (n==0) return 1;
return b(n-1)+100-sqrt(n);
}

int main()
{
for (int i=1;i<1000;i++)
if (a(i)<b(i))
cout<<"a["<<i<<"]="<<a(i)<<endl;
system("pause");
return 0;
}

4. Użyj rekurencji i napisz funkcję o prototypie double c(int n, double k), która dla n<0 zwróci 0, a
dla n≥0 obliczy n-ty wyraz ciągu c zdefiniowanego następująco:

c

0

=

1

c

n

=

c

n−1

k

2

2⋅c

n−2

, dla n parzystych

c

n

=

c

n−1

n⋅∣k, dla n nieparzystych

Napisz odpowiedni program i wypisz pierwszych 10 wyrazów tego ciągu.

#include <iostream>
#include <cmath>
using namespace std;
double c(int n,double k)
{
if (n<0) return 0;
if (n==0) return 1;
if (n%2==0)
return c(n-1,k)+k*k-2*c(n-2,k);
else return c(n-1,k)-sqrt(n*abs(k));
}
//zakładamy k=1.5 - dla przykładu
const double k=1.5;
int main()
{
for (int i=0;i<10;i++)
cout<<"c["<<i<<"]="<<c(i,k)<<endl;
system("pause");
return 0;
}


Wyszukiwarka

Podobne podstrony:
Lista 7, lista7
Lista 2012 2
Polecenia lista 5
macierze i wyznaczniki lista nr Nieznany
Lista 14
Analiza matematyczna, lista analiza 2008 6 szeregi
Analiza III semestr lista nr 3 Nieznany (2)
lista produktow
podstawy automatyki ćwiczenia lista nr 4b
lista parafraz modu A
Lista watykańskich masonów
Lista czesci
eksploracja lab03, Lista sprawozdaniowych bazy danych
lista przed zabr id 270172 Nieznany
analiza sem 2 lista nr5 id 6134 Nieznany (2)
LISTA 14 Całki krzywoliniowe
lista 04 (2)
lista jednokierunkowa
Lista prezentacji

więcej podobnych podstron