539

Обработка одномерных массивов. Выделение минимального и максимального элементов массива

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

Информатика, кибернетика и программирование

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

Русский

2013-01-06

104 KB

81 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П.О. СУХОГО»

Факультет автоматизированных и информационных систем

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

Отчёт по лабораторной работе №7

«Обработка одномерных массивов. Выделение минимального и максимального элементов массива»

Выполнил студент гр. ГА-11

Луцко А.Н.

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

Мисюткин В.И.

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

Дата защиты __________

Гомель 2012


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

Задание: В каждой из задач предполагается, что задан массив  чисел. Программа должна:

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

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

3) выводить:

  •   исходный массив;
  •        максимальный или минимальный элемент массива и его номер;
  •   массив, полученный в результате выполнения задания;
  •   сообщение о том, что перестановка не нужна или невозможна.

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

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

Вид окна формы

Таблица свойств компонентов

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

Компонент

Свойство

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

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

Form1

Caption

Лаба 7

Размермассива

Label1

Caption

Размерность массива:

Поле ввода размера массива

Edit1

Text

Кнопка Вычислить

Button1

Caption

ОК

Таблица для ввода значений

StringGrid1

FixedRows

FixedCols

ColCount

RowCount

goEditing

0

0

20

1

True

Таблица для вывода значений

StringGrid2

FixedRows

FixedCols

ColCount

RowCount

goEditing

0

0

20

1

False

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

Компонент

Событие

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

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

Button1

OnClick

TForm1.Button1Click

Вычисление

Edit1

OnChange

TForm1.Edit1Change

Изменение размера массива

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

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

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

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

Комментарий

-

x

array[1..20] of real

Массив исходных значений

-

i

integer

Текущий элемент массива

N

n

integer

Размер  массива

-

maxn

integer

Номер максимального элемента

-

max

real

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

-

t

real

Второй элемент массива

                                                           

 

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

    

Текст модуля

unit Unit1;

interface

 //Выполнил Луцко А.Н.

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Grids;

