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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2016, 19:18   #1
AHNME
Пользователь
 
Регистрация: 20.12.2015
Сообщений: 18
По умолчанию Помогите построить код для подсчета среднего арифметического в MyForm

Доброго времени суток!
Задача такова:
Посчитать среднее арифметическое двумерного массива по кнопке button3 в ячейке textbox3

Код:
#include "MyForm.h"
#include <time.h>
#include <stdio.h>
#include <stdlib.h>

#include <winsock2.h>




void FillArray(int arrayDimension, int randomMax, int** array);
void DeleteArray(int arrayDimension, int** array);

void PROJECT::MyForm::MyForm_Load(System::Object^ sender, System::EventArgs^ e)
{
	textBox2->Text = System::Convert::ToString(1);
	textBox1->Text = System::Convert::ToString(1);
	dataGridView1->ColumnCount = 1;
	dataGridView1->RowCount = 1;
}

void PROJECT::MyForm::button1_Click(System::Object^ sender, System::EventArgs^ e)
{
	int** sampleArray; // Описание динамического массива
	int rndMax; // Максимальное число для генератора случайных чисел
	int arrayDimension; // Размерность массива sampleArray

	arrayDimension = System::Convert::ToInt16(textBox2->Text);
	rndMax = System::Convert::ToInt16(textBox1->Text);

	dataGridView1->ColumnCount = arrayDimension;
	dataGridView1->RowCount = arrayDimension;

	sampleArray = new int*[arrayDimension];
	for (int i = 0; i < arrayDimension; i++)
	{
		sampleArray[i] = new int[arrayDimension];
	}

	FillArray(arrayDimension, rndMax, sampleArray);

	for (int i = 0; i < arrayDimension; i++)
	{
		for (int j = 0; j < arrayDimension; j++)
		{
			dataGridView1->Rows[i]->Cells[j]->Value = System::Convert::ToString(sampleArray[i][j]);
		}
	}

	DeleteArray(arrayDimension, sampleArray);
}
	

void FillArray(int arrayDimension, int randomMax, int** array)
 {
	srand((unsigned)time(NULL));
	for (int i = 0; i < arrayDimension; i++)
	{
		for (int j = 0; j < arrayDimension; j++)
		{
			array[i][j] = rand() % randomMax;
		}
	}
}



void DeleteArray(int arrayDimension, int** array)
{
	for (int i = 0; i < arrayDimension; i++)
	{
		delete[]array[i];
	}
	delete[] array;
}


void PROJECT::MyForm::button2_Click(System::Object^  sender, System::EventArgs^  e) {
	Application::Exit();
}
AHNME вне форума Ответить с цитированием
Старый 25.02.2016, 19:31   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Чем помочь-то? Пройдите в цикле все элементы массива и считайте их сумму, потом разделите на количество (arrayDimension*arrayDimension).

И кнопкам и остальным элементам давайте нормальные имена, а не 1, 2, ..., 99.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.02.2016, 19:50   #3
AHNME
Пользователь
 
Регистрация: 20.12.2015
Сообщений: 18
По умолчанию

Такой у меня получается код
Код:
void PROJECT::MyForm::button3_Click(System::Object^  sender, System::EventArgs^  e) {
	int** sampleArray;
	double average = 0;
	double n = 0;
	int arrayDimension;
	
for (int i = 0; i < arrayDimension; i++)
	{
		for (int j = 0; j < arrayDimension; j++)
		{
			
			 average += arrayDimension[i][j];
			 n = n++;
		 }
				 average /= n;

				 dataGridView2->Rows[i]->Cells[j]->Value = System::Convert::ToString(sampleArray[i][j]);
				 textBox3->Text = average.ToString();
		}

	}
ошибки :

Код:
1>------ Перестроение всех файлов начато: проект: PROJECT, Конфигурация: Debug Win32 ------
1>  MyForm.cpp
1>  Source.cpp
1>Source.cpp(65): error C2109: для индекса требуется массив или указатель
1>Source.cpp(70): error C2065: j: необъявленный идентификатор
1>Source.cpp(70): error C2661: System::Windows::Forms::DataGridViewCellCollection::default::get: нет перегруженной функции, принимающей 0 аргументов
1>Source.cpp(70): error C2065: Value: необъявленный идентификатор
1>  Создание кода...
========== Перестроение всех проектов: успешно: 0, с ошибками: 1, пропущено: 0 ==========
Собственно, в этом и помочь
AHNME вне форума Ответить с цитированием
Старый 25.02.2016, 20:09   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Первая ошибка о том, что arrayDimension это просто одно число, а вы почему-то решили, что это массив.

Вообще надо было и массив, и размер при создании сохранить в глобальные переменные/переменные класса (MyForm) и тут использовать, а не просто создать неинициализированные локальные переменные и верить, что все само произойдет.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 25.02.2016 в 20:12.
Alex11223 вне форума Ответить с цитированием
Старый 26.02.2016, 07:26   #5
AHNME
Пользователь
 
Регистрация: 20.12.2015
Сообщений: 18
По умолчанию

сделал

Код:
double AVR(int arrayDimension, int** array)
{
	double srednee=0;
	for (int i = 0; i < arrayDimension; i++)
	{
		for (int j = 0; j < arrayDimension; j++)
		{
			srednee += array[i][j];
			
		}
	}
	return srednee / (arrayDimension*arrayDimension);
}
AHNME вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с выводом массивов и нахождения среднего арифметического (Delphi) Daniyar22 Помощь студентам 6 20.05.2014 10:48
Составьте блок-схему алгоритму для нахождения: среднего арифметического n заданных чисел; Alexander2810 Помощь студентам 0 24.02.2014 16:17
Программа для вычисления среднего арифметического и геометрического массива чисел Defalliance Общие вопросы C/C++ 1 04.12.2012 21:57
Составить функцию для вычисления среднего арифметического в Delphi laventus Помощь студентам 2 15.06.2012 14:53