Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172

Вычисление среднего значение элементов матрицы

15.03.2013, 13:32. Показов 2069. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. При вычислении сред. значения матрицы появляется ошибка -is not a valid integer value (не является допустимым целым значением). Где ошибка не пойму. Если не трудно подскажите. Заранее благодарен. Представляю код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float average=0;
for (int j=0;j<StringGrid1->ColCount;j++)
for (int i=0;i<StringGrid1->RowCount;i++)
average+=StrToFloat(StringGrid1->Cells[j][i]);
average/=StrToInt(StringGrid1->ColCount)*StrToInt(StringGrid1->RowCount);
Label1->Caption=FloatToStr(average);
 
 
 
void __fastcall TForm1::StringGrid1SelectCell(TObject*Sender,int ACol,int ARow,bool&CanSelect)
{
StringGrid1->Cells[ACol][ARow]=Edit3->Text;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2013, 13:32
Ответы с готовыми решениями:

Вычисление среднего арифметического отрицательных элементов матрицы
Помогите, пожалуйста, решить) Очень нужно Дана матрица размером 7*7. Вычисление среднего арифметического отрицательных элементов...

Определение метода (вычисление среднего значения элементов кв. матрицы...)
Люди кому не трудно помогите с прогой: Опредилить класс с методом, который вычисляет среднее значение элементов квадратной...

Вывести количество элементов матрицы, значение которых больше среднего арифметического значения элементов
Помогите пожалуйста с заданием, нужен код программы с применением двумерного массива Тема: «Табличная организация данных. Двумерные...

19
26 / 26 / 0
Регистрация: 30.12.2012
Сообщений: 125
15.03.2013, 13:36
VOVA-74, ну вообще ты делаешь вот так:
Цитата Сообщение от VOVA-74 Посмотреть сообщение
average/=StrToInt(StringGrid1->ColCount)*StrToInt(StringGrid1->RowCount);
То есть ты преобразуешь ее к инт а не к Флоат, а еще лучше укажи конкретно строку, на какую ругается.
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
15.03.2013, 16:39  [ТС]
Извините я везде исправил на StrToFloat, это была у меня ошибка. Нажимаю на RUN идет загрузка и далее выскакивает сообщение is not a valid integer value (не является допустимым целым значением). Конкретно не останавливается на какой-то строке. Бог его знает.
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
15.03.2013, 17:03
Цитата Сообщение от VOVA-74 Посмотреть сообщение
average/=StrToInt(StringGrid1->ColCount)*StrToInt(StringGrid1->RowCount);
ColCount и RowCount уже int
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
23.04.2013, 10:18  [ТС]
Преобразовал код. Однако ошибка -is not a valid integer value (не является допустимым целым значением) все ровно появляется. Высылаю код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    float I,J,s=0;
    for(I  = 0; I < StringGrid1->ColCount;I++)
        StringGrid1->Cells[I][0]="Параметр"+FloatToStr(I);
    for(I=0;I<StringGrid1->RowCount;I++)
        StringGrid1->Cells[0][I]= " " + FloatToStr(I);
    for(J=0;J<StringGrid1->RowCount;J++)
        StringGrid1->Cells[J][I]=FloatToStr(I) + ":" + FloatToStr(J);
    for (float I=0;I<=StringGrid1->ColCount;I++)
        for (float J=0;J<=StringGrid1->RowCount;J++)
            s+=StrToFloat(StringGrid1->Cells[I][J]);
    s/=StrToFloat(StringGrid1->ColCount)*StrToFloat(StringGrid1->RowCount);
 
    Label2->Caption=FloatToStr(s);
}
0
26 / 26 / 0
Регистрация: 30.12.2012
Сообщений: 125
23.04.2013, 10:59
VOVA-74, ругается он у тебя на эту строку :
C++
1
s+=StrToFloat(StringGrid1->Cells[I][J]);
Вообще все логично! Во превых ты перезаполняешь стринг, в нем строк больше, чем видно! Во вторых, ты пытаешься сложить: Параметр1 + число и т д!
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
23.04.2013, 11:19  [ТС]
Да ругается на эту строку. Так в чем может быть ошибка. Бьюсь как рыба об потолок. Все перепробовал. Не пойму? Просто напасть. Пробовал s=StrToFloat(StringGrid1->Cells[I][J]); результат прежний.
0
26 / 26 / 0
Регистрация: 30.12.2012
Сообщений: 125
23.04.2013, 11:22
VOVA-74, ВОт смотри:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
float I,J,s=0;
for(I = 0; I < StringGrid1->ColCount;I++)
StringGrid1->Cells[I][0]="Ïàðàìåòð"+FloatToStr(I);
for(I=0;I<StringGrid1->RowCount;I++)
StringGrid1->Cells[0][I]= " " + FloatToStr(I);
for(J=0;J<StringGrid1->RowCount;J++)
StringGrid1->Cells[J][I]=FloatToStr(I) + ":" + FloatToStr(J);
for (float I=1;I<StringGrid1->ColCount;I++)
for (float J=1;J<StringGrid1->RowCount;J++)
s+=StrToFloat(StringGrid1->Cells[I][J]);
s/=StrToFloat(StringGrid1->ColCount)*StrToFloat(StringGrid1->RowCount);
 
Label2->Caption=FloatToStr(s);
Тут он ругается только в том случае, если в страках пустно, а на 1 столбец/строку не реагирует.

