Консультация № 161390
25.02.2009, 16:56
0.00 руб.
0 0 0
И ещё одну задачу сделайте, пожалуйста.
Даны массивы A[2][5], B[2][5], C[2][5]. Для каждого
опpеделить местоположение (номер строки и номер столбца)
минимального элемента.

Приложение:
Методические указания:
Условие задачи - Даны вещественные массивы 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
для расчета суммы в нечетных столбцах массива d
// sumd_nc -

// обращение к функциям (вызов для выполнения)
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;
}

Обсуждение

Форма ответа