Консультация № 124478
23.02.2008, 14:00
0.00 руб.
0 1 1
Добрый день уважаемые эксперты!

1. Не используя стандартные функции (за исключением абсолютной ве-личины), вычислить с точностью до eps>0:
а) y = e<sup>x</sup> = 1 + x / 1! + x<sup>2</sup> / 2! + . . . + x<sup>n</sup> / n! + . . . ;
б) y = shx = x + x<sup>3</sup> / 3! + x<sup>5</sup> / 5! + . . . + x<sup>2n+1</sup> / (2n+1)! + . . . .
Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps.

2. Дан массив данных о работниках фирмы: ФИО и дата поступления на ра-боту (месяц, год). Во второй массив записать только данные тех из них, кто на сегодняшний день проработал уже не менее 5 лет.

Обсуждение

Неизвестный
25.02.2008, 02:10
общий
это ответ
Здравствуйте, Ezhik!

Вот решение. Компилировалось в Visual Studio 9

Приложение:
//first task--------# include <iostream>using namespace std;double fact(unsigned int val){ double res = 1; for (;val >0; --val) res *= double(val); return res;}inline double abs(double val){ return val>0 ? val: -val;}double pow(double val,unsigned int pow){ double res = 1; for (;pow >0; --pow) res *= val; return res;}void main(){ double y=0,x=0,eps, to_add; unsigned int counter = 0; cout << "eps:"; cin>> eps; cout << "x:"; cin>> x; do { y += to_add = pow(x,counter)/fact(counter); ++counter; } while(abs(to_add) > abs(eps)); cout << "exp(x)=" << y << endl; y=0; counter = 1; do { y += to_add = pow(x,counter)/fact(counter); counter += 2; } while(abs(to_add) > abs(eps)); cout << "sh(x)=" << y << endl;}//second task------# include <iostream>using namespace std;# include <windows.h>struct employee{ char name[32]; struct date { unsigned int month, year; } admission_date;};# define TOTAL_EMPLOYEES 10void main(){ employee workers[TOTAL_EMPLOYEES]; int i,j; cout << "Enter information" << endl; for (i=0; i< TOTAL_EMPLOYEES; ++i) { cout << "Employee name: "; if (!cin.getline(workers[i].name,32) || strlen(workers[i].name)==0 ) break; else { cout << "Admission date" << endl << "Year:"; cin >> workers[i].admission_date.year; cout << "Month:"; cin >> workers[i].admission_date.month; cout << endl; cin.sync(); } }// date SYSTEMTIME st; GetSystemTime(&st); for (j=0; j<i; ++j) if (st.wYear - workers[j].admission_date.year > 5 || (st.wYear - workers[j].admission_date.year == 5 && st.wMonth - workers[j].admission_date.month >=0)) { cout << endl << "Employee " << j+1<< endl; cout << "Name: " << workers[j].name << endl << endl; }}
Форма ответа