Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная по ОАиП Скачков А.А.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.42 Mб
Скачать

Министерство образования Республики Беларусь

Учреждение образования

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»

Институт информационных технологий

Специальность ПЭ

Контрольная работа

По курсу Основы алгоритмизации и программирования

Вариант №11

Студент-заочник 1 курса

Группы №381972

ФИО Скачков Андрей

Александрович

Адрес г. Минск пр-кт

Партизанский д. 149, кв. 71

Тел. +375 29 313 68 41

Минск, 2013

Задание 1

Составить согласно индивидуальному варианту блок-схему алгоритма и программу вычисления значение выражения при заданных исходных данных. Сравнить полученное значение с указанным правильным результатом.

Блок-схема алгоритма

Код программы

#include "stdafx.h"

#include <math.h>

#include <iostream>

using namespace std;

int main()

{

double x, y, z, s;

cout << "Vvedite x: ";

cin >> x;

cout << "Vvedite y: ";

cin >> y;

cout << "Vvedite z: ";

cin >> z;

s = pow(cos(y), 3)/(exp(fabs(x-y))+x/2)*fabs(x-y);

s = s * (1 + pow(sin(z), 2)/sqrt(x+y));

s = s + pow(y, pow(fabs(x), 1/3.));

cout << "Result s = " << s << endl;

system("pause");

return 0;

}

Результат работы программы

Задание 2

Составить согласно индивидуальному варианту блок-схему алгоритма и программу вычисления выражения. Предусмотреть вывод информации о выбранной ветви вычислений.

Блок-схема алгоритма

Код программы

#include "stdafx.h"

#include <math.h>

#include <iostream>

using namespace std;

Int main()

{

double x, y, s;

cout << "Vvedite x: ";

cin >> x;

cout << "Vvedite y: ";

cin >> y;

if (x*y > 0)

{

s = tan(x)+x/pow(y, 1/3.);

cout << "Vetv 1"<<endl;

}

else if (x*y < 0)

{

s = log(fabs(pow(x,2)*y));

cout << "Vetv 2"<<endl;

}

else

{

s = pow(x, 3) + pow(sin(y), 2);

cout << "Vetv 3"<<endl;

}

cout << "Result s = " << s << endl;

system("pause");

return 0;

}

Результат выполнения работы

Задание 3

Составить согласно индивидуальному варианту блок-схему алгоритма и программу вывода на экран таблицы значений функции y(x) для x, изменяющегося от a=0,1 до b=1,2 с шагом h=0,1. Вычисление y(x) оформить в виде функции. Предусмотреть передачу параметров в функцию разными способами.

Блок-схема алгоритма

Код программы

#include "stdafx.h"

#include <math.h>

#include <iostream>

#include <iomanip>

using namespace std;

double Summa(double, double);

void Summa(double *, double *);

void Summa(double &, double &, int &);

Int main()

{

double a, b, h, y, x;

cout << "Vvedite a: ";

cin >> a;

cout << "Vvedite b: ";

cin >> b;

cout << "Vvedite h: ";

cin >> h;

x = a;

cout <<setw(10)<<"Value"<<setw(19)<<"Pointer"<<setw(19)<<"Reference\n";

do

{

cout<<setw(5)<<x<<setw(12)<<Summa(x, y);

Summa(&x, &y);

cout<<setw(5)<<x<<setw(12)<<y;

int n = 1;

Summa(x, y, n);

cout<<setw(5)<<x<<setw(12)<<y<<endl;

x += h;

}

while (x < (b + h/2));

cout<<endl;

system("pause");

return 0;

}

double Summa(double x, double y)

{

y = 0;

for (int n = 1; n <= 20; n++)

{

y += n*pow(x,n-1)/sin(2*n+x);

}

return y;

}

void Summa(double *x, double *y)

{

*y = 0;

for (int n = 1; n <= 20; n++)

{

*y += n*pow(*x,n-1)/sin(2*n+(*x));

}

}

void Summa(double &x, double &y, int &n)

{

y = 0;

for (; n <= 20; n++)

{

y += n*pow(x,n-1)/sin(2*n+x);

}

}

Результат работы программы

Задание 4

Ввести одномерный статический массив из k чисел. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат. Предусмотреть использование функции пользователя.

Найти произведение модулей элементов массива, расположенных по-

сле минимального элемента.

Блок-схема алгоритма

Код программы

#include "stdafx.h"

#include <math.h>

#include <iostream>

#include <iomanip>

using namespace std;

int FindMin(int [], int);

int Proizvedenie(int [], int, int);