Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2014, 17:17   #1
zhurus1
Новичок
Джуниор
 
Регистрация: 02.05.2014
Сообщений: 1
Печаль Помогите с массивами

Есть задание: вручную ввести двумерный массив (в memo). Мне нужно вывести его в поле Label. Вводим в поля ввода размерность массива. При запуске может вывести массив, а может сказать Access violation at adress... или '' is not a valid floating point value.
Вот модуль:

Код:
label1.Caption:='';
i:=-1;
setlength(mx,strtoint(labelededit1.Text));
 repeat
   inc(i);
   setlength(mx[i],strtoint(labelededit2.Text));
   s:=memo1.Lines[i];
   k:=0;
   j:=0; //отсчет от нуля
   repeat
    inc(k);
    r:='';
    while (s[k]<>#32) do
     begin
      r:=r+s[k];
      k:=k+1;
     end;
    Mx[i,j]:=strtofloat(r);
    j:=j+1;
    until (j>high(mx[i]));
until (i>(high(mx)-1));
for i:=0 to high(mx) do
 begin
 for j:=0 to high(mx[i]) do
  label1.Caption:=label1.Caption+floattostr(Mx[i,j])+#9;
 label1.caption:=label1.caption+#13;
 end;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.


Помогите найти проблему. Заранее спасибо!

Последний раз редактировалось Serge_Bliznykov; 02.05.2014 в 18:16.
zhurus1 вне форума Ответить с цитированием
Старый 02.05.2014, 19:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Полагаю стоит так:
Код:
var w,h:integer;
...
label1.Caption:='';
if Trystrtoint(labelededit1.Text,h) and Trystrtoint(labelededit2.Text,w) then
 setlength(mx,h,w);
end else begin
 ShowMessage('WTF'); exit;
end;

i:=Low(mx);
 repeat
   inc(i);
   s:=memo1.Lines[i];
   k:=0;
   j:=low(mx[i]); //отсчет от нуля
   repeat
    inc(k);
    r:='';
    while (s[k]<>#32) do
     begin
      r:=r+s[k];
      k:=k+1;
     end;
    if not Trystrtofloat(r,mx[i,j]) then begin ShowMessage('WTF-2'); exit;  end;
    j:=j+1;
    until (j>=high(mx[i]));
until (i>=high(mx));

for i:=Low(mx) to high(mx) do
 begin
 for j:=Low(mx[i]) to high(mx[i]) do
  label1.Caption:=label1.Caption+floattostr(Mx[i,j])+#9;
 label1.caption:=label1.caption+#13;
 end;
Хотя мне не понятно зачем из Мемо данные в массив извлекать...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с массивами (с++) dima95 Помощь студентам 2 10.12.2013 22:59
помогите с массивами lg12 Помощь студентам 8 03.08.2009 12:27
помогите с массивами lg12 Помощь студентам 7 11.07.2009 11:43
Помогите с массивами Юль_кА Паскаль, Turbo Pascal, PascalABC.NET 2 10.04.2008 08:39