|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.03.2009, 23:21 | #1 |
Регистрация: 31.03.2009
Сообщений: 8
|
Массивы, ввод.вывод через TEdit/TMemo
Задание: Каждый из элементов ti массива Т(т) заменить минимальным среди первых i элементов этого массива.
при этом необходимо кол-во элементов в массиве ввести в TEdit а исходный и результативный массив вывести в TMemo, вот тут и косяк, например вот эта конструкция выдает ошибку: Код:
Последний раз редактировалось rpy3uH; 01.04.2009 в 19:57. |
31.03.2009, 23:41 | #2 |
Форумчанин
Регистрация: 12.05.2007
Сообщений: 373
|
если количество элементов массива нада вводить вручнуюу то нельзя использовать статические массивы:
S:array [0..9] of integer; нужна использовать динамические S:array of integer; дальше после n:= strtoint (ed_input.Text);//ввод эл-тов массива нужно установить длинну массива: SetLength(S, n); и дальше уже так как у вас написано.
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен: "Перемен!Мы ждем перемен!" |
01.04.2009, 00:01 | #3 |
Регистрация: 31.03.2009
Сообщений: 8
|
ясно, спасибо, буду пробовать, только тогда как я думаю нужно два динамических массива - один - исходный - а второй результативный и в процессе цикла их надо будет сравнивать м/д собой?
|
01.04.2009, 00:30 | #4 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Лучше используй TStringGrid. Будет лучше видно, что куда выводится, и что надо сравнивать.
Будь проще и люди к тебе потянутся
|
01.04.2009, 19:27 | #5 |
Регистрация: 31.03.2009
Сообщений: 8
|
сделал все
procedure TMassive.BtndoitClick(Sender: TObject); var S : array of integer; T : array of integer; i,n:integer; Begin n:=strtoint(EdInput.Text);//ввод числа элементов массива SetLength(S,i); SetLength(T,i); for i:= 0 to n-1 do S[i]:=strtoint(Memo1.Lines[0]); T[0]:= S[0]; for i:= 1 to n-1 do if T[i-1] > S[i] then T[i] := S[i] else T[i] := T[i-1]; for i:= 0 to n-1 do Memo2.Lines.Clear;//очистка Memo2 Memo2.Lines.Add(inttostr (T[i])); end; в итоге вылетает ошибка "is not a valid integer Value" Последний раз редактировалось MaksimSeriy; 01.04.2009 в 23:27. |
02.04.2009, 01:04 | #6 | |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 486
|
Цитата:
Нужно записать: SetLength(S,n); SetLength(T,n); В строке S[i]:=strtoint(Memo1.Lines[0]); логическая ошибка. Должно быть S[i]:=strtoint(Memo1.Lines[i]); В коде Код:
Код:
Последний раз редактировалось Jeni; 02.04.2009 в 01:13. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод и вывод | Mihael-Vlz | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 19.01.2009 18:00 |
задать число через TEdit | )Игнат( | Общие вопросы Delphi | 13 | 22.01.2008 19:05 |
Форматированный вывод информации в поле ввода (TEdit или подобные) | vet_coder | Компоненты Delphi | 3 | 13.12.2007 10:55 |