- •Оглавление
- •Введение
- •Создать решение, состоящие из пяти программных проектов, для вычисления арифметического выражения
- •1.Индивидуальное задание, вариант 14
- •2.Формализация и уточнение задания
- •3.Разработка пяти программных проектов в одном решении и получение результатов их работы
- •4.Реализация первого проекта
- •5.Реализация второго проекта
- •6.Реализация третьего проекта
- •7.Реализация четвертого проекта
- •8.Реализация пятого проекта
- •9.Доказательство правильности результатов
- •Заключение
- •Список используемой литературы
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра «Информатика»
Лабораторная работа №5
Разработка консольных проектов Visual Studio
с использованием функций VC++
по теме
«Функции VC++ и консольные проекты
Visio Studio»
по дисциплине
«Информатика»
Выполнил:
Вариант 14
Проверил:
Москва, 2021 г.
Оглавление
Введение 3
1.Индивидуальное задание, вариант 14 4
2.Формализация и уточнение задания 4
a=10*(log(pow(y,2))-pow(abs(x-y),1.0/4))/(1-pow(cos(y),3)) 4
3.Разработка пяти программных проектов в одном решении и получение результатов их работы 4
5.Реализация второго проекта 8
6.Реализация третьего проекта 9
7.Реализация четвертого проекта 12
8.Реализация пятого проекта 13
9.Доказательство правильности результатов 14
Заключение 15
Список используемой литературы 15
Введение
Изучить структуру программного кода консольных проектов Visual Studio и правила определения, объявления и вызова функции VC++.
Решение индивидуального варианта по вычислению заданного арифметического выражения с использованием функций VC++.
Разработка схем алгоритмов программ.
Создание консольных решений и реализация их в отдельных проектах с получением результата работы.
Проверка правильности решения.
Создать решение, состоящие из пяти программных проектов, для вычисления арифметического выражения
1.Индивидуальное задание, вариант 14
Создать решение, состоящие из пяти программных проектов, для вычисления арифметического выражения: при значениях исходных данных x=12.43 и y=-0.2 .
2.Формализация и уточнение задания
Для формализации и уточнения задания определим, что исходные данные x, y – вещественного типа double. Результаты вычислений – переменная a также должна быть вещественного типа double. Операция вычисления a будет записываться следующей формулой в VC++ .
a=10*(log(pow(y,2))-pow(abs(x-y),1.0/4))/(1-pow(cos(y),3))
3.Разработка пяти программных проектов в одном решении и получение результатов их работы
Для этого при создании первого проекта необходимо поставить галочку в переключателе Создать каталог для решения. Проектам и решению необходимо дать разные имена. Решению дадим имя lab5, а проекту – имя pr1. (рисунок 1).
Рисунок 1 - создание решения, включающего больше одного проекта
Далее создадим пустой проект и добавим в него файл с пустым исходным кодом и с именем zad1.cpp.
4.Реализация первого проекта
Алгоритм главной процедуры не зависит от способа обмена данными и приведен на рисунке 2
.
Рисунок 2 - схема алгоритма главной процедуры main для всех проектов
Разработаем алгоритм процедуры с параметрами и возвращаемым значением. Схема алгоритма этой процедуры func1 (см.рис.3).
Рисунок 3 – Схема алгоритма процедуры func с параметрами и возвращаемым значениям для первого проекта
Разработаем программные коды двух функций в соответствии со схемами алгоритмов. Программные кода разработанных функций запишем в файл с именем zad1.cpp в следующим порядке(см. листинг 1).
1.Сначала определения функции func1 с параметрами и возвращаемым значением.
2.После него главную функцию main.
#include <iostream>
#include <cmath>
using namespace std;
double func1(double x, double y){
double a;
a=10*(log(pow(y,2))-pow(abs(x-y),1.0/4))/(1-pow(cos(y),3));
return a;
}
int main(){
setlocale(LC_ALL, "rus");
double x, y, a;
cout << "Ввод x = ";
cin >> x;
cout << endl << "Ввод y = ";
cin >> y;
a = func1(x, y);
cout << endl << "результат a = " << a << endl;
system("PAUSE");
return 0;
}
Листинг 1 – программный код файла zad1.cpp
Откомпилируем файл zad1.cpp, выполним построение решения resh1 и выполнение проекта lab5. Получим следующие результаты при заданных значениях исходных данных (см.рис.4).
Рисунок 4 – Результаты выполнения проекта lab5
Выполним проект с помощью отладчика по шагам и проведем следующие исследования:
1.В функции main заменим оператор вызова функции f=func1(x, y) на оператор f=func1(y, x), изменив порядок фактических параметров.
Ответ: Результат будет отличаться. Это связанно с тем, что при передаче параметров в процедуру необходимо учитывать порядок ввода данных.
2.Измениться ли значение переменной x в функции main, если внутри функции func1 до оператора return f изменить значение x, например, добавив x++.
Ответ: Значение x не изменится. Это связанно с понятием области видимости в С++. Переменная х в функции main и переменная в функции func1 – это два разных объекта, поэтому изменений не произошло.
3.Измениться ли результат работы проекта, если, ничего не меняя в главной функции main, изменить имена формальных параметров при определении функции func1. Например: f= func1(x+2, y - 0.5)
Ответ: Программа успешно скомпилируется, а это значит, что при использовании выражений и констант в списке фактических параметров функции, программа успешно запускается и данный вариант инициализации допустим.
4.Измениться ли результат работы проекта, если, ничего не меняя в главной функции main, изменить имена формальных параметров при определении функции func1. Например – поменять названия фактических и формальных параметров.
Ответ: В результате выполнения программы мы получили тот же ответ. Это объясняется тем, что в формальные параметры записывается копия фактических, и эти данные не зависят от названия фактических и формальных параметров.