Добавлено через 2 минуты
VOVA-74, ну я же объясняю, в твоем коде он начинает суммировать все ячейки и те, которые не видны! То есть, сначала, он расставляет параметры, потом индексирует, а потом начиная с индексов, захватывая параметры начинает все суммировать, выходит за видимый массив строк, а там 5:0 допустим и ругается то что это не цело численные, ограничивае цикл до просто < он выходит на второй столбец и ругается на то что параметр 1 это не целочисленный тип, разве не логично?

Добавлено через 18 секунд
VOVA-74, я твой код несколько изменил, глянь!
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
23.04.2013, 11:25  [ТС]
Все ровно выдает ошибку.
0
26 / 26 / 0
Регистрация: 30.12.2012
Сообщений: 125
23.04.2013, 11:27
VOVA-74, А ты стринг грид пустым оставил?)
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
23.04.2013, 11:38  [ТС]
Странно делаю матрицу 2 на 5 (два столбца на 5 строк) вычисляется. Делаю 5 на 5 опять выскакивает ошибка.
0
26 / 26 / 0
Регистрация: 30.12.2012
Сообщений: 125
23.04.2013, 11:43
VOVA-74, Та же ошибка?

Добавлено через 1 минуту
VOVA-74, Сделал матрицу 5 на 5, всю заполнил, начал кнопку, ни ошибок ни чего!
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
23.04.2013, 11:54  [ТС]
Да оставил пустым
C++
1
StringGrid1->Cells[0][I]= " " + FloatToStr(I);
для того чтобы шел порядковый номер каждой строки.
0
26 / 26 / 0
Регистрация: 30.12.2012
Сообщений: 125
23.04.2013, 11:57
VOVA-74, Это тут причем?
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
23.04.2013, 12:23  [ТС]
Спасибо все получилось. Хочу с формы вводить количество строк и количество столбцов, а не с инспектора объектов. Модернизировал код посмотрите. Но почему-то снова выдает ошибку is not a valid integer value (не является допустимым целым значением)

C++
1
2
3
4
5
void __fastcall TForm1::StringGrid1Click(TObject *Sender)
{
    StringGrid1->RowCount=StrToFloat(Edit1->Text);
    StringGrid1->ColCount=StrToFloat(Edit2->Text);
}
0
26 / 26 / 0
Регистрация: 30.12.2012
Сообщений: 125
23.04.2013, 12:27
VOVA-74, Я не очень понимаю, у меня он такую ошибку выдает только в одном случае, если в стринг гриде есть хотя бы одно пустое поле!

Добавлено через 55 секунд
VOVA-74, Скажи мне, что это:
C++
1
2
for(J=0;J<StringGrid1->RowCount;J++)
StringGrid1->Cells[J][I]=FloatToStr(I) + ":" + FloatToStr(J);
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
23.04.2013, 14:03  [ТС]
Большое Вам спасибо за помощь.
0
26 / 26 / 0
Регистрация: 30.12.2012
Сообщений: 125
23.04.2013, 14:12
VOVA-74, Не за что)
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
24.04.2013, 10:48  [ТС]
То что вы мне показали это цикл, производится подсчет строк, т.е. считается сумма строк.

Добавлено через 2 минуты
Ошибка у меня была в том, что я не заполнял полностью всё таблицу. Еще раз спасибо за помощь.

Добавлено через 39 минут
Вторая строка
C++
1
StringGrid1->Cells[J][I]=FloatToStr(I) + ":" + FloatToStr(J);
-есть по сути дела координаты вводимого нами числа.
C++
1
for(I=0;I<StringGrid1->RowCount;I++)
- цикл строк, подсчет количество строк.
C++
1
StringGrid1->Cells[0][I]= "ЗАЙЦЫ" + FloatToStr(I);
. Каждую строку я назвал "ЗАЙЦЫ". И в каждой строке будет надпись "ЗАЙЦЫ".
Не подумайте, что я дантаун с берега Мисури. Просто не когда не работал со StringGrid, а спросить не у кого. Ошибка была моя, еще раз извините.
С хорошими пожеланиями. Удачи Вам Graf_N .
0
26 / 26 / 0
Регистрация: 30.12.2012
Сообщений: 125
24.04.2013, 21:55
VOVA-74, Да ничего, рад, что смог помочь, спасибо на добром слове)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2013, 21:55
Помогаю со студенческими работами здесь

Оформить в виде функции вычисление среднего арифметического тех элементов матрицы, значения которых больше Х и меньше Y
ЗадаН массив целого типа А. Оформить в виде функции вычисление среднего арифметического тех элементов матрицы, значения которых больше Х и...

Подсчёт среднего арифметического матрицы, и отклонения от среднего у элементов первой строки
Дана целочисленная матрица. Составить программу подсчёта среднего арифметического значения матрицы. Найти отклонение от среднего у...

Функция: определение среднего значения четных элементов матрицы и минимального среди нечетных элементов матрицы
разработать функцию определения среднего значения парных элементов матрицы и минимального среди нечетных элементов матрицы и с ее помощью...

Найти среднее значение элементов матрицы и указать, в каких элементах значения меньше среднего, а в каких больше
составьте пожалуйста программу задана матрица A размером 4x5. Найдите среднее значение элементов матрицы и указать в каких элементах...

Вычисление среднего арифметического элементов массива (без учета min и max элементов)
Составить программу с использованием массивов и указателей (На C) Составить программу которая вычисляет среднее арифметическое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru