Консультация № 175266
14.12.2009, 21:48
35.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты. Помогите с задачей, пожалуйста.

Дана программа: (Приложение)

Задание.
Изменить программу так, чтобы:
1 - Определить сумму положительных элементов, кол-во элементов в интервале от -2 до 2
2 - Определить количество нулевых элементов, количество элементов в интервале от 5 до 10.

В ответе прошу оба варианта программы отдельно.
Среда программирования - BorlandC 3.1

Приложение:
#include <iostream.h>
#define I 3
#define J 4

void inputmas(float [I][J], char);
void raschet(float [I][J], float *, float *);
void printmas(float [I][J], char);
void printrez(float [I][J], char, float, float);

void main()
{
float c[I][J], d[I][J], sredc, sredd, minc, mind;
inputmas(c,'c');
inputmas(d,'d');
raschet(c,&sredc,&minc);
printrez(c,'c',sredc,minc);
raschet(d,&sredd,&mind);
printrez(d,'d',sredd,mind);
}

void inputmas (float m[I][J], char im)
{
int i, j;
cout<< "\nВводим массив " << im << "\n";
for (i=0; i<I; i++)
for (j=0; j<J; j++)
{
cout << im << " [" << i << " ][ " << j << " ] = ";
cin >> m[i][j];
}
}

void raschet (float x[I][J], float *sred, float *min)
{
int i,j, kol;
float sum=0.0;
kol = 0;

*min = x[0][0];

for (i=0; i<I; i++)
for (j=0; j<J; j++)
{
if (x[i][j] < *min)
*min = x[i][j];
if (x[i][j] > 0)
{
sum += x[i][j];
kol ++;
}
}
*sred = sum / kol;
}

{
int i,j;
cout.setf( ios::showpoint | ios::fixed);
cout<< "\nМассив " << immas ;
for (i=0; i<I; i++)
{
cout << "\n";
for (j=0; j<J; j++)
{
cout.width(8);
cout.precision(2);
cout << x [i][j];
}
}
}
void printrez(float x[I][J], char immas, float sred, float min)
{
printmas(x,immas);
cout << "\n\nСреднее арифм. положительных элементов равно " << sred;
cout << "\nМинимальный элемент в массиве = " << min;
}

Обсуждение

Неизвестный
14.12.2009, 22:37
общий
это ответ
Здравствуйте, Penkov213.

Как Вы и просили, 2 варианта программы на основе представленной Вами. Оба варианта протестированы в Borland C++ 3.1.

Код:
// Определить сумму положительных элементов,
// кол-во элементов в интервале от -2 до 2


#include <iostream.h>
#define I 3
#define J 4

float sum_positiv( float m[I][J] )
{
float sum = 0.0;
for( int i = 0; i < I; ++i )
for( int j = 0; j < J; ++j )
if( m[i][j] > 0.0 )
sum += m[i][j];
return sum;
}

int count_interval( float m[I][J], float aMin, float aMax )
{
int n = 0;
for( int i = 0; i < I; ++i )
for( int j = 0; j < J; ++j ) {
float a = m[i][j];
if( aMin <= a && a <= aMax )
++n;
}
return n;
}

void inputmas (float m[I][J], char im)
{
int i, j;
cout<< "\nВводим массив " << im << "\n";
for (i=0; i<I; i++)
for (j=0; j<J; j++)
{
cout << im << " [" << i << " ][ " << j << " ] = ";
cin >> m[i][j];
}
}


void main()
{
float c[I][J];
inputmas( c,'c' );

float sum = sum_positiv( c );
cout << "\nСумма положительных элементов = " << sum << "\n";
int n = count_interval( c, -2.0, 2.0 );
cout << "\nКол-во элементов в интервале от -2 до 2 = " << n << "\n";
}


Тестовый прогон программы:

Код:
Вводим массив c
c [0 ][ 0 ] = 1
c [0 ][ 1 ] = 1.4
c [0 ][ 2 ] = 0.4
c [0 ][ 3 ] = -0.13
c [1 ][ 0 ] = 1.5
c [1 ][ 1 ] = 2.5
c [1 ][ 2 ] = -4
c [1 ][ 3 ] = 0.7
c [2 ][ 0 ] = -1.5
c [2 ][ 1 ] = 0.78
c [2 ][ 2 ] = -3.1
c [2 ][ 3 ] = -1.6

Сумма положительных элементов = 8.28

Кол-во элементов в интервале от -2 до 2 = 9



Код:
// Определить количество нулевых элементов,
// количество элементов в интервале от 5 до 10.


#include <iostream.h>
#define I 3
#define J 4

int count_nulls( float m[I][J] )
{
int n = 0;
for( int i = 0; i < I; ++i )
for( int j = 0; j < J; ++j )
if( m[i][j] == 0.0 )
++n;
return n;
}

int count_interval( float m[I][J], float aMin, float aMax )
{
int n = 0;
for( int i = 0; i < I; ++i )
for( int j = 0; j < J; ++j ) {
float a = m[i][j];
if( aMin <= a && a <= aMax )
++n;
}
return n;
}

void inputmas (float m[I][J], char im)
{
int i, j;
cout<< "\nВводим массив " << im << "\n";
for (i=0; i<I; i++)
for (j=0; j<J; j++)
{
cout << im << " [" << i << " ][ " << j << " ] = ";
cin >> m[i][j];
}
}


void main()
{
float c[I][J];
inputmas( c,'c' );

float sum = count_nulls( c );
cout << "\nКол-во нулевых элементов = " << sum << "\n";
int n = count_interval( c, 5.0, 10.0 );
cout << "\nКол-во элементов в интервале от 5 до 10 = " << n << "\n";
}


Тестовый прогон программы:

Код:
Вводим массив c
c [0 ][ 0 ] = 0
c [0 ][ 1 ] = 6
c [0 ][ 2 ] = 1
c [0 ][ 3 ] = 0
c [1 ][ 0 ] = -3
c [1 ][ 1 ] = 8
c [1 ][ 2 ] = 10.0
c [1 ][ 3 ] = 4.9
c [2 ][ 0 ] = 2.6
c [2 ][ 1 ] = -0.1
c [2 ][ 2 ] = 0
c [2 ][ 3 ] = 6.8

Кол-во нулевых элементов = 3

Кол-во элементов в интервале от 5 до 10 = 4


Успехов!
Форма ответа