лабы / Laba_varik6_5
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра «Информатика»
Лабораторная работа №5
Разработка консольных проектов Visual Studio
с использованием функций VC++
по теме
«Функции VC++ и консольные проекты
Visio Studio»
по дисциплине
«Информатика»
Выполнил:
Проверил:
Москва, 2021 г.
Оглавление
Оглавление 2
Введение 2
1.1 Индивидуальное задание, вариант 27 4
1.2 Формализация и уточнения задания 4
2. Разработка пяти консольных проектов 4
2.1 Задание 1. Функция с параметрами и возвращаемым значением; определение функции должно быть записано перед функцией main. 5
2.2 Задание 2. Функция с параметрами и возвращаемым значением; определение функции должно быть записано после функцией main. 6
7
2.3 Задание 3. Функция с параметрами без возвращаемого значиения. 7
8
2.4 Задание 4. Функция без параметров и без возвращаемого значения. 8
2.5 Задание 5. Функция с параметрами без возвращаемого значения; определение функции и main должны находиться в разных файлах. 9
3. Проверка результатов. 11
Заключение. 12
Список используемой литературы. 13
Введение
Настоящий реферат написан с учетом требований к оформлению отчета по лабораторным работам в соответствии с ГОСТ 2.105-95. В ходе лабораторной работы были поставлены следующие задачи:
Изучить структуру программного кода консольных проектов Visual Studio и правила определения, объявления и вызова функции VC++.
Выполнить индивидуальный вариант с учетом требуемых задач.
Создать решение, состоящие из пяти программных проектов, для вычисления арифметического выражения
Индивидуальное задание, вариант 27
Создать решение, состоящие из пяти программных проектов, для вычисления арифметического выражения: при значениях исходных данных и с использованием различных способов обмена данных и местоположением функции в соответствии с общим заданием.
Формализация и уточнения задания
Для формализации и уточнения задания определим, что исходные данные x, y – вещественного типа double. Результаты вычислений – переменная d также должна быть вещественного типа double.
d = (x * exp(x * y) + 8 * sin(x) * sin(x)) / (x * (x - y) * (3 * x + y));
Листинг 1. — Оператор присваивания d, которому присвоено значение арифметического выражения.
Разработка пяти консольных проектов
На рисунке 1 представлена общая для всех проектов блок – схема.
Рисунок 1. — Схема алгоритма главной процедуры main для проектов.
Схема алгоритма для функции function представлена на рисунке 2.
Рисунок 2. — Схема алгоритма функции function для проектов.
2.1 Задание 1. Функция с параметрами и возвращаемым значением; определение функции должно быть записано перед функцией main.
На Листинге 2 представлен программный код функции с параметрами перед функцией main, а на Рисунке 3 — вывод консольного проекта.
#include <iostream>
#include <cmath>
//Функция с параметрами и возвращаемым значением, причем определение функции должно быть записано перед функцией main.
double function(double x, double y)
{
return (x * exp(x * y) + 8 * sin(x) * sin(x)) / (x * (x - y) * (3 * x + y));
}
// x = 1.002
// y = -0.5321
int main() {
setlocale(LC_ALL,"rus");
double a, b;
std::cout << "Введите X:\n";
std::cin >> a;
std::cout << "Введите Y:\n";
std::cin >> b;
std::cout << "Результат: " << function(a, b) << "\n";
system("PAUSE");
}
Листинг 2. — Программный код Задания 1.
Рисунок 3. — Вывод консольного проекта Задания 1.
2.2 Задание 2. Функция с параметрами и возвращаемым значением; определение функции должно быть записано после функцией main.
На Листинге 3 представлен программный код функции с параметрами после функцией main, а на Рисунке 4 — вывод консольного проекта.
#include <iostream>
#include <cmath>
//Функция с параметрами и возвращаемым значением, причем определение функции должно быть записано после функцией main.
double function(double, double);
// x = 1.002
// y = -0.5321
int main()
{
setlocale(LC_ALL, "rus");
double a, b;
std::cout << "Введите X:\n";
std::cin >> a;
std::cout << "Введите Y:\n";
std::cin >> b;
std::cout << "Результат: " << function(a, b) << "\n";
system("PAUSE");
}
double function(double x, double y)
{
return (x * exp(x * y) + 8 * sin(x) * sin(x)) / (x * (x - y) * (3 * x + y));
}
Листинг 3. — Программный код Задания 2.
Рисунок 4. — Вывод консольного проекта Задания 2.
2.3 Задание 3. Функция с параметрами без возвращаемого значиения.
Для выполнения данного задания нам понадобится тип данных void, который изначально не имеет в себе относительного типа данных и банально указывает на какой-либо адрес в памяти.
На Листинге 4 представлен программный код функции с функцией без возвратного значения типа void. На рисунке 5 представлен вывод консольного проекта.
#include <iostream>
#include <cmath>
void function(double x, double y, double& d)
{
d = (x * exp(x * y) + 8 * sin(x) * sin(x)) / (x * (x - y) * (3 * x + y));
}
// Функция с параметрами и без возвращаемого значения.
// x = 1.002
// y = -0.5321
int main()
{
setlocale(LC_ALL, "rus");
double a, b, c;
std::cout << "Введите X:\n";
std::cin >> a;
std::cout << "Введите Y:\n";
std::cin >> b;
function(a, b, c);
std::cout << "Результат: \n" << c << "\n";
system("PAUSE");
}
Листинг 4. — Программный код Задания 3.
Рисунок 5. — Вывод консольного проекта Задания 2.
2.4 Задание 4. Функция без параметров и без возвращаемого значения.
Для выполнения этого задания не нужно прописывать формальные параметры в функции function.
На Листинге 5 представлен программный код функции с функцией без возвратного значения типа void. На рисунке 6 представлен вывод консольного проекта.
#include <iostream>
#include <cmath>
double x, y, d;
void function()
{
d = (x * exp(x * y) + 8 * sin(x) * sin(x)) / (x * (x - y) * (3 * x + y));
}
// Функция без параметров и без возвращаемого значения (с глобальными переменными)
// x = 1.002
// y = -0.5321
int main()
{
setlocale(LC_ALL, "rus");
std::cout << "Введите X:\n";
std::cin >> x;
std::cout << "Введите Y:\n";
std::cin >> y;
function();
std::cout << "Результат: \n" << d << "\n";
system("PAUSE");
}
Листинг 5. — Программный код Задания 4.
Рисунок 6. — Вывод консольного проекта Задания 4.
2.5 Задание 5. Функция с параметрами без возвращаемого значения; определение функции и main должны находиться в разных файлах.
Для выполнения этого задание потребуется создать несколько файлов в среде VC++ (рис. 7), где файл function.cpp содержит в себе тело функции function, a main.cpp — главную функцию main.
Рисунок 7. — Исходные файлы проекта с расширением .cpp для выполнения Задания 5.
На Листинге 6 показан программный код функции function, а на Листинге 7 — главной функции main.
#include <cmath>
double function(double x, double y)
{
return (x * exp(x * y) + 8 * sin(x) * sin(x)) / (x * (x - y) * (3 * x + y));
}
Листинг 6. — Программный код функции function.
#include <iostream>
int main()
{
setlocale(LC_ALL, "rus");
double a, b;
std::cout << "Введите X:\n";
std::cin >> a;
std::cout << "Введите Y:\n";
std::cin >> b;
std::cout << "Результат: " << function(a, b) << "\n";
system("PAUSE");
}
Листинг 7. — Программный код главной функции main.
При запуске локального отладчика Windows получаем консольный вывод, показанный на рисунке 8.
Рисунок 7. — Вывод консольного проекта Задания 5.
Проверка результатов.
Результат всех проектов равен 1.64801. Выполним проверку при помощи MS Excel, что показано на рисунке 8.
Рисунок 8. — Вывод консольного проекта Задания 5.
Заключение.
При выполнении лабораторной работы были изучены основные методы работы с функциями в VС++ и их типы данных (int, double и void).
Список используемой литературы.
а) https://disk.yandex.ru/d/pDS_6P4Zed0bGg/Информатика/БИК_БИН_21 Лабораторная работа «Разработка простейших проектов с использованием основных средств языка программирования VC++», подготовленная Московским Техническим Университетом Связи и Информатики (МТУСИ)
б) https://disk.yandex.ru/d/pDS_6P4Zed0bGg/Информатика/БИК_БИН_21 Лекция «Тема №4. Функции и консольные проекты», подготовленная Московским Техническим Университетом Связи и Информатики (МТУСИ)