Министерство образования Республики Беларусь
Учреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Институт информационных технологий
Специальность Программное обеспечение информационных технологий
КОНТРОЛЬНАЯ РАБОТА
По курсу Основы алгоритмизации и программирования
Вариант № 15
Студент-заочник 1 курса
Группы № 781074
ФИО Красносельская Полина Юрьевна
Адрес Могилевская обл., г. Бобруйск, ул. Урицкого, 71/30
Тел. +375259550391
Минск, 2017
Задание 1. Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
. |
При x = 2.444, y = 0.86910-2, z = –0.13103 h = –0.49871. |
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
Int _tmain(int argc, _tchar* argv[])
{
double h, x, y, z;
cout<<"x=";
cin>>x;
cout<<"y=";
cin>>y;
cout<<"z=";
cin>>z;
h=((pow(x,y+1)+exp(y-1))/(1+x*abs(y-tan(z))))*(1+abs(y-x))+pow(abs(y-x),2)/2-pow(abs(y-x),3)/3;
cout<<"h="<<h<<endl;
system("pause");
}
Задание 2. Составить программу для вычисления значения rez в зависимости от поставленного условия.
Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен. Обратите внимание, что возможен случай, при котором исходные данные не будут подходить ни для одного из предложенных условий.
rez =
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
Int _tmain(int argc, _tchar* argv[])
{
setlocale(LC_ALL,"RUS");
double rez, a, b;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
if (a*b>0.5)
{
rez=exp(-(abs(a)+abs(b))/2)*(1/tan(a));
cout<<"Первая ветвь"<<endl;
cout<<"rez="<<rez<<endl;
}
else if (a*b>0.4 && a*b<=0.5)
{
rez=abs(a+pow(b,2))*(1/tan(b));
cout<<"Вторая ветвь"<<endl;
cout<<"rez="<<rez<<endl;
}
else
cout<<"Исходные данные не подходят для выполнения предложенных условий"<<endl;
system("pause");
}
Задание 3. Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.
, .
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
Int _tmain(int argc, _tchar* argv[])
{
setlocale(LC_ALL,"RUS");
double y, s, raz, x, a, b, h, n, k;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
cout<<"h=";
cin>>h;
cout<<"n=";
cin>>n;
for (x=a; x<=b; x=x+h)
{
y=0;
s=0;
y=-log(sqrt(1+pow(x,2)))+x*atan(x);
for (k=1; k<=n; k++)
s=s+pow(-1,k+1)*pow(x,2*k)/(2*k*(2*k-1));
raz=abs(y-s);
cout<<fixed;
cout.precision(5);
cout<<"y="<<y<<"\t s="<<s<<"\t |y-s|="<<raz<<endl;;
}
system("pause");
}
Задание 4. В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить:
Сумму положительных элементов массива, расположенных до максимального элемента.
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
Int _tmain(int argc, _tchar* argv[])
{
setlocale(LC_ALL,"RUS");
int a[20], i, n, s=0, max=0, i_max;
cout<<"Введите размер массива ";
cin>>n;
for (i=1; i<=n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
for (i=1; i<=n; i++)
if (a[i]>max)
{
max=a[i];
i_max=i;
}
for (i=1; i<i_max; i++)
if (a[i]>0)
s=s+a[i];
cout<<"Сумма положительных элементов массива, расположенных до максимального элемента, равна"<<s<<endl;
system("pause");
}
Задание 5. В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.
Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных.
Найти максимальный элемент среди лежащих ниже главной диагонали.
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int max_ngd (int n, int m, int **a)
{
int i, j, max=0;
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
if (i>j && a[i][j]>max)
max=a[i][j];
}
return max;
}