- •Содержание
- •2.1 Постановка задачи из листа задания. . . . . . . . . . . . . . . . . . .14
- •2.3 Входные и выходные данные. . . . . . . . . . . . . . . . . . . . . . . . .15
- •3.1 Постановка задачи из листа задания. . . . . . . . . . . . . . . . . . 21
- •1.6 Разработка интерфейса. Объекты и их свойства
- •1.7 Код программы
- •1.1 Постановка задачи из листа задания
- •1.2 Текстовая форма записи алгоритма
- •1.3 Входные и выходные данные
- •1.4 Блок-схема алгоритма
- •1.5 Форма программы
- •2.4 Блок-схема алгоритма
- •2.5 Форма программы
- •2.6 Разработка интерфейса. Объекты и их свойства
- •2.7 Код программы
- •2.8 Результат тестирования
- •3.1 Постановка задачи из листа задания
- •3.2 Текстовая форма записи алгоритма
- •3.3 Входные и выходные данные
- •3.4 Блок-схема алгоритма
- •3.5 Форма программы
- •3.6 Разработка интерфейса. Объекты и их свойства
- •3.7 Код программы
- •3.8 Результат тестирования
- •Список использованных источников
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 |
массив |
вещественный |
|
