Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Компонент TEdit для ввода одномерных массивовВ Delphi ввод одномерных массивов, кроме использования компонента TStringGrid, можно еще организовать и с использованием компонента TEdit. Зачастую это бывает проще, т.к. не надо дополнительно задавать размерность массива - она получается из подсчета слов в строке TEdit. Алгоритм ввода одномерного массива из строки TEdit состоит в разделении этой строки на отдельные слова, каждое из которых и есть компонент массива. Слова в строке друг от друга отделяются некоторыми разделителями, например, одним или несколькими пробелами - это и позволяет выделить из строки отдельные слова. Заметим, что компонент TEdit удобно использовать для ввода только одномерного массива, для ввода двумерного массива он менее удобен, и в этом случае больше подходит TStringGrid.
Пример написания программы с использованием TEdit Задание: Одномерный массив целых чисел A размерности n вводится из строки TEdit. Найти количество четных положительных элементов массива, и произведение отрицательных элементов. Интерфейс программы приведен на рис. 4.2, а на листинге 4.2 - фрагмент программы (только обработчик TForm1.Button1Click() по аналогии с примером 4.5)
Рис. 4.2. Интерфейс программы
Листинг 4.2 //--------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); // нажатие кнопки Вычислить Var pe, k: integer; s, s1: string; A: array [1..100] of integer; Begin { Ввод массива из строки Edit1 } s:= Edit1.Text; // получаем строку из Edit1 s:= Trim(s); // удаляем пробелы из строки s слева и справа while Pos(' ', s) > 0 do // оставляем по одному пробелу между словами Delete(s, Pos(' ', s), 1); s:= s+' '; // искусственно добавляем один пробел в конец строки n:= 0; // готовим счетчик слов s1:= ''; // готовим вспомогательную строку для слова for i:= 1 to Length(s) do if s[i] = ' ' then begin // если нашли очередное слово, то... n:= n+1; // увеличиваем счетчик слов A[n]:= StrToInt(s1); // преобразуем найденное слово в элемент массива s1:= ''; // очищаем вспомогательную строку - готовим для след.слова End else s1:= s1+s[i]; // иначе продолжаем накапливать символы слова
// показываем введенный массив в Мемо s:='Введенный массив:'+#13#10; s:=s+'Индекс'+#9+'Значение'+#13#10; for i:=1 to n do s:= s+IntToStr(i)+':'+#9+InTtoStr(A[i])+#13#10; Memo1.Text:= s;
{ расчет } k:= 0; pe:= 1; for i:= 1 to n do if (A[i] > 0) and (not odd(A[i])) then k:= k + 1 else if (A[i] < 0) then pe:= pe * A[i];
{ Вывод результата } Memo1.Lines.Add('Количество четных положительных элементов: ' + IntToStr(k)); Memo1.Lines.Add('Произведение отрицательных элементов: ' + IntToStr(pe)); end; //---------------------------------------------------
4.7. Компонент TMemo для ввода/вывода одномерных массивов Многострочный редактор ТМемо также удобно использовать для ввода одномерных массивов. Наиболее просто организовать ввод компонентов массива, располагая по одному числу в каждой строке ТМемо. Компонент TМемо также можно использовать и для ввода двумерного массива, однако алгоритмически это более сложно, чем использование для этих целей компонента TStringGrid.
|