24.2.3.24011510. Napisati funkciju koja računa vrijednost funkcije f(x, n) definirane sljedećim izrazom, pri čemu
su x i n realni argumenti:
U slučaju da funkcija nije definirana, ona treba da baci izuzetak. To se može desiti u tri slučaja: ako n nije prirodan broj ili nula (tada suma nema smisla), zatim ukoliko se pod korijenom pojavinegativan broj, i konačno, ukoliko nazivnik dobije vrijednost nula. Za svaki od ova tri slučaja treba baciti različite tipove izuzetaka. Funkciju treba testirati u glavnom programu koji u beskonačnoj petlji traži da se sa tastature unose vrijednosti argumenata x i n, a koji potom
ispisuje vrijednost funkcije ili odgovarajuću poruku o greški (na osnovu bačenog izuzetka). Pri testiranju obavezno pronaći takve vrijednosti argumenata za koje će se desiti svaki od tri moguća izuzetka (nađene vrijednosti pribilježiti u svesku).
Opis rješenja:
Listing programa:
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
double suma(double x,int n){
if(n<=0)throw n;
double s(0),a;
for(int i=0;i<n+1;i++){
a=x*(x+i)-i*i*pow(-1.,i);
if(a<0)throw true;
if(a==0)throw "nije def...";
s+=(pow(x,i)/sqrt(a));
}
return s;
}
int main(){
try{
double x;
int n;
cin>>x>>n;
cout<<"\ntrazen suma je:"<<suma(x,n);
}
catch(int){
cout<<"suma nema smisla!";}
catch(bool){
cout<<"greska!nedefinisan korijen."; }
catch(const char c[]){
cout<<c;}
getch();
return 0;
}
Ispis na ekranu:
Riješeni zadaci 2 Index
|
|