Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. I. Назначение и принцип работы зубофрезерных станков, работающих червячной фрезой
  2. I. Подготовительная работа.
  3. I. Подготовительная работа.
  4. I. Подготовительная работа.
  5. I. Практическая работа
  6. II. Как работает модем.
  7. III блок. Работа КПЛ в составе Интергруппы.

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

 

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

 

КОНТРОЛЬНАЯ РАБОТА

 

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

 

Вариант №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 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Государственный механизм фашистской диктатуры| Общие организационно-методические указания.

mybiblioteka.su - 2015-2024 год. (0.026 сек.)