type

 TForm1 = class(TForm)

   Edit1: TEdit;

   StringGrid1: TStringGrid;

   StringGrid2: TStringGrid;

   Button1: TButton;

   Label1: TLabel;

   procedure Button1Click(Sender: TObject);

   procedure Edit1Change(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

Var

x:array[1..20] of real;

i, n,maxn: integer;

max,t:real;

begin

n:=strtoint(edit1.text);

for i:=1 to n do

x[i] := StrtoFloat(StringGrid1.Cells[i - 1,0]);

 max := x[1];

 maxn := 1;

 for i := 2 to n do

   if max < x[i] then

   begin

     max := x[i];

     maxn := i;

   end;

  if maxn=2 then

   showmessage('перестановка не требуется')

   else

   begin

 t := x[2];

 x[2] := max;

 x[maxn] := t;

   end;  

showmessage('максимальный элемент='+floattostr(max));

 showmessage ('номер максимального элемента='+ inttostr(maxn));

 for i := 1 to n do begin

   StringGrid2.Cells[i - 1,0] := FloatToStr(x[i]);

 end;

end;

procedure TForm1.Edit1Change(Sender: TObject);

begin

 StringGrid1.ColCount := StrToInt(Edit1.Text);

 StringGrid2.ColCount := StrToInt(Edit1.Text);

end;

end.

Тест

Исходные данные: n = 5

1

0

23

4,5

84

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

1

84

23

4,5

0

Результат в программе:

1

84

23

4,5

0

Тест2

Исходные данные: n = 5

1

84

23

4,5

0

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

1

84

23

4,5

0

Результат в программе:

1

84

23

4,5

0

  

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


конец

Вывод x

Перестановка не требуется

Да

Нет

Max=2

начало

x[maxn] = t

x[2] = max

t = x[2]

i= i+1

maxn = i

max = x[i]

Нет

Да

max<x[i]

Да

i <= n

i = 2

Maxn=1

= 1

max = x[1]

Считывание элементов таблицы в массив

Ввод a,b, элементов массива


 

А также другие работы, которые могут Вас заинтересовать

36295. Состав и содержание работ на стадиях внедрения, эксплуатации и сопровождения проекта 39.5 KB
  Недостатком первого подхода является увеличение длительности внедрения что ведет за собой рост стоимости проекта. При использовании второго подхода сокращается время внедрения но возникает возможность пропуска ошибок в проектной документации поэтому чаще всего используют смешанный метод внедрения проекта ЭИС. Внедрение проекта осуществляется в течение трех этапов: подготовка объекта к внедрению; опытное внедрение; сдача проекта в промышленную эксплуатацию.
36296. САSЕ – средства, классификация 26 KB
  Аббревиатура САSЕ Соmputеrаidеd Softwre Епgineering автоматизированная разработка ПО обозначает специальный тип программного обеспечения предназначенного для поддержки отдельных этапов создания ПО таких как разработка требований проектирование кодирование и тестирование программ. Поэтому к САSЕсредствам относятся редакторы проектов словари данных компиляторы отладчики средства построения систем и т. САSЕтехнологии предлагают поддержку процесса создания ПО путем автоматизации которых этапов разработки а также создания и...
36297. Типы пользовательского интерфейса 27.5 KB
  Процедурно-ориентированный интерфейс использует традиционную модель взаимодействия с пользователем основанную на понятиях процедура и операция. Объектно-ориентированные интерфейсы используют модель взаимодействия с пользователем ориентированную на манипулирование объектами предметной области. Процедурноориентированные интерфейсы: 1Обеспечивает пользователю функции необходимые для выполнения задач; 2Акцент делается на задачи; 3Пиктограммы представляют приложения окна или операции; 4Содержание папок и справочников отражается с...
36298. Понятие рекурсии. Прямая и косвенная рекурсия 23.5 KB
  Рекурсия это такой способ организации программы когда процедура или функция в ходе выполнения составляющих ее операторов обращается сама к себе. Примером программы с использованием рекурсии может быть программа вычисления факториала числа. Программы которые используют рекурсивные процедуры отличаются простотой наглядностью и компактностью текста. Максимальное число рекурсивных вызовов процедуры без возвратов которое происходит во время выполнения программы называется глубиной рекурсии.
36299. Работа с динамическими переменными 394 KB
  Использование идентификатора указателя в программе означает обращение к адресу ячейки памяти на которую он указывает. Выделение и освобождение памяти под динамические переменные выполняется стандартными процедурами New Dispose во время работы программы. Р В неопределенном состоянии указатель бывает в начале работы программы до первого присваивания ему или конкретного адреса или пустого адреса nil а также после освобождения области памяти на которую он указывает. b:=nil; Процедура New: выделяет область памяти соответственно тому...
36300. Теория автоматического управления 3.73 MB
  Управление по возмущению управление без обратной связи по регулируемой величине разомкнутые системы управления. Управление по отклонению управление с обратной связью по регулируемой величине замкнутые системы управления. Управление в разомкнутых системах может осуществляться: а в виде программного управления: при этом регулятор УУ действует по заранее заданной жесткой программе.
36301. Правила и особенности выполнения функциональных схем автоматизации упрощенным способом. Пример 22.12 KB
  В нижней части схемы рекомендуется приводить таблицу контуров в соответствии с приложением В. В таблице контуров указывают номера контуров и номер листа основного комплекта на котором приведен состав каждого контура. Для контуров систем автоматического регулирования кроме того на схеме изображают исполнительные механизмы регулирующие органы и линию связи соединяющую контуры с исполнительными механизмами. Предельные рабочие значения измеряемых регулируемых величин указывают рядом с графическими обозначениями контуров или в дополнительной...
36302. Релейные регуляторы. Двух и трехпозиционные, их статические характеристики и параметры настройки 49.85 KB
  Характеристика Рп2 согласно этим выражениям имеет зону неоднозначности 2. Если значение регулируемой величины меньше заданного с учетом зоны неоднозначности то У=В что обеспечивает полное поступление энергии в объект; Х будет увеличиваться. После того как Х превысит Х0 с учетом зоны неоднозначности то У=В доступ энергии в объекте прекратится; Х уменьшается.Снижение зоны неоднозначности приводит к уменьшению периода колебаний и следовательно к увеличению числа переключений.
36303. Адаптивные регуляторы 57.67 KB
  А СНС по отклонению Б СНС по возмущению АР применяются для упря ТП и агрегатами с нестационарными т. Принцип работы самонастраивающейся системы СНС: Для системы задается некоторый функционал качва Qз который зависит от параметров системы и внешних воздействий. Q = Qмин СНС с использованием эталонной модели на основе принципа упря по отклонению рис. Б СНС по возмущению.