Примеры выполнения заданий a и b (Задания для самостоятельного выполнения)
Описание файла
Файл "Примеры выполнения заданий a и b" внутри архива находится в папке "Задания для самостоятельного выполнения". Документ из архива "Задания для самостоятельного выполнения", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Примеры выполнения заданий a и b"
Текст из документа "Примеры выполнения заданий a и b"
Написать программу печати таблицы значений функции
для аргумента, изменяющегося в заданных пределах с заданным шагом. Если t > 100, должны выводиться целые значения функции.
В приведенном ниже варианте используется цикл while:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
double Xn, Xk, dX, t, y;
printf("Enter Xn, Xk, dX, t \n");
scanf("%lf%lf%lf%lf",&Xn, &Xk, &dX, &t);
printf("-------------------------------\n");
printf("| X | Y |\n");
printf("------------------------------- \n");
double x = Xn; // Начальные установки
while (x <= Xk){
if ( x < 0 ) y = t;
if ( x >= 0 && x < 10) y = t * x;
if ( x >= 10 ) y = 2 * t;
if (t > 100) printf("|%9.2lf |%9d |\n", x, (int)y);
else printf("|%9.2lf |%9.2lf |\n", x, y);
x += dX; // Модификация параметра цикла
}
printf("------------------------------- \n");
system("PAUSE");
return 0;
}
Та же программа с использованием оператора for:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
double Xn, Xk, dX, t, y;
printf("Enter Xn, Xk, dX, t \n");
scanf("%lf%lf%lf%lf",&Xn, &Xk, &dX, &t);
printf("-------------------------------\n");
printf("| X | Y |\n");
printf("------------------------------- \n");
for ( double x = Xn; x <= Xk; x += dX){
if ( x < 0 ) y = t;
if ( x >= 0 && x < 10) y = t * x;
if ( x >= 10 ) y = 2 * t;
if (t > 100) printf("|%9.2lf |%9d |\n", x, (int)y);
else printf("|%9.2lf |%9.2lf |\n", x, y);
}
printf("------------------------------- \n");
system("PAUSE");
return 0;
}
Написать программу вычисления значения функции Ch х (гиперболический косинус) с помощью бесконечного ряда Тейлора с точностью е по формуле:
Этот ряд сходится при | х | < оо. Для достижения заданной точности требуется суммировать члены ряда, абсолютная величина которых больше е. Для сходящегося ряда модуль члена ряда Сп при увеличении n стремится к нулю. При некотором n неравенство |Cn|> перестает выполняться, и вычисления прекращаются.
Для уменьшения количества выполняемых действий следует воспользоваться рекуррентной формулой получения последующего члена ряда через предыдущий Сn+1 = Сn Т, где Т — некоторый множитель. Подставив в эту формулу Сn и Сn+1, получим выражение для вычисления Т.
Ниже приведен текст программы с комментариями. Обратите внимание на заголовок цикла: в нем, кроме части начальных установок, заданы условие выхода из цикла и модификация параметра цикла, то есть в данной программе все составные части цикла присутствуют в явном виде.
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
int main(){
const int MaxIter = 500; /* максимально допустимое количество итераций */
int n;
double x, eps;
cout << "\nВведите аргумент и точность: ";
cin >> x >> eps;
bool done = true; // признак достижения точности
double ch = 1, y = ch; // первый член ряда и нач. значение суммы
for (n = 0; fabs(ch) > eps; n++) {
ch *= x * x /((2 * n + 1)*(2 * n + 2)); // очередной член ряда
y += ch; // добавление члена ряда к сумме
if (n > MaxIter){
cout << "\nРяд расходится!";
done = false; break;}
}
if (done){
cout << "\nЗначение функции: " << y << " для x = " << x << endl;
cout << "вычислено после " << n << " итераций " << endl;
}
system("PAUSE");
return 0;
}