Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Stringgrid и массивы, мдя 
V
    Опции темы
Palladin
Дата 18.6.2006, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



Вообщем дан сттринггрид и двумерный массив(квадратная матрица), в стринггрид воожу числа а потом мне нужно соответственно записать его в масив чисел, что я и делаю:

Код

procedure TForm1.Button2Click(Sender: TObject);
var
a,b: array [1..100,1..100] of real;
i,n,j:integer;
begin
n:=strtoint(edit1.text);//размерность
for i:=1 to N do
for j:=1 to n do
a[i,j]:=strtofloat(stringgrid1.cells[i,j]);
........
end;
  

Но массив не создаётся почемуто не считываются какието символы, при начале работы прога даёт ошибку: 
Project1.exe raised exception class EConvertError with '' is not a vaild floating point value 


Помогите считать из стринггрида информацию и занести её в мой массив, в стринггрид вводятся числа как целые так и с плавающей точко(дробные), почемуто не заносятся числа из стринггрида в массив, вроде всё правильно но что-то не тоsmile(( 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Albinos_x
Дата 18.6.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Код
...
procedure TForm1.Button2Click(Sender: TObject);    
var    
a,b: array [1..100,1..100] of real;    
i,n,j:integer;    
begin    
if Edit1.Text='' then exit;
n:=strtoint(edit1.text);//размерность    
for i:=1 to N do    
   for j:=1 to n do    
      if stringgrid1.cells[j,i]<>'' then
         a[i,j]:=strtofloat(stringgrid1.cells[j,i])
         else
         a[i,j]:=0;    
........    
end;
...
 


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Palladin
Дата 19.6.2006, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



Да та же самая ошибка, во первых исчесления должны начинатся с нуля я в том примере смомрозил т.к. в стринггриде первая ячейка имеет номер [0,0]!!!!!! Просто немогу понять вот лёгкий пример который показывает что это не верно, я так тоже делал и не выходит поэтому и спрашиваю, вот код который показывает что это не верно

Код

procedure TForm1.Button2Click(Sender: TObject);
var
a,b: array [1..100,1..100] of real;
i,n,j:integer;
begin
if Edit1.Text='' then exit;
n:=strtoint(edit1.text);//ðàçìåðíîñòü
for i:=0 to N-1 do
for j:=0 to n-1 do
begin
if stringgrid1.cells[j,i]<>'' then
begin
a[i,j]:=strtofloat(stringgrid1.cells[i,j]);
stringgrid2.Cells[i,j]:=floattostr(a[i,j]);
end
else
a[i,j]:=0;
end;

 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Albinos_x
Дата 19.6.2006, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



RooR, ну так stringgrid если у тебя с нуля, то массив-то с 1 начинается

Добавлено @ 00:13 
тогда уж:
Код
...
procedure TForm1.Button2Click(Sender: TObject);    
var    
a,b: array [1..100,1..100] of real;    
i,n,j:integer;    
begin    
if Edit1.Text='' then exit;    
n:=strtoint(edit1.text);    
for i:=0 to N-1 do    
   for j:=0 to n-1 do    
      begin    
      if stringgrid1.cells[i,j]<>'' then    
         a[i+1,j+1]:=strtofloat(stringgrid1.cells[i,j])    
         else    
         a[i+1,j+1]:=0;    
     end;
end;
...
    

Это сообщение отредактировал(а) Albinos_x - 19.6.2006, 00:26


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Guedda
Дата 19.6.2006, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


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

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



Просто напросто ты объявляешь массив с 1 элемента, а перебор идет с нулевого. Так что необходимо сделать так:
Код

procedure TForm1.Button2Click(Sender: TObject);
var
a,b: array [0..100,0..100] of real; //Здесь необходимо единички заменить на нолики
i,n,j:integer;
begin
if Edit1.Text='' then exit;
n:=strtoint(edit1.text);//Размерность
for i:=0 to N-1 do
for j:=0 to n-1 do
begin
if stringgrid1.cells[j,i]<>'' then
begin
a[i,j]:=strtofloat(stringgrid1.cells[i,j]);
stringgrid2.Cells[i,j]:=floattostr(a[i,j]);
end
else
a[i,j]:=0;
end;
 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Albinos_x
Дата 19.6.2006, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Цитата(Albinos_x @  19.6.2006,  00:11 Найти цитируемый пост)
тогда уж:

или как написал Guedda

Добавлено @ 00:19 
плюс к этому у тебя в коде опечатка:
Цитата(RooR @  19.6.2006,  00:04 Найти цитируемый пост)
cells[j,i]<>''

Цитата(RooR @  19.6.2006,  00:04 Найти цитируемый пост)
strtofloat(stringgrid1.cells[i,j])

проверяешб одну ячейку а читаешь другую... 


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Yanis
Дата 19.6.2006, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

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



RooR
Конечно... Массив то у тебя индексируется начиная с 1, а в StringGrid с 0. Измени деклэйр на 
Код
a,b: array [0..100,0..100] of real;


P. S. Скажу что твой способ не совсем рационален. Но если этого требует задача...

Добавлено @ 00:20 
Ой. Опоздал smile 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Palladin
Дата 19.6.2006, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



[censored 2] как я мог забыть, я ж говорил что что-то наморозил, знал же что ошибка какаята лоховая, сенкс мужики который раз выручили былоб 100 сообщений кинул бы по плюсуsmile smile  smile  smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Albinos_x
Дата 19.6.2006, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Цитата(Yanis @  19.6.2006,  00:19 Найти цитируемый пост)
P. S. Скажу что твой способ не совсем рационален. Но если этого требует задача..

логичней было бы сделать через динамический массив... 


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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