Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
2 / 1 / 0
Регистрация: 07.10.2018
Сообщений: 172

Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка

07.10.2018, 14:34. Показов 9109. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n,m,**ary;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int n=3;int m=3;
StringGrid1->RowCount=n+1;
StringGrid1->ColCount=m+1;
  for (int i=1; i<=n; i++){
    StringGrid1->Cells[i][0]="m="+IntToStr(i);
    StringGrid1->Cells[0][i]="n="+IntToStr(i);
    }        
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int imax=0,jmax=0,i,j,n=3,m=3;
 int** ary = new int*[n];
  for(i=0; i<n; i++) {
   ary[i] = new int[m];
   }
 
for(i=0; i<n; i++)
 for(j=0; j<m; j++)
  ary[i][j]=StrToInt(StringGrid1->Cells[j+1][i+1]);
 
for(i=0; i<n; i++)
 for(j=0; j<m; j++)
  if (ary[i][j]>ary[imax][jmax]){
   imax=i;
   jmax=j;
   }
 
for (i=0; i<n; i++)
  for (j=jmax; j<m-1; j++) ary[i][j]=ary[i][j+1];
   m--;
for (j=0; j<m; j++)
  for (i=imax; i<n-1; i++) ary[i][j]=ary[i+1][j];
   n--;
 
for(int i=0; i<StringGrid1->ColCount; i++)
  for(int j=0; j<StringGrid1->RowCount; j++)
   StringGrid1->Cells[j+1][i+1] = "";
 
for(int i=0; i<n; i++)
  for(int j=0; j<m; j++)
   StringGrid1->Cells[j+1][i+1] = IntToStr(ary[i][j]);
 
for (int i=0; i<n; i++)
  delete []ary[i];
    delete []ary;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if (Edit1->Text=="") return;
  n=StrToInt(Edit1->Text);
  StringGrid1->RowCount=n;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2Change(TObject *Sender)
{
if (Edit2->Text=="") return;
  m=StrToInt(Edit2->Text);
  StringGrid1->ColCount=m;
}
//---------------------------------------------------------------------------
Миниатюры
Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2018, 14:34
Ответы с готовыми решениями:

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

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

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

23
 Аватар для Скиф 90
12 / 10 / 5
Регистрация: 07.10.2018
Сообщений: 40
07.10.2018, 15:09
Лучший ответ Сообщение было отмечено nick42 как решение

Решение

Цитата Сообщение от Фазли Посмотреть сообщение
не понимаю в чем ошибка
У вас в 41-й строке попытка получить значение для массива, преобразуя строку из ячейки таблицы в число. А таблица, как видим, пустая. Можно, хотя и не вполне корректно, заменить эту строку на такую-
C++
1
ary[i][j]= StringGrid1->Cells[j+1][i+1].ToIntDef(0);
В этом случае при невозможности преобразовать строку из ячейки в число, подставляется ноль без сообщения об ошибке.
0
2 / 1 / 0
Регистрация: 07.10.2018
Сообщений: 172
07.10.2018, 15:26  [ТС]
таблица заполняется не вся, а только 2 на 2, нулями!

Добавлено через 12 минут
и еще вопросик: где лучше показать результат этого задания?
Задание: Из матрицы размером n получить матрицу размером n-1 путем удаления строки и столбца, на пересечении которых расположен элемент с наибольшим по модулю значением.
0
 Аватар для Скиф 90
12 / 10 / 5
Регистрация: 07.10.2018
Сообщений: 40
07.10.2018, 15:30
Цитата Сообщение от Фазли Посмотреть сообщение
где лучше показать результат этого задания?
Я думаю, для наглядности лучше использовать две таблицы; результат можно сразу сравнить с исходными данными.
0
2 / 1 / 0
Регистрация: 07.10.2018
Сообщений: 172
07.10.2018, 15:35  [ТС]
так таблицу нужно заполнить всю и желательно разными числами как это сделать?
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,395
Записей в блоге: 3
07.10.2018, 15:35
Цитата Сообщение от Фазли Посмотреть сообщение
таблица заполняется не вся, а только 2 на 2, нулями!
Дык она, таблица. то есть, вообще нигде не заполняется!!! А если ее пользователь должен руками заполнять - то тогда сами, будьте любезны, проверять правильность заполнения... Учтите, что пользователь может заполнить не все ячейки - отсюда и получите вот такую ошибку...
0
 Аватар для Скиф 90
