![]() |
|
#1
|
|||
|
|||
![]() Ребята, помогите пожалуйста, необходимо создать таблицу (min5x5) которая заполнялась бы 0 и 1 (с клавиатуры) и расширялась бы при изменении длины строки.Пример(по шагам):1)10100,010101 2)101000,010101
|
#2
|
|||
|
|||
![]() Ничего не понятно. Давай по шагам.
Ты в строке ввода указываешь некоторую последовательность 0 и 1. Что там делает запятая? Разделяет строки? Т.е. ты указываешь массив в виде "строка1, строка2, строка3,..."? Тогда сначала бъем на строки, потом считаем макс. длинну строки и образмериваем динамический массив. Ну а уже запихать в него данные дело простое. |
#3
|
|||
|
|||
![]() Я имел ввиду: вводим 1-ую строку 10100, затем 2-ую 010101 - при этом в 1-ой стоке в 6-ую позицию должен добавиться 0 и т.д.,т.е. все строки должны быть раны max? но с 0 в недостающих позициях.
|
#4
|
|||
|
|||
![]() Ну тоже легко. Это не меняет принципа.
только тогда проще вводить все в Memo сразу все строки, чем реализовывать такой метод ввода. Вводим все в Memo. Потом вот таким кодом "добиваем" нулями: Код:
var I : Integer; MaxLen : Integer; begin MaxLen := 0; For I := 0 To Memo1.Lines.Count-1 Do If Length(Memo1.Lines[i]) > MaxLen Then MaxLen := Length(Memo1.Lines[i]); For I := 0 to Memo1.Lines.Count-1 Do While Length(Memo1.Lines[i]) < MaxLen Do Memo1.Lines[i] := Memo1.Lines[i] + '0'; end; конечно, это не оптимально, надо бы сначала строчку скопировать в буфер и работать там, но так понятнее. Ну а матрицу (массив) уже там легко образмерить и заполнить. только помни, что индексы матрицы и Memo начинаются с 0, а номера символов в строке - с 1. |
#5
|
|||
|
|||
![]() Извините, а не подскажете как это всё-таки сделать с помощью StringGrid, а то предполагается добавление еще 1-го столбца (с числами в диапазоне [0;1](возможно сразу при вводе)) и сортировка по нему по убыванию.
|