
Лабораторные работы / лабы / lab_8_отчёт вар 9
.docxФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра «Информатика и вычислительная техника»
ОТЧЕТ
по лабораторной работе № 8
«ПРОГРАММИРОВАНИЕ С ПРИМЕНЕНИЕМ ФУНКЦИЙ»
-
Выполнил:
студент группы ИВТ-234 Кукушкина А.А.
______________________________________
(дата, подпись)
Проверил:
ст. пр. доцент Дорошенко М.С.
_____________________________________________________
(дата, подпись)
Омск 2023
Лабораторная работа №8
Тема: Программирование с применением функций
Вариант 9
Задание 1
Условие задачи:
Написать и отладить программы для задач из лабораторных работ 1 и 6 с применением подпрограммы - функции с параметрами. Вычисление функции (или обработку массива) выполнить в подпрограмме, а ввод исходных данных и вывод результатов - в основной программе. Предусмотреть, по крайней мере, два обращения к функции с различными фактическими параметрами (двумя массивами).
Для отладки программ использовать средства среды Си (см. прил. А): пошаговое исполнение программы (трассировку) с контролем значений переменных в окне отладчика Watch.
Задача 1_1 с применением подпрограммы:
Схема алгоритма:
Текст программы:
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <math.h>
#define a 2.0
#define b 0.7
#define c 0.5
using namespace std;
float oneone(float x)
{
return pow(a, 3) * cos(b * x * pow(sin(x), 2)) + pow(c, 1.0 / 3);
}
int main()
{
setlocale(LC_ALL, "ru");
float x, z;
cout << "Введите x: ";
cin >> x;
z = oneone(x);
cout << "z = " << z << " при x = " << x;
_getch();
return 0;
}
Результаты выполнения программы, выводы:
Результат выполнения программы при x = 0:
Результат
выполнения программы при x
=
(≈
1,5708):
Результаты выполнения программы совпадают с результатами, полученными в программе 1_1.
Задача 6_1 с применением подпрограммы:
Схема алгоритма:
Текст программы:
#include <iostream>
#include <conio.h>
using namespace std;
int* sixone(int *a, int *b)
{
int* c = new int[5];
for (int i = 0; i < 5; i++)
{
if (a[i] != b[i]) c[i] = a[i] + b[i];
else c[i] = a[i];
}
return c;
}
int main()
{
int a[5]{ 15, 33, 15, 6, 35 }, b[5]{ 3, 4, 15, 43, 35 };
int* c = sixone(a, b);
for (int i = 0; i < 5; i++)
{
cout << c[i] << endl;
}
_getch();
return 0;
}
Результаты выполнения программы, выводы:
После выполнения программы на экран вывелись значения элементов массива C:
Задание 2
Условие задачи:
Даны три одномерных массива вещественных чисел A[1..6], B[1..8] и С[1..7]. Найти среднее геометрическое значение положительных элементов для каждого.
Схема
алгоритма:
Текст программы:
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <locale.h>
#include <math.h>
using namespace std;
float srg(float* mas)
{
float pr = 1, k = 0, sr;
for (int i = 0; i < sizeof(mas); i++)
{
if (mas[i] > 0)
{
pr *= mas[i];
k += 1;
}
}
sr = pow(pr, 1/k);
return sr;
}
int main()
{
setlocale(LC_ALL, "ru");
float A[6]{ 17.43, 17.07, -52.23, -11.65, 32.46, -27.39 };
float B[8]{ 46.20, 29.05, 28.29, 81.78, -92.72, 13.93, 45.26, -95.64 };
float C[7]{ 74.00, -76.23, -52.81, 7.42, 61.48, 88.15, 100.37 };
cout << fixed << setprecision(5);
cout << "Среднее геометрическое положительных элементов массива A = " << srg(A) << endl;
cout << "Среднее геометрическое положительных элементов массива B = " << srg(B) << endl;
cout << "Среднее геометрическое положительных элементов массива C = " << srg(C);
_getch();
return 0;
}
Результаты выполнения программы, выводы: