
опа 1
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ
ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего образования
«Национальный исследовательский Томский политехнический университет»
Инженерная школа информационных технологий и робототехники
Отделение автоматизации и робототехники
Направление: 15.03.04 – Автоматизация технологических процессов и производств
Отчёт по лабораторной работе № 1
по дисциплине «Основы программирования и алгоритмизации»
«Функции с C++; Передача параметров по значению, сслылке и
указателю; Параметры по умолчанию.»
вариант № 13
Выполнил:
Студент группы 8Т41 Кирильцева К. М.
Проверил:
Ассистент ________________ Кургинов Я. О.
Томск 2024
Цель работы:
Научиться работать с функциями в С++ и указателями.
Задание:
№ |
Формулировка |
1
|
Найти общий объем n прямоугольных параллелепипедов, у каждого из которых одинаковое соотношение длин ребер, исходящих из одного угла: 1:2:3, если длины их наименьших ребер образуют последовательность а, а/2, а/3, …, a/n. |
2 |
Дан массив целых чисел {ai} (i=1, 2, …,n), вернуть массив в обратном порядке. |
3
|
Реализовать математическую функцию f(x, y)=13*sqrt(x)*tan(y+5)-1.2*x*sqrt(y) y(t)=-t+t2 x(t)=cos(t)-sin(t) |
Анализ задания:
Задание 1:
Определим формулу объёма одного параллелепипеда через длину его наименьшего ребра. Длина наименьшего ребра равна ai, тогда длины остальных рёбер будут 2ai и 3ai. Объём одного параллелепипеда равен произведению длин его рёбер: Vi = ai * 2 ai * 3 ai = 6ai3. Последовательность длин наименьших рёбер задаётся как a, a/2, a/3, ..., a/n. Подставляем каждое значение ai в формулу объёма и суммируем объёмы всех параллелепипедов. Обозначаем общую сумму объёмов как totalvolume += volume, где volume = length1 * length2 * length3.
Задание 2:
Получаем входной массив { a1, a2, ..., an}.Создаём новый массив той же длины. Заполняем новый массив элементами исходного массива в обратном порядке:
- Первый элемент нового массива будет последним элементом исходного an.
- Второй элемент нового массива — предпоследний элемент исходного an-1, и так далее до конца. Возвращаем заполненный массив.
Задание 3:
Определяем функции x(t) и y(t), заданные параметрически: x(t) = cos(t) - sin(t), y(t) = -t + t2. Вводим эти значения в выражение для f(x, y): f(x, y) = 13*sqrt(x)*tan(y+5) - 1.2x*sqrt(y).
Решаем эту функцию пошагово:
- Вычисляем sqrt{x}, где x = cos(t) - sin(t).
- Вычисляем tan(y+5), где y = -t + t2.
- Умножаем результат на 13.
- Вычисляем -1.2x*sqrt(y), где y = -t + t^2.
- Складываем результаты двух выражений.
Блок схема:
Блок схема функции opa1 представлена на рисунке 1.
Рисунок 1- Блок схема функции opa1
Блок схема функции x представлена на рисунке 2.
Рисунок 2 - Блок схема функции x
Блок схема функции y представлена на рисунке 3.
Рисунок 3 - Блок схема функции y
Блок схема функции rand представлена на рисунке 4.
Рисунок 4 - Блок схема функции rand
Блок схема функции outArray представлена на рисунке 5.
Рисунок 5 - Блок схема функции outArray
Блок схема функции opa2 представлена на рисунке 6.
Рисунок 6 – Блок схема функции opa2
Блок схема функции f представлена на рисунке 7.
Рисунок 7 - Блок схема функции f
Блок схема заданий представлена на рисунке 8.
Рисунок 8 - Блок схема заданий
Результат задания 1 показан на рисунке 9:
Рисунок 9 - Результат задания 1
Результат задания 2 показан на рисунке 10:
Рисунок 10 - Результат задания 2
Результат задания 3 показан на рисунке 11:
Рисунок 11 - Результат задания 3
Вывод:
В ходе выполнения лабораторной работы был подключен заголовочный файл к основному проекту. Усовершенствованы навыки работы с функциями и указателями.
Приложение А. Листинги программ
Листинг 1 – для функций
|
Продолжение листинг 1
|
Листинг 2 – для кода заданий
|
Продолжение Листинга 2
|