С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/128: Рейтинг темы: голосов - 128, средняя оценка - 4.84
0 / 0 / 1
Регистрация: 03.07.2009
Сообщений: 56

Ошибка is not a valid integer value

05.07.2009, 11:44. Показов 23678. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прога должна создать массив, а затем вывести сумму всех отрицательных элементов. При запуске программы выводиться сообщение об ошибке "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)
{
int s,I, J, K, d;
  s=0;
  K = 0;
  for (I = 0; I < StringGrid1->ColCount; I++)
    for (J = 0; J < StringGrid1->RowCount; J++)
      StringGrid1->Cells[I][J] = IntToStr(-I+6);
      d=StrToInt(StringGrid1->Cells[I][J]);
    if(d<0)
    {s=d+s;
    }
    Edit1->Text=s;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.07.2009, 11:44
Ответы с готовыми решениями:

Ошибка: '' is not a valid integer value
Подскажите пожалуйста при вводе в memo чисел выдает ошибка Задание такое: Упорядочить массив из 10 действительных чисел по...

Ошибка 'is not a valid integer value'
Нужно перемножить каждый элемент строки квадратной матрицы на элемент одномерного массива, соответствующего по номеру строке матрицы, и...

Ошибка is not a valid integer value
выскакивает ошибка такого же типа! помогите кто нибудь. AnsiString otv; int row, col; AnsiString vopros; char c; otv =...

18
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.07.2009, 11:47
можно использовать try{}catch(...){} в том месте, где идет конвертация данных, а еще можно оттрасировать код, чтобы узнать где у вас попадают нечисловые значения
0
0 / 0 / 1
Регистрация: 03.07.2009
Сообщений: 56
05.07.2009, 11:50  [ТС]
а можно поподробнее о try{}catch(...){} , а также про трассировку кода!!!
0
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
05.07.2009, 11:51
C++
1
2
3
4
for (I = 0; I < StringGrid1->ColCount; I++)
    for (J = 0; J < StringGrid1->RowCount; J++)
      StringGrid1->Cells[i][J] = IntToStr(-I+6);
      d=StrToInt(StringGrid1->Cells[i][J]);
Ошибка не с этим свзана, но описана перемменная I, а ты пишешь Cells[i][J], помойму нужно Cells[I][J]
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.07.2009, 11:52
LesnikZar, трассировка - пошаговое исполнение кода, часто используется для поиска ошибок
конструкция try catch - используется для перехвата исключений, а вообще обо всем этом и много другом мы можете прочитать в мануале билдера

Falen, ИМХО, это он сюда ошибочный код выложил, иначе компилятор не дал ему бы запустить код такой
0
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
05.07.2009, 11:58
Ой сорри это баг в сообщениях, не прописывается большая "и"

Добавлено через 5 минут 2 секунды
Цитата Сообщение от VoodooMan Посмотреть сообщение

Falen, ИМХО, это он сюда ошибочный код выложил, иначе компилятор не дал ему бы запустить код такой

Неа=) это баг на сайте помойму, в таких скобках [] буква i пишеться только маленькой=)
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.07.2009, 12:15
C++
1
2
3
4
  for (I = 0; I < StringGrid1->ColCount; I++)
    for (J = 0; J < StringGrid1->RowCount; J++)
      StringGrid1->Cells[I][J] = IntToStr(-I+6);
      d=StrToInt(StringGrid1->Cells[I][J]);
Вот этот фрагмент кода на самом деле есть эквивалент (из-за отсутсвия фигурных скобок)

C++
1
2
3
4
5
6
  for (I = 0; I < StringGrid1->ColCount; I++)
    for (J = 0; J < StringGrid1->RowCount; J++)
      {
        StringGrid1->Cells[I][J] = IntToStr(-I+6);
      }
  d=StrToInt(StringGrid1->Cells[I][J]);
По окончании работы циклов переменные i и j имеют значенияЮ выходящие за границу размерностей таблицы, а потому в при последующем чтении StringGrid1->Cells[I][J] ты выходишь за границы элементов таблицы, что и даёт такую ошибку в момент исполнения. Расставь фигурные скобки там, где они должны быть и будет тебе счастье
0
0 / 0 / 1
Регистрация: 03.07.2009
Сообщений: 56
05.07.2009, 12:27  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
C++
1
2
3
4
  for (I = 0; I < StringGrid1->ColCount; I++)
    for (J = 0; J < StringGrid1->RowCount; J++)
      StringGrid1->Cells[I][J] = IntToStr(-I+6);
      d=StrToInt(StringGrid1->Cells[I][J]);
Вот этот фрагмент кода на самом деле есть эквивалент (из-за отсутсвия фигурных скобок)

C++
1
2
3
4
5
6
  for (I = 0; I < StringGrid1->ColCount; I++)
    for (J = 0; J < StringGrid1->RowCount; J++)
      {
        StringGrid1->Cells[I][J] = IntToStr(-I+6);
      }
  d=StrToInt(StringGrid1->Cells[I][J]);
По окончании работы циклов переменные i и j имеют значенияЮ выходящие за границу размерностей таблицы, а потому в при последующем чтении StringGrid1->Cells[I][J] ты выходишь за границы элементов таблицы, что и даёт такую ошибку в момент исполнения. Расставь фигурные скобки там, где они должны быть и будет тебе счастье

Поставил скобки как надо, но все равно выдает ту же ошибку!!!

