Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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.

 

Date: 2015-06-08; view: 1364; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию