
Содержание
Задание №1. Линейный вычислительный процесс………………………стр. 3
Задание №2. Реализация разветвляющихся алгоритмов………………..стр. 4
Задание №3. Реализация циклических алгоритмов……………………...стр. 6
Задание №4. Обработка одномерных массивов………………………....стр. 8
Задание №5. Обработка двухмерных динамических массивов. Функции пользователя……………………………………………………………......стр. 9
Дополнительное задание №6. Обработка структур с использованием файлов……………………………………………………………………...стр. 12
Задание №1
Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях:
При x = 14.26, y = -1.22, z = 3.5x10-2 -> t = 0.564849 (-0.566691)
Листинг 1.1
#include <iostream.h>
#include <conio.h>
#include <math.h>
int main(){
const float PI = 3.1415926;
double x, y, z, a, b, c, res;
// Ввод исходных данных
cout << "X =\t";
cin >> x; endl;
cout << "Y =\t";
cin >> y; endl;
cout << "Z = \t";
cin >> z; endl;
// Вычисление формулы
a = 2 * cos(x - PI/6);
b = 0.5 + pow(sin(y), 2);
c = 1 + pow(z, 2)/(3 - pow(z, 2)/5);
res = a * c / b;
// Вывод результата
cout << "\nX = " << x << "\nY = " << y
<< "\nZ = " << z << "\nResult = " << res << endl;
cout << "Press any key..." << endl;
getch();
return 0;
}
Результат выполнения программы.
Задание №2
Составить программу для вычисления значения rez в зависимости от поставленного условия.
Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен. Обратите внимание, что возможен случай, при котором исходные данные не будут подходить ни для одного из предложенных условий.
Листинг 2.1
#include <iostream.h>
#include <conio.h>
#include <math.h>
Int main(){
double k, m, aux, rez;
// Ввод исходных данных
cout << "k =\t";
cin >> k;
cout << "m =\t";
cin >> m;
// Выполнение условия
aux = 5*k+3*m*log(fabs(k));
if (k >= 0 && k<m){
rez = pow(sin(aux), 2);
cout << "\n0 <= k < m" << endl;
cout << "\tsin2(f(k,m)) = " << rez << endl;
}
if (k >= m/2){
rez = pow(cos(aux), 2);
cout << "\nk >= m/2" << endl;
cout << "\tcos2(f(k,m)) = " << rez << endl;
}
else { // k < (m/2) && k<0
if (k < 0)
cout << "\nNetu v uslovii..." << endl;
}
cout << "\nPress any key..." << endl;
getch();
return 0;
}
Результат выполнения программы.
Задание №3
Для каждого х, изменяющегося от а до b, с шагом h, найти значения функции У(х), суммы S(x) и |Y(x) – S(x)| и вывести в виде таблицы. Значения а, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и У для заданного аргумента х (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Работу программы проверить для a = 0.1; b = 1.0; h = 0.1; значение параметра n выбрать в зависимости от задания.
Преобразуем данную последовательность S к рекуррентному виду:
Листинг 3.1
#include <iostream.h>
#include <conio.h>
#include <math.h>