Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет3.doc
Скачиваний:
8
Добавлен:
19.07.2019
Размер:
545 Кб
Скачать
☆

1.1 Постановка задачи из листа задания

Дан статический массив вещественных чисел из 10 элементов.

Реализуйте алгоритм сортировки массива методом прямого выбора.

Отсортируйте массив:

  • по возрастанию

  • по убыванию

1.2 Текстовая форма записи алгоритма

Шаг 1 Ввести n.

Шаг 2 Положить n

Шаг 3 Положить массив А

Шаг 4 Положить i=1; I<=n-1.

Шаг 5 Положить Aimin=Ai; imin=i

Шаг 6 Положить j=i+1; j<=n

Шаг 7 Если Aj<Aimin

Шаг 8 положить imin=j и перейти к шагу 9

Шаг 9 положить j=j+1

Шаг 10 Положить Temp=Aimin; Aimin=Ai; Ai=Temp

Шаг 11 Положить i=i+1

Шаг 12 Вывод отсортированного массива.

Шаг 13 Остановиться.

1.3 Входные и выходные данные

Входные данные заданы в таблице 1

Таблица 1

Величина

Назначение

Тип

i

число

Целые

n

число

Целые

j

число

Целые

A

Массив

вещественный

Выходные данные заданы в таблице 2

Таблица 2

Величина

Назначение

Тип

массив

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

вещественный

1.4 Блок-схема алгоритма

1.5 Форма программы

Форма программы представлена на рисунке

1.6 Разработка интерфейса. Объекты и их свойства

Разработка интерфейса

StringGrid1 - ввод массива;

Button1,Button2 - кнопки для вычисления;

Label1,Label2 - поля для вывода данных;

GroupBox1 – поле для переключателя;

RadioGroup1, RadioGroup2 – переключатели.

Таблица 3

Объект

Свойство

Устанавливаемое значение

StringGrid1

Name

Пусто

Button1

Caption

Сортировать

Label1,Label2

Text

пусто

Button2

Text

Массив

GroupBox1

Сaption

СОРТИРОВКА прямой выбор

RadioGroup1

Сaption

По возрастанию

RadioGroup2

Сaption

По убыванию

1.7 Код программы

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

var

a:array[1..10] of real;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

var i,j,k:integer;

aimin,temp:real;

begin

label1.Caption :='';

If RadioButton1.Checked =True then

begin

for i:=1 to 9 do

begin // for

aimin:=a[i];

k:=i;

for j:=i+1 to 10 do

if a[j]< aimin then

begin

k:=j; aimin:=a[j];

end;

a[k]:=a[i];

a[i]:=aimin;

end;

for i:=1 to 10 do

label1.Caption := label1.Caption + floattostr(a[i]) +' ';

end;

If RadioButton2.Checked =True then

begin

for i:=1 to 9 do

begin

aimin:=a[i];

k:=i;

for j:=i+1 to 10 do

if a[j]>aimin then begin

aimin:=a[j];

k:=j; end;

a[k]:=a[i];

a[i]:=aimin;

end;

for i:=1 to 10 do

label1.Caption := label1.Caption + floattostr(a[i]) +' ';

end;

end;

procedure TForm2.Button3Click(Sender: TObject);

var

i:integer;

begin

label2.Caption := '';

for i:=1 to 10 do

if Length(StringGrid1.Cells[i-1,0])<>0

then a[i] :=StrToFloat(StringGrid1.Cells[i-1,0])

else a[i]:=0;

for i:=1 to 10 do

label2.Caption := label2.Caption + floattostr(a[i]) +' ';

end;

procedure TForm2.StringGridPress(Sender: TObject; var Key: Char);

begin

case key of

#8,'0'..'9', #9: ;

#13:

if StringGrid1.Col<StringGrid1.ColCount-1

then

StringGrid1.Col:=StringGrid1.Col+1;

'.',',':

begin

if key <> DecimalSeparator

then

key:=DecimalSeparator;

if Pos( StringGrid1.Cells [StringGrid1.Col,0],DecimalSeparator)<>0

then

key:=Chr(0);

end;

'-':

if Length(StringGrid1.Cells [StringGrid1.Col,0]) <>0

then

key:=Chr(0);

else

key:=Chr(0);

end;

end;

end.

1.8 Результат тестирования

Результат тестирования представлен на рисунке 2 и 3 и 4

Рисунок 2

Рисунок 3

Задача №2

2.1 Постановка задачи из листа задания

Дан динамический массив вещественных чисел . Число элементов задает пользователь.

Реализуйте алгоритм сортировки массива методом пузырька.

Отсортируйте массив:

  • по возрастанию

  • по убыванию

2.2 Текстовая форма записи алгоритма

Шаг 1 Вывести A[n], Vorz.

Шаг 2 Если Vorz, то j=1…n-1; i=1…n-1

Шаг 3 Если a[i]>a[i+1]

Шаг 4 Если mem:=a[j]; a[j]=a[i+1]; a[i+1]=mem

Шаг 5 Положить I, j

Шаг 6 Положить i=1…n-1

Шаг 7 Вывести A[i]

Шаг 8 положить i

Шаг 9 Остановиться

2.3 Входные и выходные данные

Входные данные заданы в таблице 4

Таблица 4

Величина

Назначение

Тип

i

число

Целые

A[n]

массив

вещественный

j

число

Целые

Vozr

массив

вещественный

Выходные данные заданы в таблице 5

Таблица 5

Величина

Назначение

Тип

A[i]

массив

вещественный

A[n]

Массив

вещественный

Vozr

массив

вещественный