Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 14:14   #1
novak3
Пользователь
 
Регистрация: 05.05.2011
Сообщений: 33
По умолчанию смысл задачи

Подскажите кто знает, пожалуйста.
Может кто-нибудь встречался с подобной задачей.

Задача. Дана действительная матрица A размером n*m. Найти среднее арифметическое каждого столбца матрицы. Для нахождения суммы элементов и среднего арифметического использовать подпрограмму.

Проблема у меня не столько с программированием сколько с пониманием сути самой задачи.
Правильно ли я понимаю: здесь нужно объявить переменные n и m. Затем объявить двумерный массив
A[n][m] и сделать так чтобы пользователь ввел все элементы этого массива. m-означает количество столбцов. В каждом столбце посчитать среднее арифметическое всех введенных пользователем чисел.

Правильно ли я рассуждаю или нет?
novak3 вне форума Ответить с цитированием
Старый 05.05.2011, 14:23   #2
Damnar
Пользователь
 
Регистрация: 27.03.2011
Сообщений: 12
По умолчанию

1. Нужно объявить и инициализировать матрицу А[m][n].
2. создать функцию для подсчета суммы элементов заданного столбца, то есть возвращаемый тип - тип матрицы, а аргумент функции - номер столбца.
Damnar вне форума Ответить с цитированием
Старый 05.05.2011, 14:31   #3
novak3
Пользователь
 
Регистрация: 05.05.2011
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Damnar Посмотреть сообщение
1. Нужно объявить и инициализировать матрицу А[m][n].
2. создать функцию для подсчета суммы элементов заданного столбца, то есть возвращаемый тип - тип матрицы, а аргумент функции - номер столбца.
Пункт 2, пожалуйста, можно в виде краткого примера. Честно сказать не понял. Что-то вроде того:

int main1
{объявление и инициализация матрицы A[m][n]}
int main2
{1.алгоритм подсчета суммы элементов заданного столбца
2. вызывание соответствующего столбца матрицы для подсчета}
Я правильно рассуждаю?
И еще.
Обе функции main1 и main2 в одном листинге писать?
novak3 вне форума Ответить с цитированием
Старый 05.05.2011, 14:54   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от novak3 Посмотреть сообщение
Пункт 2, пожалуйста, можно в виде краткого примера. Честно сказать не понял. Что-то вроде того:

int main1
{объявление и инициализация матрицы A[m][n]}
int main2
{1.алгоритм подсчета суммы элементов заданного столбца
2. вызывание соответствующего столбца матрицы для подсчета}
Я правильно рассуждаю?
И еще.
Обе функции main1 и main2 в одном листинге писать?
main может быть только один, как Дункан МакЛауд -)
В остальном -- все верно. Только функция расчета среднего арифметического должна быть типа float или double. Ну, и принимать в качестве параметров указатель на массив и номер столбца.
А вызывать ее, соответственно, в цикле.

ЗЫ Язык какой?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 05.05.2011, 15:10   #5
novak3
Пользователь
 
Регистрация: 05.05.2011
Сообщений: 33
По умолчанию

Насчет языка, конечно "C".
То есть долно быть типа того:
int main
{1.объявление и инициализация матрицы A[m][n]
2. ptr=& соответствущий столбец}
double funk
{1.алгоритм подсчета суммы элементов заданного столбца
2.for(-----)
{ptr (вызов столбца для расчета)}
}
novak3 вне форума Ответить с цитированием
Старый 05.05.2011, 21:08   #6
Trust_357
Пользователь
 
Регистрация: 10.03.2011
Сообщений: 68
По умолчанию

Код:
#include<time.h>
#include<iostream>
using namespace std;
void Init(int **mas,int n,int m,int max)
{
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			mas[i][j]=rand()%max+1;
}
void Show(int **mas,int n,int m)
{
	cout<<"\n\n";
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
			cout<<mas[i][j]<<"\t";
		cout<<"\n";
	}
	cout<<"\n\n";
}
void Sredneye(int **mas,int n,int m)
{
	cout<<"\n\n";
	for(int i=0;i<m;i++)
	{
		float sum=0;
		for(int j=0;j<n;j++)
		{
			sum+=mas[j][i];
		}
		cout<<"\t\tСреднее арефметическое "<<i+1<<" столбца равна "<<sum/n<<"\n\n";
	}
	cout<<"\n\n";
}
void main()
{
	srand((unsigned)time(NULL));
	setlocale(LC_CTYPE,"Rus");
	int n=0,m=0,max=0;
	cout<<"\t\tВведите колличество строк\n\n";
	cin>>n;
	int **mas=new int*[n];
	cout<<"\t\tВведите колличество столбцов\n\n";
	cin>>m;
	cout<<"\t\tВведите максимальное число генерации\n\n";//числа будут от 1 до max
	cin>>max;
	for(int i=0;i<n;i++)
		mas[i]=new int[m];
	Init(mas,n,m,max);
	Show(mas,n,m);
	Sredneye(mas,n,m);
	for(int i=0;i<n;i++)
		delete[]mas[i];
	delete[]mas;
}
Trust_357 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Краткий смысл. В чем цель и смысл вашей жизни? grenles Свободное общение 20 13.09.2010 07:13
В чем смысл "Задачи о выборе процессов" Dezolyator Помощь студентам 1 24.05.2009 21:48
Сумма ряда (Pascal). Не могу понять смысл задачи :( DsDevis Помощь студентам 9 26.03.2009 01:16