Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / Laba_varik14_5.docx
Скачиваний:
7
Добавлен:
10.06.2023
Размер:
138.37 Кб
Скачать

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

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

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

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

Лабораторная работа №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. Например – поменять названия фактических и формальных параметров.

Ответ: В результате выполнения программы мы получили тот же ответ. Это объясняется тем, что в формальные параметры записывается копия фактических, и эти данные не зависят от названия фактических и формальных параметров.

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