![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Описание переменных:
Имя | Структура | Тип | Семантика |
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!