Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы / Laba_varik14_6

.docx
Скачиваний:
9
Добавлен:
10.06.2023
Размер:
110.09 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ

КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра «Информатика»

Лабораторная работа № 6

«Программная реализация алгоритмов решения сложных задач»

По теме

«Функции VC++ и консольные проекты Visual Studio»

по дисциплине

«Информатика»

Выполнил: студент гр.

Вариант 14

Проверил:

Москва, 2021 г.

Содержани

КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ 1

Кафедра «Информатика» 1

1. Общее задание на разработку программного проекта 3

2. Индивидуальное задание на разработку программного проекта 3

3. Формализация задания 3

1. Разработка алгоритмов решения задачи 3

2. Разработка программного проекта 8

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

4. Доказательство правильности результатов выполнения проекта 9

5. Выводы 9

6. Список используемой литературы 9

1. Текст указаний к лабораторной работе №6 «Программная реализация алгоритмов решения сложных задач» 10

1. Общее задание на разработку программного проекта 3

2. Индивидуальное задание на разработку программного проекта 3

3. Формализация задания 3

4. Разработка алгоритмов решения задачи 3

5. Разработка программного проекта 6

6. Исходные данные для тестирования проекта 9

7. Результаты выполнения проекта 9

8. Доказательство правильности результатов выполнения проекта 10

9. Выводы 10

10. Список используемой литературы 10

  1. Общее задание на разработку программного проекта

  1. Повторить материал, изложенный в темах 2-4.

  2. Изучить материал Темы 5 «Программная реализация алгоритмов решения сложных задач».

  3. Выберите индивидуальный вариант задания.

  4. Запишите заданные или полученные в процессе формализации математические формулы на языке программирования VС++.

  5. Проанализируйте разработанные в лабораторной работе 3 функциональные алгоритмы на различных этапах метода пошаговой детализации и схему их иерархии. Изобразите все схемы, используя средства MS Visio.

  6. Разработайте программный код функций VC++ по алгоритмам из п. 5.

  7. Создайте консольный проект, содержащий три файла исходного кода: файл с главной функцией main, файл с функциями ввода и вывода данных и файл с функциями, решающими предписанные задачи. Обмен данными между функциями должен осуществляться возвращаемые значения, без использования глобальных переменных. Главная функция main должна содержать только операторы вызова разработанных функций.

  8. Подготовьте варианты исходных данных для тестирования проекта.

  9. Выполните проект и получите результаты.

  10. Докажите правильность результатов.

  1. Индивидуальное задание на разработку программного проекта

Вариант 14

Определите стороны треугольника, заданного величинами своих углов и радиусом описанной окружности. Применить теорему синусов:

  1. Формализация задания

В качестве вводимых параметров фиксируются 7 переменных a,b,c,A,B,W,r типа double. Дальше необходимо создать функцию для определения стороны при входных данных r и a1или b1или c1.

  1. Разработка алгоритмов решения задачи

Алгоритм проектируется методом «сверху вниз»:

На самом верхнем (первом) уровне алгоритм решения задачи укрупненно представлено в виде вызова главной процедуры с именем main (рисунок 1), где Al (процедура) вычисления значений сторон через переменные R и A,B,W.

На следующем, втором уровне, детализируется алгоритм процедуры Al путем представления его в виде последовательности 3-х следующих процедур (рисунок 2):

  • процедура ввода значения радиуса r затем процедура ввода углов a1,b1,c1;

  • процедура вычисления сторон c именем calc_al;

  • процедура вывода вычисленных значений;

Третий уровень детализации. На следующем уровне детализируется алгоритм процедуры вычисления Calc_AL (рисунок 3):

Углубляясь в процедуру Length(X), мы видим формулу, в которую подставляем переменные. (см. рис. 4)

С помощью схем, изображенных ранее, мы можем с легкостью составить схему иерархии процедур. (см. рис. 5)

  1. Разработка программного проекта

Реализуем процедуру AL сразу в главной функции main.

Для решения задачи был создан проект, с главной функцией main, создана функция Length.

Программный код проекта представлен ниже.

#include <iostream>

#include <cmath>

using namespace std;

double length(double x,double r){

const double pi = acos(-1);

double o;

o=abs(sin(x* pi / 180)*2*r);

return o;

}

void func1(double A,double B,double W,double r,double &a,double &b,double &c)

{

a=length(A,r);

b=length(B,r);

c=length(W,r);

}

int main(){

setlocale(LC_ALL, "rus");

double a,b,c,A,B,W,r;

cout << "Ввод R = ";

cin >> r;

cout << endl << "Ввод A = ";

cin >> A;

cout << endl << "Ввод B = ";

cin >> B;

W=180-A-B;

func1(A,B,W,r,a,b,c);

cout << endl << "результат a = " << a << endl;

cout << endl << "результат b = " << b << endl;

cout << endl << "результат c = " << c << endl;

system("PAUSE");

return 0;

}

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

Протестируем проект на следующих входных параметрах:

R=100 A=30 B=60 W=90.

Рисунок 1 - вывод в консоль результата выполнения проекта

  1. Доказательство правильности результатов выполнения проекта

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

  1. Выводы

  1. Проведен анализ поставленной задачи. Необходимо вычислить полярные координаты трех точек, реализовав ввод и вывод данных, алгоритмы процедур и главную функцию main в трех разных файлах.

  2. Были разработаны блок-схемы уровней детализации проекта методом «Сверху вниз», а также блок-схемы алгоритмов вычисления полярных координат.

  3. В соответствии с блок-схемами, были реализованы коды программных проектов для каждого из файлов.

  4. Для проверки правильности работы программы, были подобраны тесты, результаты которых были вычислены вручную при помощи калькулятора.

  5. Результат выполнения программы совпадал с тестовыми данными. Следовательно программа отработала корректно.

  1. Список используемой литературы

  1. Текст указаний к лабораторной работе №6 «Программная реализация алгоритмов решения сложных задач»

Соседние файлы в папке лабы