Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ругается на массив с StrToInt, is not a valid 
:(
    Опции темы
Чебуреки
Дата 24.11.2008, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.11.2008

Репутация: нет
Всего: нет



Вообщем нужно было создать двумерный массив неопределенного размера, все компилируется, а когда
жму на кнопку "Вычислить" (exe*шник) он выдает ошибку *is not a valid intoger value*.

Сам код

 int n=h,m=h1;

   int **a=new int*[n]; //создаем массив а
   for(int i=0;i<n;i++)
   a[i]=new int[m];

   int **b=new int*[n]; //создаем массив b
   for(int i=0;i<n;i++)
   b[i]=new int[m];

  String e,c;

  for (int f=1; f<=h-1; f++)
   {
     e = StringGrid1->Cells[f][0]; //считываем элемент из формы значения столбца и присваевыем его элементу e
      a[f][0] = StrToInt(e); // присваевыем элементу массива a только что считанный элемент из формы
                                           переведя его из строкового типа в целый.
      }

user posted image



PM MAIL   Вверх
OutlawZ
Дата 24.11.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



h-1 это откуда в цикле for? если у тебя тока в коде объявлены  int n=h,m=h1;

и вообще зачем гемор такой развел с переменными? когда проще можно было все по отдельности объявить! n=h ????? к целой n присоеденяем код буквы h?  Эх! 

Это сообщение отредактировал(а) OutlawZ - 24.11.2008, 20:15


--------------------
user posted image
user posted image
PM MAIL   Вверх
Чебуреки
Дата 24.11.2008, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.11.2008

Репутация: нет
Всего: нет



это всего лишь фрагмент кода, переменные h1 и h объявлены, меня больше интересует проблема массива, что-то тут с конвертацией из символа в число, где-то несовпадение типов, вот где я найти не магу.
Программа запускается, но выдается ошибка(

Вообщем компилировал каждую строчку, ругается на вот эту

      a[f][0] = StrToInt(e);

В чет тут порблема? Строковая константа переводится к целой, потом присваивается к элементу массива

Как это исправить? Непонятно, может не правильно массив создан, или на так присваиваю.
Какой тут касяк с массивом

Это сообщение отредактировал(а) Чебуреки - 24.11.2008, 20:35
PM MAIL   Вверх
Usper
Дата 24.11.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Такое ощущение, что Вы пытаетесь банально подсунуть функции StrToInt() строку которую нельзя преобразовать в число (скорее всего это даже пустая строка). Судя по скриншоту значение берётся из StringGrid`а с одним столбцом, а в этой строке: e = StringGrid1->Cells[f][0]; цикл идёт по столбцам, а не по строкам. То есть достаточно поменять аргументы местами: e = StringGrid1->Cells[0][f]; 


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
Dmi3ev
Дата 24.11.2008, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



Usper, я с Вами согласен. как-то странно напсано
Цитата

String e,c;

а потом
Цитата

a[f][0] = StrToInt(e); 


Добавлено через 7 минут и 21 секунду
еще вопрос, а почему не писать AnsiString e,c; ??? Вы же в билдере работаете.


--------------------

PM MAIL   Вверх
Usper
Дата 24.11.2008, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Цитата(Чебуреки @  24.11.2008,  20:24 Найти цитируемый пост)
Как это исправить? Непонятно, может не правильно массив создан, или на так присваиваю.Какой тут касяк с массивом


Если есть проблемы с пониманием того как работают указатели, то можно обойтись и без них, например так:
Код


#include <vector>

typedef std::vector <int> TArray; 
std::vector <TArray> Array (10); //объявлем вектор векторов из 10 элементов (матрица 10x0 элементов)
for(int count=0; count<Array.size(); count++)
    Array[count].resize(10);   //увеличиваем матрицу до размера  10х10
for(int count=0; count<Array.size(); count++)
    for(int count2=0; count2<Array[count].size(); count2++)
        Array[count][count2]=count*10+count2; //заполняем матрицу числами от 0 до 99
for(int count=0; count<Array.size(); count++)
    for(int count2=0; count2<Array[count].size(); count2++)
        StringGrid1->Cells[count2][count]=IntToStr(Array[count][count2]); // выводим матрицу в StringGrid






Это сообщение отредактировал(а) Usper - 24.11.2008, 21:53


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
Чебуреки
Дата 24.11.2008, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.11.2008

Репутация: нет
Всего: нет



Usper Спасибо smile  просветлился, а то непонятные строки были написаны)


Вообщем не понятно в чем была ошибка, написал новый код, все правильно запрашивает и выводит.
Все таки наверно намудрил с индексами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.