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

лабы / Laba_varik20_5

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

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

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

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

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

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

«Разработка консольных проектов Visual Studio

с использованием функций VC++»

по теме

«Функции VС++ и консольные проекты

Visual Studio»

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

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

Выполнил:

Проверил:

Москва, 2021 г.

Содержание

Описание индивидуального задания…………………………………….2

Формализация задания……………………………………………………2

Реализация первого проекта………………………………………………3

Реализация второго проекта ……………………………………………...5 Реализация третьего проекта……………………………………………...7

Реализация четвертого проекта………………………………………..….9

Реализация пятого проекта……………………………………………..…10

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

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

Описание индивидуального задания

Создать решение, состоящее из пяти программных проектов, вычисления арифметического выражения:

при значениях исходных данных x=125.04 и y=5.55 с использованием различных способов обмена данными и местоположением функций в соответствии с общим заданием.

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

Для формализации и уточнения задания определим, что исходные данные x, y – вещественного типа double. Результаты вычислений – переменная a также должна быть вещественного типа double. Операция вычисления a будет записываться следующим оператором VC++:

Вычисление z реализуем в функциях VC++ тремя различными способами в соответствии с общим заданием.

Реализация первого проекта

Алгоритм главной процедуры не зависит от способа обмена данными и приведен на рисунке 1.

Рисунок 1

Разработаем алгоритм процедуры с параметрами и возвращаемым значением(рис.2).

Рисунок 2

Разработаем программные коды двух функций в соответствии со схемами алгоритмов(рис.3).

Рисунок 3

Откомпилируем файл zad1.cpp, выполним построение решения lab5 и выполнение проекта pr1. Получим следующие результаты при заданных значениях исходных данных (рисунок 4).

Рисунок 4

Выполним проект с помощью отладчика по шагам и проведем следующие исследования:

Вопрос: в функции main заменим оператор вызова функции a=func1(x,y) на оператор a=func1(y,x), изменим порядок фактических параметров.

Ответ: если изменить порядок фактических переменных, то ответ меняется. Потому что, когда мы задавали функцию func1 мы ставили определенный порядок, а если поменять порядок в main, то значения x поменяется со значением y.

Вопрос: можно ли при вызове функции в списке фактических параметров указывать на имя переменной, а константу или выражение, например для следующих операторов

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

Вопрос: Изменится ли значение переменной x в функции main, если внутри функции func1 до оператора return a изменить значение x, например, добавить оператор x++

Ответ: результат не поменяется, потому что мы прибавляем значение в функции, а ответ будет возвращаться в main.

Вопрос: изменится ли результат работы проекта, если, ничего не меняя в главной функции main, изменить имена формальных параметров при определении функции func1

Ответ: результат никак не поменяется, потому что мы меняем только названия параметров.

Реализация второго проекта

Создадим второй пустой проект с именем pr2 в уже существующем решении проекта pr2. Запишем в файл с именем zad2.cpp программные коды разработанных в первом проекте функций (переименовав функцию func1 в func2) в следующем порядке: сначала программный код главной функции main; а после него определение функции func2 с параметрами и возвращаемым значением(рис.5).

Рисунок 5

Выполним проект pr2(рис.6).

Рисунок 6

Реализация третьего проекта

Разработаем алгоритм процедуры с параметрами и без возвращаемого значения. Схема алгоритма этой процедуры func3 представлена на рисунке 7.

Рисунок 7

Определение функции func3 с входными и выходными параметрами без возвращаемого значения, где входные данные передаются по значению, а результат вычислений возвращается через параметр по ссылке(рис.8).

Рисунок 8

Откомпилируем файл и получим следующие результаты(рис.9).

Рисунок 9

Вопрос: можно ли при вызове функции в списке фактических параметров записывать выражения?

Ответ: можно, потому что, значение прибавленное к параметру будет решаться.

Вопрос: изменится ли результат выполнения проекта, если при определении функции func3 удалить знак & (операция взятия адреса) перед формальным параметром a:

void func3(double x, double y, double& a)

Ответ: Он не изменится, и не останется прежним. Программа выдаст ошибку, так как этот знак перенаправляет параметры x и у в a.

Реализация четвертого проекта

Разработаем алгоритм процедуры без параметров и без возвращаемого значения. Схема алгоритма этой процедуры func4 представлена на рисунке 10.

Рисунок 10

Разработаем программные коды двух функций в соответствии со схемами алгоритмов.

Рисунок 11

Откомпилируем файл zad4.cpp, выполним построение решения lab5 и выполнение проекта pr4. Получим следующие результаты при заданных значениях исходных данных (рисунок 12).

Рисунок 12

Реализация пятого проекта

Создадим в уже имеющемся решении пятый проект с именем pr5, состоящий из двух файлов. В первый файл с именем zad5_m.срр поместим текст функции main из второго проекта. Во второй файл с именем zad5_f.срр поместим текст функции func2 из того же проекта. После раздельной компиляции файлов выполним их совместную компоновку (перестроение решения) и выполнение проекта. Результаты выполнения при заданных значениях исходных данных приведены на рисунке 13.

Рисунок 13

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

Результат выполнения всех пяти проектов одинаков и равен 2.56325. Выполним расчет арифметического выражения с использованием программы Microsoft Excel и получим совпадающий результат, что доказывает его правильность(рис.14).

Рисунок 14

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

Лабораторная работа № 5 «Разработка консольных проектов Visual Studio с использованием функций VC++» по теме «Функции VС++ и консольные проекты Visual Studio»

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