Консультация № 176989
01.03.2010, 17:31
0.00 руб.
0 1 1
Здраствуйте.Еще задача ..по C++Builder 6..Через оконное приложение ..Разработать алгоритм, интерфейс пользователя и программу, позволяющую в матрице размером 10х10 действительных чисел заменить нулями все элементы, превышающие среднее значение элемента.

Обсуждение

Неизвестный
02.03.2010, 21:40
общий
это ответ
Здравствуйте, Питулин Александр Михайлович.
Считаем сумму элементов матрицы, делим на количество элементов, потом сравниваем каждый с полученным средним арифметическим и большие удаляем. Матрица вводится через StringGrid.
Полный проект - здесь, код основной функции - в приложении.
Удачи!

Приложение:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double sr = 0; //среднее арифметическое
try { //блок с предупреждением ошибок
for (int i=0; i<Form1->Matrix->RowCount; i++)
for (int j=0; j<Form1->Matrix->ColCount; j++) //считаем сумму элементов
sr += StrToFloat (Form1->Matrix->Cells [i][j]);
} catch (...) { ShowMessage ("Error in data"); return; } //если возникли ошибки, матрица введена не верно
sr/=(Form1->Matrix->ColCount*Form1->Matrix->RowCount); //получаем среднее
for (int i=0; i<Form1->Matrix->RowCount; i++) //сверяем все значения и обнуляем ненужные
for (int j=0; j<Form1->Matrix->ColCount; j++)
if (StrToFloat (Form1->Matrix->Cells [i][j])>sr)
Form1->Matrix->Cells [i][j] = "0,0";
}
Форма ответа