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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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) thenpe := pe * A[i];

 

{ Вывод результата}

Memo1.Lines.Add('Количество четных положительных элементов: ' + IntToStr(k));

Memo1.Lines.Add('Произведение отрицательных элементов: ' + IntToStr(pe));

end;

//---------------------------------------------------

 

 

4.7. Компонент TMemo для ввода/вывода одномерных массивов

Многострочный редактор ТМемотакже удобно использовать для ввода одномерных массивов. Наиболее просто организовать ввод компонентов массива, располагая по одному числу в каждой строке ТМемо.

Компонент TМемо также можно использовать и для ввода двумерного массива, однако алгоритмически это более сложно, чем использование для этих целей компонента TStringGrid.

 






Date: 2015-06-08; view: 367; Нарушение авторских прав

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