Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Рудник_Э-11_Лабораторная_работа_8

.docx
Скачиваний:
11
Добавлен:
15.04.2015
Размер:
209.16 Кб
Скачать

Учреждение образования

Гомельский государственный технический университет имени П.О. Сухого

Кафедра «Информатика»

Лабораторная работа № 8

по дисциплине: “Информатика”

Обработка одномерных массивов

Дата сдачи отчета Выполнил студент группы Э-11

Рудник Роман

Допуск к защите

Принял преподаватель

Дата защиты Богданова Н.С.

Цель работы: Получить навыки разработки и реализации типовых алгоритмов обработки одномерных массивов на языке Delphi. Научиться находить максимальный и минимальный элемент массива и определять его место в массиве; изменять значения и расположение элементов массива; обрабатывать элементы массива, находящиеся перед (после) максимальным (минимальным) элементом.

Задание

В каждой из задач (таблица 2) предполагается, что задан массив из N чисел. Программа должна:

  1. вводить размерность и элементы исходного массива;

  2. выполнять действия в соответствии с условием задачи;

  3. выводить:

      • исходный массив,

        • максимальный или минимальный элемент массива и его номер,

      • массив, полученный в результате выполнения задания.

Исходные данные для отладки программы выбрать самостоятельно. Для ввода и вывода массива использовать визуальный компонент StringGrid.

19

Найти максимальный элемент и поменять его местами с четвертым элементом массива.

Вид окна проекта

Таблица используемых ВК

Элемент интерфейса

Компонент

Свойство

Значение свойства

Заголовок окна

Form1

Caption

Лабораторная работа 8

Число элементов массива

Label1

Caption

Число элементов массива

Кнопка решить

Button1

Caption

Решить

Поле ввода числа элементов массива

Edit1

Text

Условие задачи

Memo1

lines

Найти максимальный элемент и

поменять его местами с

четвертым элементом массива.

Таблица для ввода массива

Stringgrid1

Colcount

Rowcount

Fixsedcols

Fixsedrows

Options.goediting

Options.gotabs

9

1

0

0

True

true

Таблица для вывода массива

Stringgrid2

Colcount

Rowcount

Fixsedcols

Fixsedrows

Options.goediting

Options.gotabs

9

1

0

0

True

true

Место для вывода результата

Memo2

lines

Таблица используемых событий

Компонент

Событие

Имя процедуры обработки события

Реализуемый алгоритм

Button1

OnClick

Tform1.Button1Click

Расчёт массива

Таблица используемых переменных

Имя переменной в задаче

Имя переменной в программе

Тип переменной

Комментарий

i

i

byte

Номер элемента

n

n

byte

Кол-во элементов

nom

nom

byte

Кол-во элементов суммы

max

max

real

сумма

p

p

real

переменная

x[i]

x[i]

real

Элемент массива

Схема олгаритма

Начало

Ввод n

Ввод массива

max:=x[i]

nom:=1

i:=1

i<=n

max<x[i]

max:=x[i]

nom:=i

i:=i+1

nom=4

Обмен нне нужен

Вывод max элемента,

номер

p:=x[nom]

x[nom]:=x[4]

x[4]:=p

вывод массива

Конец

Рукописные тесты

Тест1

Исходные данные: Число элементов массива=6

массив: 1, 2, 3, 4, 5, 6

Ожидаемый результат : Элемент= 6

Номер=6

Тест2

Исходные данные: Число элементов массива=4

массив: 1,2,3,4

Ожидаемый результат : “Обмен не нужен”

Распечатка текста процедуры

procedure TForm1.Button1Click(Sender: TObject);

var x:array[1..100] of real;

i,n,nom:byte;

max, p:real;

begin

n:=StrToInt(Edit1.Text);

stringgrid1.colcount:=n;

for i:=1 to n do

x[i]:=strtofloat(stringgrid1.cells[i-1,0]);

max:=x[1];

nom:=1;

i:=1;

while i<=n do

begin

if (max<x[i]) then

begin

max:=x[i];

nom:=i;

end;

i:=i+1;

end;

if (nom=4) then

showmessage('обмен не нужен')

else

begin

p:=x[nom];

x[nom]:=x[4];

x[4]:=p;

memo1.Lines.ADD('Максимальный элемент= '+floattostr(max)+' номер элемента= '+floattostr(nom));

end;

with stringgrid2 do

begin

colcount:=n;

visible:=true;

for i:=1 to n do

cells[i-1,0]:=floattostr(x[i]);

end;

end;

Распечатка формы с результатами работы

Вывод: Получил навыки разработки и реализации типовых алгоритмов обработки одномерных массивов на языке Delphi. Научился находить максимальный и минимальный элемент массива и определять его место в массиве; изменять значения и расположение элементов массива; обрабатывать элементы массива, находящиеся перед (после) максимальным (минимальным) элементом.