Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
rabprog.doc
Скачиваний:
2
Добавлен:
26.11.2019
Размер:
264.7 Кб
Скачать

Задача 2

Условие задачи - Даны вещественные массивы A[3][4], D[3][4]. Для каждого массива определить сумму положительных элементов, расположенных в четных столбцах и сумму положительных элементов, расположенных в нечетных столбцах.

В данной задаче должны быть реализованы:

1. Ввод исходных массивов.

2. Расчет суммы положительных элементов в четных столбцах массива и

суммы положительных элементов в нечетных столбцах массива.

3. Вывод на экран исходного массива и полученного результата.

Каждую операцию оформим в виде отдельной функции.

Пусть:

input() - функция ввода массива

schetsum() - функция расчета сумм положительных элементов в четных и

нечетных столбцах массива

(у данной функции в качестве аргументов должны быть либо

2 указателя, либо 2 ссылки)

output() - функция вывода исходного массива и полученных результатов

Данную задачу можно решить любым из предложенных способов – использовать функцию с указателями, либо функцию со ссылками в качестве аргументов.

1- й вариант решения - программа с функцией schetsum

с указателями в качестве аргументов

#include <iostream.h>

#include <iomanip.h>

// прототипы функций

void input ( float [3][4], char);

void schetsum ( float [3][4], float *, float *);

void output ( float [3][4], char, float, float);

void main()

{

// объявление массивов и переменных

float a[3][4], d[3][4], suma_ch, suma_nch, sumd_ch, sumd_nch;

// suma_ch - для расчета суммы в четных столбцах массива a

// suma_nch - для расчета суммы в нечетных столбцах массива a

// sumd_ch - для расчета суммы в четных столбцах массива d

// sumd_nc - для расчета суммы в нечетных столбцах массива d

// обращение к функциям (вызов для выполнения)

input ( a, 'a');

input ( d, 'd');

schetsum( a, &suma_ch, &suma_nch); // в функцию передаются два

schetsum( d, &sumd_ch, &sumd_nch); // адреса переменных

output( a, 'a', suma_ch, suma_nch);

output( d, 'd', sumd_ch, sumd_nch);

}

// определение функции ввода массива input()

void input ( float x[3][4], char name)

{

int i, j;

cout << "Вводим массив " << name << endl;

for (i=0; i<3; i++)

for (j=0; j<4; j++)

{

cout << " Введите " << name << "[" << i << "][" << j << "]=";

cin >> x[i][j];

}

}

// определение расчетной функции

// в качестве аргументов у данной функции два указателя

void schetsum ( float x[3][4], float *sum_ch, float *sum_nch)

{

int i,j;

*sum_ch = 0;

*sum_nch = 0;

// будем считать четными столбцы с индексами 0 и 2,

// а нечетными - с индексами 1 и 3

// расчет суммы в четных столбцах

for (j=0; j<4; j+=2)

for (i=0; i<3; i++)

if ( x[i][j] > 0 )

*sum_ch += x[i][j];

// расчет суммы в нечетных столбцах

for (j=1; j<4; j+=2)

for (i=0; i<3; i++)

if ( x[i][j] > 0 )

*sum_nch += x[i][j];

}

// определение функции вывода output()

void output ( float x[3][4], char name, float sum_chet, float sum_nchet)

{

int i,j;

cout << " Исходный массив " << name << ":" << endl;

for (i=0; i<3; i++)

{

for (j=0; j<4; j++)

cout << setw(5) << x[i][j];

cout << endl;

}

cout << "\nСумма положительных элементов в четных столбцах массива"

<< name << " равна " << sum_chet << endl;

cout << "Сумма положительных элементов в нечетных столбцах массива"

<< name << " равна " << sum_nchet << endl;

}

2-й вариант решения - программа с функцией schetsum

со ссылками в качестве аргументов

#include <iostream.h>

#include <iomanip.h>

// прототипы функций

void input ( float [3][4], char);

void schetsum ( float [3][4], float &, float &);

void output ( float [3][4], char, float, float);

void main()

{

// объявление массивов и переменных

float a[3][4], d[3][4], suma_ch, suma_nch, sumd_ch, sumd_nch;

// suma_ch - для расчета суммы в четных столбцах массива a

// suma_nch - для расчета суммы в нечетных столбцах массива a

// sumd_ch - для расчета суммы в четных столбцах массива d

// sumd_nc - для расчета суммы в нечетных столбцах массива d

// обращение к функциям (вызов для выполнения)

input ( a, 'a');

input ( d, 'd');

schetsum( a, suma_ch, suma_nch);

schetsum( d, sumd_ch, sumd_nch);

output( a, 'a', suma_ch, suma_nch);

output( d, 'd', sumd_ch, sumd_nch);

}

// определение функции ввода массива input()

void input ( float x[3][4], char name)

{

int i, j;

cout << "Вводим массив " << name << endl;

for (i=0; i<3; i++)

for (j=0; j<4; j++)

{

cout << " Введите " << name << "[" << i << "][" << j << "]=";

cin >> x[i][j];

}

}

// определение расчетной функции

// в качестве аргументов у данной функции две ссылки

void schetsum ( float x[3][4], float &sum_ch, float &sum_nch)

{

int i,j;

sum_ch = 0;

sum_nch = 0;

// будем считать четными столбцы с индексами 0 и 2,

// а нечетными - с индексами 1 и 3

// расчет суммы в четных столбцах

for (j=0; j<4; j+=2)

for (i=0; i<3; i++)

if ( x[i][j] > 0 )

sum_ch += x[i][j];

// расчет суммы в нечетных столбцах

for (j=1; j<4; j+=2)

for (i=0; i<3; i++)

if ( x[i][j] > 0 )

sum_nch += x[i][j];

}

// определение функции вывода output()

void output ( float x[3][4], char name, float sum_chet, float sum_nchet)

{

int i,j;

cout << " Исходный массив " << name << ":" << endl;

for (i=0; i<3; i++)

{

for (j=0; j<4; j++)

cout << setw(5) << x[i][j];

cout << endl;

}

cout << "Сумма положительных элементов в четных столбцах массива "

<< name << " равна " << sum_chet << endl;

cout << "Сумма положительных элементов в нечетных столбцах массива"

<< name << " равна " << sum_nchet << endl;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]