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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра «Информатика и вычислительная техника»

ОТЧЕТ 

по лабораторной работе № 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;

}

Результаты выполнения программы, выводы:

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