Добавлено через 2 минуты 12 секунд
VoodooMan, почитал про try catch...Никак не могу разобраться с синтаксисом. Помоги пожалста!!!
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.07.2009, 12:31
C++
1
2
3
4
5
6
7
8
for (I = 0; I < StringGrid1->ColCount; I++)
    for (J = 0; J < StringGrid1->RowCount; J++)
      {
        try{
          StringGrid1->Cells[i][J] = IntToStr(-I+6);
          d=StrToInt(StringGrid1->Cells[i][J]);
        }catch(...){}
      }
а вообще у вас есть в матрице нечисловые значения? на какой итерации вылетает?
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.07.2009, 12:35
C++
1
catch(...){ /* вот здесь распечатай значений i и j */ }
1
0 / 0 / 1
Регистрация: 03.07.2009
Сообщений: 56
05.07.2009, 12:40  [ТС]
большое спасибо, заработало!!!


Добавлено через 2 минуты 2 секунды
Цитата Сообщение от Evg Посмотреть сообщение
C++
1
catch(...){ /* вот здесь распечатай значений i и j */ }
что означает троеточие в скобках? что можно поставить вместо троеточия?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.07.2009, 12:49
Цитата Сообщение от LesnikZar Посмотреть сообщение
большое спасибо, заработало!!!
А ошибка-то в чём?

Цитата Сообщение от LesnikZar Посмотреть сообщение
что означает троеточие в скобках? что можно поставить вместо троеточия?
Нужно ставить троеточие. Это означает, что нужно ловить исключения всех типов. Если у тебя заработало при добавлении try-catch, всё-таки разберись, на какой ячейке возникло исключение (ибо должно работать без этого). Исключение возникнет тогда, если у тебя в ячейке записано НЕ число (буквы или не записано вообще ничего)
1
0 / 0 / 1
Регистрация: 03.07.2009
Сообщений: 56
05.07.2009, 13:12  [ТС]
Немного изменил прогу, чтобы массив был из случайных чисел....Но получается упорядоченный массив...Почему так? Что нужно изменить, чтобы числа в массиве располагались хаотично?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int s,I, J, K, d;
  randomize();
  K=-40+rand() % 40;
  s=0;
 ;
  for (I = 0; I < StringGrid1->ColCount; I++)
    for (J = 0; J < StringGrid1->RowCount; J++)
 
 
       {
        try
        {
          StringGrid1->Cells[I][J] = IntToStr(++K);
          d=StrToInt(StringGrid1->Cells[I][J]);
        }catch(...){}
 
      if (d<0)
      {s=d+s;
      }
      }
 
 Edit1->Text=s;
}
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.07.2009, 13:38
Ты рандомно определяешь только начальное значение K, а затем последовательно все элементы инициализируешь через ++K. А ранодом нужен там, где идёт инициализация элементов
0
0 / 0 / 1
Регистрация: 03.07.2009
Сообщений: 56
05.07.2009, 14:04  [ТС]
Спасибо большое!!! Разобрался!!!
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.07.2009, 14:28
Я бы не сказал, что ты ошибку исправил. Ты её просто заткнул, но причины возникновения ошибки так и не выяснил.

Добавлено через 30 секунд
Я имею ввиду первоначальную постановку вопроса
0
0 / 0 / 1
Регистрация: 03.07.2009
Сообщений: 56
05.07.2009, 18:28  [ТС]
Ну да, можно и так сказать!!!
0
 Аватар для MoZiLa
0 / 0 / 0
Регистрация: 12.06.2010
Сообщений: 8
12.06.2010, 19:11
выскакивает ошибка такого же типа!
помогите кто нибудь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
       AnsiString otv;
       int row, col;
       AnsiString vopros;
       char c;      
 
      otv = BitBtn1->Caption;
 
      vopros = Label1->Caption;
 
      row=StrToInt(user->biletLabel->Caption);
      col=StrToInt(vopros);
      StringGrid1->RowCount=StrToInt(user->biletLabel->Caption);
      StringGrid1->ColCount=StrToInt(vopros);
      StringGrid1->Cells[row][col]=c;
      if(c==StrToInt(otv))
      {
      Label22->Caption="правильно!";
      }
0
 Аватар для FiliH
40 / 39 / 4
Регистрация: 22.03.2010
Сообщений: 100
13.06.2010, 01:13
А так пашет:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int s,I, J, K, d;
  s=0;
  K = 0;
  for (I = 0; I <= StringGrid1->ColCount-1; I++)
    for (J = 0; J <= StringGrid1->RowCount-1; J++){
      StringGrid1->Cells[I][J] = FloatToStr(-I+6);
      d=StrToFloat(StringGrid1->Cells[I][J]);
   if(d<0){
      s+= d;
    }
    }
    Edit1->Text=s;
Долго пишу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2010, 01:13
Помогаю со студенческими работами здесь

Ошибка [Is not a valid integer\floating value]
Добрый день форумчане. Необходимо преобразовать в переменную типа int\float значение строки 150.00 Если записать в строке через...

Ошибка конвертирования: is not a valid integer value
бьет ошибку is not a valid integer value, но не показывает где пошагаво не помогает найти! Помогите плз ...

Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

Не выводит 2 Shape на форму, ошибка в функции - " is not valid integer value
Есть функция: double readCoord(UnicodeString iskomoe, String coord) { String whatFind = coord + &quot;=&quot;; int startPos =...

Ошибка: '' is not a valid integer value
Вот какая ошибка First chance exception at $753FD36F. Exception class EConvertError with message ''' is not a valid integer value'....


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru