Читайте также: |
|
Институт информационных технологий
Специальность ПЭ
КОНТРОЛЬНАЯ РАБОТА
По курсу Основы алгоритмизации и программирования
Вариант №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);
int main()
{
int a[100], n;
cout <<"Vvedite razmer massiva: ";
cin >> n;
for(int i =0; i<n; i++)
{
cout <<"Vvedite a["<<i+1<<"] element: ";
cin >> a[i];
}
for(int i =0; i<n; i++)
{
cout << a[i] << setw(5);
}
cout <<endl<<Proizvedenie(a, FindMin(a, n), n)<<endl;
system("pause");
return 0; }
int FindMin(int massiv[], int razmer)
{
int index = 0, minElement = massiv[0];
for (int i = 1; i < razmer; i++)
{
if (minElement > massiv[i])
{
minElement = massiv[i];
index = i;
}
}
return index;
}
int Proizvedenie(int massiv[], int index, int razmer)
{
int result = 1;
for (int i = index + 1; i < razmer; i++)
{
result *= abs(massiv[i]);
}
return result;
}
Результат выполнения программы
Задание 5
Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат. Предусмотреть в программе использование функции пользователя.
Определить произведение кратных трем элементов матрицы, располо-
женных выше ее главной диагонали, включая саму диагональ.
Код программы
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <iomanip>
using namespace std;
double FindProizv(double **, int, int);
int main()
{
int n, m;
cout <<"Vvedite kol-vo strok massiva: ";
cin >> n;
cout <<"Vvedite kol-vo stolbcov massiva: ";
cin >> m;
double **a = new double*[n];
for(int i = 0; i < n; i++)
{
a[i] = new double[m];
for (int j = 0; j < m; j++)
{
cout <<"Vvedite a["<<i+1<<", "<<j+1<<"] element: ";
cin >> a[i][j];
}
}
for(int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << setw(5) << a[i][j];
}
cout << endl;
}
cout <<FindProizv(a, n, m)<<endl;
for (int i = 0; i < n; i++)
{
delete [] a[i];
}
delete [] a;
system("pause");
return 0;
}
double FindProizv(double* massiv[], int n, int m)
{
double result = 1;
for (int i = 0; i < n; i++)
{
for (int j = i; j < m; j++)
{
if (abs((int)(massiv[i][j])) % 3 == 0)
result *= massiv[i][j];
}
}
return result;
}
Результат выполнения программы
Дата добавления: 2015-07-08; просмотров: 109 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Государственный механизм фашистской диктатуры | | | Общие организационно-методические указания. |