Форум программистов, компьютерный форум, киберфорум
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. Показов 23740. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru