Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пример 5.1. Нахождение значения и номера максимального элемента одномерного массива



Описание переменных:

Имя Структура Тип Семантика
n a max imax простая массив простая простая целый целый целый целый количество элементов массива заданный массив максимальный элемент номер максимального элемента

Для решения данной задачи используется функция GetSubStr(st:string;n:integer):string для выделения подстроки из строки. Данная функция размещается в разделе I mplementation модуля формы Unit1. Т.к. вводимые элементы массива записываются в поле редактора Edit2, то функция Getsubstr будет выделять символы в строке Edit2 до пробела, т.е. цифры числа очередного элемента массива.

function GetSubStr(st:string;n:integer):string;

var i,p:integer;

Begin

for i:=1 to n-1 do begin

p:=pos(' ',st);

st:=copy(st,p+1,length(st)-p)

End;

p:=pos(' ',st);{найти конец нужной подстроки}

if p <> 0 then result:=copy(st,1,p-1) else result:=st

End;

Вид формы с компонентами:

Процедура обработки щелчка на кнопке "Расчет"

procedure TForm1.Button1Click(Sender: TObject);

const nn=20;// количество элементов массива

type size=1..nn;

var a:array[size]of integer;

i,n,imax:size;

max:integer;

Begin

n:=StrToInt(Edit1.text);

for i:=1 to n do a[i]:=StrToInt(GetSubStr(Edit2.text,i));

max:=a[1]; imax:=1;

for i:=1 to n do

if a[i] > max then begin max:=a[i];imax:=i end;

Label5.Caption:='max='+IntToStr(max);

Label6.Caption:='indexmax='+IntToStr(imax);

End;

Сценарий выполнения программы:

1. Запустить программу (Run).

2. Ввести в поле Edit1 значение количества элементов массива, не превышающее 21.

3. В поле Edit2 ввести элементы массива, разделяя их пробелом.

4. Нажать кнопку “ Расчет ”.

5. Просмотреть результаты (ниже приведен пример).

6. Для завершения работы нажать кнопку “ Выход ”.

Пример 5.2 Решение задачи примера 5.1 с использованием ввода элементов массива из строк компонента Memo

Вид формы:

Описание компонентов, размещенных на форме:

Компоненты Свойство Значение
Form1 Label1 Label2 Label3 Label4 Label5 Button1 Button2 Edit1 Memo1 Caption Caption Caption Caption Caption Caption Caption Caption Text Lines Поиск максимального элемента Количество вводимых элементов m= max= indexmax= Ввод Поиск Выход пусто пусто

Используя страницу Standart палитры компонент, поместите в правой части формы компонент Memo (текстовый редактор), измените его параметры, выберите в окне Инспектора Объектов объект Memo1, затем на странице Свойства произведите двойной щелчок на поле значения Strings свойства Lines для формирования и редактирования текста. После этого в окне String List Editor удалите текст Memo1, введите текст в 0-й строке “Вводите массив” и щелкните мышью на кнопке ОК.

Ввод элементов массива и поиск в массиве максимального элемента и его индекса осуществляется в разных процедурах, поэтому описание массива и переменной “m” нужно выполнить в разделе Interface модуля Unit1:

const mm=20;//максимальный размер массива

type size=1..mm;

Var

Form1: TForm1;

a:array[size]of integer;





Дата публикования: 2014-11-18; Прочитано: 317 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...