12 / 10 / 5
Регистрация: 07.10.2018
Сообщений: 40
07.10.2018, 15:43
Цитата Сообщение от Фазли Посмотреть сообщение
таблицу нужно заполнить всю и желательно разными числами как это сделать?
Прежде всего в инспекторе объектов в опциях StringGrid goEditing перевести из false в true, чтоб можно было вводить данные. И на событие KeyPress поставить свою фильтрацию (чтоб только цифры позволялись) было бы желательно.

Добавлено через 4 минуты
П.С. это для "вручную". Иначе - в цикле рандомными значениями.
0
2 / 1 / 0
Регистрация: 07.10.2018
Сообщений: 172
07.10.2018, 15:44  [ТС]
а где события KeyPress?
0
 Аватар для Скиф 90
12 / 10 / 5
Регистрация: 07.10.2018
Сообщений: 40
07.10.2018, 15:48
В Инспекторе объектов OnKeyPress - двойной клик и появится заготовка.

Не по теме:

Дорогие модераторы, меня задолбала неубираемая панель "Узнать стоимость написания работы" и т.д. Это я вирус подцепил, или такой "ненавязчивый сервис" на вашем форуме?

0
2 / 1 / 0
Регистрация: 07.10.2018
Сообщений: 172
07.10.2018, 15:50  [ТС]
в ней что нибудь надо заполнять?
0
 Аватар для Скиф 90
12 / 10 / 5
Регистрация: 07.10.2018
Сообщений: 40
07.10.2018, 15:54
("в ней что нибудь надо заполнять?..") - думаю, вы не про свою таблицу так спросили? Если о "заготовке", то можете, например, вписать такую строчку:
C++
1
2
3
4
void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &Key)
{
     if(isalpha(Key)) Key=0;   
}
Это не даст ввести в поле таблицы какое-нибудь ругательное слово, - только цифры, знаки препинания, пробел.
0
2 / 1 / 0
Регистрация: 07.10.2018
Сообщений: 172
07.10.2018, 15:57  [ТС]
воот ввел, а свое задание так и не знаю как реализовать.
0
 Аватар для Скиф 90
12 / 10 / 5
Регистрация: 07.10.2018
Сообщений: 40
07.10.2018, 16:00
Наверное, найти для начала x и y - координаты ячейки, в которой максимальное число. Для этого двойным циклом просканировать таблицу, сравнивая очередную величину с временным образцом.
0
2 / 1 / 0
Регистрация: 07.10.2018
Сообщений: 172
07.10.2018, 16:02  [ТС]
можно это в исходном коде или где то поправить можно?)
0
 Аватар для Скиф 90
12 / 10 / 5
Регистрация: 07.10.2018
Сообщений: 40
07.10.2018, 16:18
Лучший ответ Сообщение было отмечено Фазли как решение

Решение

Я б вашу задачу так решал... - на форме две таблицы, трэк-бар, задающий размерность матрицы (она у вас квадратная, как я понял), ну и кнопки исполнительные. Почему трэк-бар? у него есть ограничители минимума и максимума (мало ли чего пользователь в эдит введёт...). Потом по нажатию кнопки первая таблица заполняется случайными значениями (тоже желательно задаться ограничительными значениями). По другой кнопке ищется максимальное число в таблице и затем ячейки первой таблицы переносятся во вторую таблицу, исключая те ячейки, в координатах которых присутствует какая-либо из координат найденной максимальной ячейки. Размерность второй таблицы, естественно, на 1 меньше первой.
Это в общих чертах. Ничего особо сложного.
1
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,395
Записей в блоге: 3
08.10.2018, 06:50

Не по теме:

Цитата Сообщение от Скиф 90 Посмотреть сообщение
Дорогие модераторы, меня задолбала неубираемая панель "Узнать стоимость написания работы" и т.д. Это я вирус подцепил, или такой "ненавязчивый сервис" на вашем форуме?
Скиф 90, можете скрин прицепить? никакого такого "сервиса" не наблюдается?


