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

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

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

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

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

ОТЧЕТ 

по лабораторной работе № 9

«ПРОГРАММИРОВАНИЕ С ВОЗВРАТОМ ИЗ ФУНКЦИЙ НЕСКОЛЬКИХ ЗНАЧЕНИЙ»

Выполнил: 

студент группы ИВТ-234 Кукушкина А.А.

______________________________________

(дата, подпись)

Проверил:

ст. пр. доцент Дорошенко М.С.

_____________________________________________________

(дата, подпись)

Омск 2023

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

Тема: Программирование с возвратом из функций нескольких значений

Вариант 9

Задание 1

Условие задачи:

Написать и отладить программу для задачи из лабораторной работы 7 с выделением алгоритма обработки или формирования массива. Организовать вызов процедуры с параметрами-массивами для двух наборов исходных данных. (Для ускорения отладки массив можно задать константой).

Задача 7_2 с применением подпрограммы:

Схема алгоритма:

Текст программы:

#include<stdio.h>

#include<conio.h>

void seventwo(int a[11][11])

{

for (int i = 1; i < 11; i++)

{

for (int j = 1; j < 11; j++)

{

a[i][j] = i * j;

}

}

}

int main()

{

int a[11][11];

seventwo(a);

for (int i = 1; i < 11; i++)

{

for (int j = 1; j < 11; j++)

{

printf("%4d", a[i][j]);

}

printf("\n");

}

_getch();

return 0;

}

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

После выполнения программы на экран вывелась таблица Пифагора.

Задание 2

Условие задачи:

Даны массивы A [1..6], B[1..8]. Выбрать из них положительные элементы и записать соответственно в массивы A [1..k] и B [1..k], где k<6, n<8; из отрицательных элементов сформировать массивы A2 [1..6-k],B2 [1..8-n]. Напечатать суммы и произведения элементов для каждого.

Схема алгоритма:

Текст программы:

#include <iostream>

#include <conio.h>

#include <locale.h>

#include <vector>

using namespace std;

int sum(int* mas)

{

int sum = 0;

for (int i = 0; i < sizeof(mas); i++)

{

sum += mas[i];

}

return sum;

}

int pr(int* mas)

{

vector<int> p;

for (int i = 0; i < sizeof(mas); i++)

{

if (mas[i] != 0) p.push_back(mas[i]);

}

int pr = 1;

for (int i = 0; i < p.size(); i++)

{

pr *= p[i];

}

return pr;

}

void func(int* mas, int* sp, int* pp, int* so, int* po)

{

int masp[sizeof(mas)]{};

int maso[sizeof(mas)]{};

for (int i = 0; i < sizeof(mas); i++)

{

if (mas[i] > 0) masp[i] = mas[i];

else if (mas[i] < 0) maso[i] = mas[i];

}

*sp = sum(masp);

*pp = pr(masp);

*so = sum(maso);

*po = pr(maso);

}

int main()

{

setlocale(LC_ALL, "ru");

int sp, pp, so, po;

int A[]{ 81, -62, -38, -10, -47, 21 };

int B[]{ 81, -62, -38, -10, -47, 69, 21, -37 };

func(A, &sp, &pp, &so, &po);

cout << "Для массива A:\n";

cout << "Сумма положительных элементов = " << sp << endl;

cout << "Произведение положительных элементов = " << pp << endl;

cout << "Сумма отрицательных элементов = " << so << endl;

cout << "Произведение отрицательных элементов = " << po << endl;

cout << "\n";

func(B, &sp, &pp, &so, &po);

cout << "Для массива B:\n";

cout << "Сумма положительных элементов = " << sp << endl;

cout << "Произведение положительных элементов = " << pp << endl;

cout << "Сумма отрицательных элементов = " << so << endl;

cout << "Произведение отрицательных элементов = " << po << endl;

_getch();

return 0;

}

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

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