Добавил:
Тот самый Малыхя на партах и на досках Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛРТП.docx
Скачиваний:
0
Добавлен:
13.03.2024
Размер:
1.83 Mб
Скачать

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

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

ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

СВЯЗИ И ИНФОРМАТИКИ» (МТУСИ)

 

 

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

 

 

 

  

Лабораторные работы

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

«Технологии программирования»

 

Выполнил: Студент группы которую ненавидит Гуриков С.Р.

Великий студент

Вариант ахуенный

Проверил: Доцент каф. «Информатика»

Гуриков С. Р.

 

 

Москва, 2023 г.

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

«Пошаговая делализация»

Вариант №18

СОДЕРЖАНИЕ

1 Индивидуальное задание 4

2 Содержимое технического задания 4

3 Схемы алгоритмов 5

4 Программный код библиотеки 9

5 Программный код событийной процедуры 9

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

​ СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 11

​ Список использованных источников 21

​ 1.Гуриков, С. Р. Основы алгоритмизации и программирования на Visual C++ / С.Р. Гуриков. — Москва : ИНФРА-М, 2022. — 515 с. 21

​ Список использованных источников 30

​ Список использованных источников 38

​ Схемы алгоритмов. 41

​ Программный код DLL-библиотеки 46

​ Список использованных источников 50

​ Список использованных источников 58

    1. Индивидуальное задание

Определить площадь каждого из 3-х секторов с радиусом R и с центральными углами

Назначение функции: Площадь сектора R с центральным углом (в градусах) считается по формуле 1.

(1)

    1. Содержимое технического задания

1. Разработать алгоритмы решения заданной задачи (количество алгоритмов равно количеству используемых пользовательских функций + алгоритм событийной). Кроме того, должна быть выполнена схема иерархии подпрограмм.

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

3. В ходе решения задачи своего варианта предусмотреть написание двух функций. Одна из них должна вызывать несколько раз функцию, назначение которой указано в задании. Для решения задачи своего варианта использовать многочисленные методматериалы, которые перечислены в пояснениях (ЭОИС).

4. Подготовить тесты для контрольного решения задачи. Показать их

использование, отобразив в отчете по заданию.

5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.

6. Выполнить отчет в соответствии с ГОСТ на схемы алгоритмов и согласно ГОСТ оформления отчетов по НИР.

    1. Схемы алгоритмов

Блок-схема функции ввода данных из TextBox показана на рисунке 1.

        1. Функция ввода данных

Схема функции вывода данных в элемент TextBox показана на рисунке 2.

        1. Схема функции вывода данных

Схема иерархии функций показана на рисунке 3.

        1. Схема иерархии функций

Схема функции, находящей площадь сектора круга показана на рисунке 4.

        1. Схема функции нахождения площади сектора круга

Схема алгоритма нахождения площади трёх секторов круга с помощью показана на рисунке 5.

        1. Схема алгоритма нахождения площади трёх секторов круга

Схема алгоритма событийной процедуры при нажатии кнопки «Решить» показана на рисунке 6.

        1. Схема событийной процедуры при нажатии на кнопку «Решить»

    1. Программный код библиотеки

#include "pch.h"

#include <cstdlib>

#include <time.h>

#include "DLLforTP.h"

#include <cmath>

#include <math.h>

using namespace System;

using namespace System::Windows::Forms;

using namespace Microsoft::VisualBasic;

using namespace System::Data::OleDb;

namespace DLLforTP { double Class1::S(double r, double a)

{

return (3.14 * pow(r, 2) * a) / 360;

}

void Class1::ST(double r, double a, double b, double c, double& S1, double& S2, double& S3)

{

S1 = S(r, a);

S2 = S(r, b);

S3 = S(r, c);

}

double Class1::Vvod(TextBox^ t)

{

return Convert::ToDouble(t->Text);

}

void Class1::Vivod(double x, TextBox^ t) {

t->Text = Convert::ToString(x);

}