1_5 (Delphi. Лабы. Много неизвестных вариантов и примеров)
Описание файла
Файл "1_5" внутри архива находится в папке "Delphi. Лабы". Документ из архива "Delphi. Лабы. Много неизвестных вариантов и примеров", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Онлайн просмотр документа "1_5"
Текст из документа "1_5"
ЗАДАЧА 1.5.пример Студент Иванов И.И., Гр. Р-10-01
Тема: Нахождение экстремальных элементов в одномерных массивах. (Экстремальный – максимальный или минимальный)
Задание: Разработать алгоритм и программу нахождения экстремального элемента или его номера при заданном одномерном массиве a из n элементов
(или массивах a и c по n элементов в каждом).
1)Условие задачи: Определить наименьшее среди произведений a1*…* am , где m =1,2,…,n, и значение m, при котором оно достигается.
2а) Использумые компоненты
Имя компонента (Name) | Для чего используется | Примечание |
Form1 | Для размещения всех требуемых в задаче компонент | |
Label1 | Для размещения текста ‘n=’ | |
Label2 | Для размещения текста ‘ Массив a’ | |
Label3 | Для размещения текста ‘pmin=’ | |
Label4 | Для размещения текста ‘mmin=’ | |
Label5 | Для размещения текста ‘n>10, введите снова’ | |
Edit1 | Для ввода значения n | |
Edit2 | Для вывода значения pmin | |
E*dit3 | Для вывода значения mmin | |
StringGrid1 | Для ввода значений элементов массива a | Кол-во столбцов=1, кол-во строк =10 |
Button1 | Для запуска проекта на решение | |
Button2 | Для очистки всех компонент |
2в) Таблица событий
Имя компонента (Name) | Название события | Описание события | Реакция на событие | Имя соответствующей процедуры – обработчика события |
Button1 | OnClick | Щелчок по мышке | Решение задачи с выводом результата | TForm1.Button1Click |
Button2 | OnClick | Щелчок по мышке | Очистка компонент | TForm1.Button2Click |
Button3 | OnClick | Щелчок по мышке | Занесение Tеста3 в компоненты Edit1, StringGrid1 | TForm1.Button3Click |
Button4 | OnClick | Щелчок по мышке | Занесение Tеста4 в компоненты Edit1, StringGrid1 | TForm1.Button4Click |
3) procedure Form1.Button1Click :
3а) Таблица данных
Вид данного | Обозначение | Смысл | Тип | Примечан |
Исходные данные (ИД) | A | Заданный массив | Веществ.одномерный массив (array[1..10] of real) | |
N | Кол-во элементов массива a | Целое (integer) | n<=10 | |
Результирующие данные (РД) | Pmin | Наименьшее их произведений, указанных в условии | Веществ. (real) | |
Промежуточные данные (ПД) | I | Номер текущего значения эл-та массива a | Целое (integer) | |
P | Текущее произведение, указанное в условии. | Веществ. (real) |
4) Тесты
№ | Что проверяется | Значения исходных данных | Ожидаемый результат |
1 | Реакция программы при n>10 | n=11 | Выводится текст ‘введите n снова ' |
2 | Реакция программы при n<1 | n=0 | Выводится текст ‘введите n снова ' |
3 | mmin=1, есть эл-ты <0 и Эл-ты >0 | n=4, a = (- 0.5, - 1, 2, 3) | mmin=1 pmin= - 0.5 |
4 | mmin=n | n=4, a = (1.5, 0.1, 0.1, 0.1) | mmin= 4 pmin= 0.15*10 – 4 |
5 | 1 < mmin < n | n=4, a = (1.5, 0.1, 0.1, 2) | mmin= 3 pmin= 0.15*10 - 3 |
5)Алгоритм 6) Программа
Начало ввод n если (10<=n<=1)то ввод массива ( а[i], i=1,n ) p:=a[1] mmin:=1 pmin:= p для i от 2 до n шаг 1 цикл m:=i p:=p * a[ i ] если (p < pmin) то mmin:=m pmin := p конец если конец цикла вывод pmin, mmin иначе вывод “ введите снова n “ конец если конец | procedure TForm1.Button1Click(Sender: TObject); var a : array[1..10] of real; p, pmin: real; n, i, mmin: integer; begin n:= StrToInt(Edit1.text); if ((n<=10) and (n>=1)) then begin for i:=1 to n do a[i]:= StrToFloat(StringGrid1.Cells[0, i -1]); p:=a[1]; pmin:=a[1]; mmin:=1; for i:=2 to n do begin p:=p * a[ i ]; if (p < pmin) then begin mmin:=m; pmin := p; end; end; Edit2.text:= FloatToStr(pmin); Edit3.text:= IntToStr(mmin); End Else Label5.caption:= ' введите снова n’ ; end; procedure TForm1.Button2Click(Sender: TObject); var i: integer; begin Label5.caption:= ' '; Edit1.text:= ' '; Edit2.text:= ' '; Edit3.text:= ' '; for i:=1 to 10 do StringGrid1.Cells[0, i -1]:= ' '; end; |
5) Текст процедуры TForm1.Button1Click :
unit Unit1; {задача 1.4.1}
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var a : array[1..10] of real;
p, pmin: real;
n, i, mmin: integer;
begin
n:= StrToInt(Edit1.text);
if ((n<=10) and (n>=10)) then
begin
for i:=1 to n do a[i]:= StrToFloat(StringGrid1.Cells[0, i -1]);
p:=a[1];
pmin:=a[1];
mmin:=1;
for i:=2 to n do
begin
p:=p * a[ i ];
if (p < pmin) then
begin
mmin:=m; pmin := p;
end;
end;
Edit2.text:= FloatToStr(pmin); Edit3.text:= IntToStr(mmin);
End
Else
Label5.caption:= ' введите снова n’ ;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
begin
Label5.caption:= ' '; Edit1.text:= ' '; Edit2.text:= ' '; Edit3.text:= ' ';
StringGrid1.ColCount:=1; StringGrid1.Cells[0, 0]:= ' ';
end;
procedure TForm1.Button3Click(Sender: TObject);
var i: integer;
begin
Edit1.text:= ' 4 ';
with StringGrid1 do
begin
ColCount:=4
Cells[0, 0]:= ' -1 ';
Cells[0, 1]:= ' -2 ';
Cells[0, 2]:= ' 1 ';
Cells[0, 3]:= ' 1 ';
end
end;
procedure TForm1.Button3Click(Sender: TObject);
var i: integer;
begin
Edit1.text:= ' 3 ';
with StringGrid1 do
begin
ColCount:=3;
Cells[0, 0]:= '1 '; Cells[0, 1]:= ' 2 '; Cells[0, 2]:= ' -1 ';
end;
end;
end.