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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Работа с массивами





Цель работы:

· изучить характеристики и основные операции с структурой данных – массив,

· получить навыки ввода и вывода одномерных и двумерных массивов.

Пример 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;

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



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