Добавлено через 58 секунд
Цитата Сообщение от Скиф 90 Посмотреть сообщение
Почему трэк-бар?
Вот именно: почему он? Почему не SpinEdit?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
08.10.2018, 08:23
А чем плох трэк-бар? А вот CSpinEdit требует корректировки опции компилятора Disable inline expansions (в ранних версиях Билдера), что для малоопытного ТС, как я понимаю, создаст дополнительные заботы. Да и ручной ввод в его поле цифр тоже несколько кривовато устроен. Так по крайней мере на моем Builder'е 5 версии. Может, конечно, в RAD-студии это все исправили... .
0
 Аватар для Скиф 90
12 / 10 / 5
Регистрация: 07.10.2018
Сообщений: 40
08.10.2018, 10:23
Цитата Сообщение от D1973 Посмотреть сообщение
Скиф 90, можете скрин прицепить?
Пожалуйста
Миниатюры
Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка  
0
2 / 1 / 0
Регистрация: 07.10.2018
Сообщений: 172
08.10.2018, 11:03  [ТС]
Вот решил своё задание!
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n,m,**ary;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int n=3;int m=3;
StringGrid1->RowCount=n+1;
StringGrid1->ColCount=m+1;
  for (int i=1; i<=n; i++){
    StringGrid1->Cells[i][0]="m="+IntToStr(i);
    StringGrid1->Cells[0][i]="n="+IntToStr(i);
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int imax=0,jmax=0,i,j,n=3,m=3;
 int** ary = new int*[n];
  for(i=0; i<n; i++) {
   ary[i] = new int[m];
   }
 
for(i=0; i<n; i++)
 for(j=0; j<m; j++)
  ary[i][j]= StringGrid1->Cells[j+1][i+1].ToIntDef(0);
 
 
for(i=0; i<n; i++)
 for(j=0; j<m; j++)
  if (ary[i][j]>ary[imax][jmax]){
   imax=i;
   jmax=j;
   }
 
for (i=0; i<n; i++)
  for (j=jmax; j<m-1; j++) ary[i][j]=ary[i][j+1];
   m--;
for (j=0; j<m; j++)
  for (i=imax; i<n-1; i++) ary[i][j]=ary[i+1][j];
   n--;
 
for(int i=0; i<StringGrid1->ColCount; i++)
  for(int j=0; j<StringGrid1->RowCount; j++)
   StringGrid1->Cells[j+1][i+1] = "";
 
for(int i=0; i<n; i++)
  for(int j=0; j<m; j++)
   StringGrid2->Cells[j+1][i+1] = IntToStr(ary[i][j]);
 
for (int i=0; i<n; i++)
  delete []ary[i];
    delete []ary;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if (Edit1->Text=="") return;
  n=StrToInt(Edit1->Text);
  StringGrid1->RowCount=n;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2Change(TObject *Sender)
{
if (Edit2->Text=="") return;
  m=StrToInt(Edit2->Text);
  StringGrid1->ColCount=m;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &Key)
{
if(isalpha(Key)) Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
      ShowMessage("Память освобождена!");
      Close();
 
}
//-------------
--------------------------------------------------------------
Миниатюры
Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка   Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка  
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,395
Записей в блоге: 3
08.10.2018, 12:39
Скиф 90, ну, однако, это Ваша беда... Нет тут на форуме ничего подобного... Смотрите в браузере, какие надстройки нацеплялись...
Цитата Сообщение от nick42 Посмотреть сообщение
А вот CSpinEdit требует...
Ну да, про это я что-то забыл... В RAD Studio - там их теперь два: TCSpinEdit, который ведет себя точно так же, как и встарь, и TSpinEdit - вполне так себе адекватная штука для ввода чисел... Кроме того, есть еще связка Edit + UpDown...
Цитата Сообщение от nick42 Посмотреть сообщение
А чем плох трэк-бар?

Не по теме:

Ой, ну там же в этот ползунок мышом еще попасть надо, а когда руки дрожат - то мучение, прямо...


Да ничем не плох - тоже, как говорится, вариант...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2018, 12:39
Помогаю со студенческими работами здесь

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

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

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

ошибка is not valid integer value
procedure TForm3.FormShow(Sender: TObject); begin lbl1.Caption:=Form2.Label2.Caption; //Form3.Position:= poDeskTopCenter; ...

Ошибка: '' Is not valid integer value
Программа меняет все значения, со знаком (=), в порядке убывания. А когда ввожу без знака ( = ) то возникает ошибка. И вот вопрос:...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru