1_3 (Delphi. Лабы. Много неизвестных вариантов и примеров)
Описание файла
Файл "1_3" внутри архива находится в папке "Delphi. Лабы". Документ из архива "Delphi. Лабы. Много неизвестных вариантов и примеров", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Онлайн просмотр документа "1_3"
Текст из документа "1_3"
ЗАДАЧА 1.3.<пример> Тема: Обработка одномерных массивов. Алгоритм с единственным циклом.
Выполнил Студент Иванов И.И., Гр. Р-10-01
Задание: Разработать алгоритм и программу с единственным циклом для обработки одномерных массивов
1)Условие задачи: На основе заданного массива W из n элементов сформировать массив Z
по правилу zi = Sin(wi).
2)Описание формы и ее компонентов:…………….
2а) Использумые компоненты (вместо этой таблицы в отчетах привести рисунок – форма с расположенными на ней компонентами)
Имя компонента (свойство Name) | Для чего используется | Примечание |
Form1 | Для размещения всех требуемых в задаче компонент | |
Label1 | Для размещения текста ‘n=’ | |
Label2 | Для размещения текста ‘ Массив w’ | |
Label3 | Для размещения текста ‘n>10, введите снова’ | |
Label4 | Для размещения текста ‘ Массив z’ | |
Edit1 | Для ввода значения n | |
StringGrid1 | Для ввода значений элементов массива w | Кол-во столбцов=1, кол-во строк 10 |
StringGrid2 | Для вывода значений элементов массива z | Кол-во столбцов=1, кол-во строк 1 |
Button1 | Для запуска проекта на решение |
2в) Таблица событий
Имя компонента (Name) | Название события | Описание События | Реакция на событие | Имя соответствующей процедуры – обработчика события |
Button1 | OnClick | Щелчок по мышке | Решение задачи, результат выводится в таблицу StringGrid1 | TForm1.Button1Click |
3) procedure Form1.Button1Click :
3а)Таблица данных
Вид данного | Обозначение | Смысл | Тип | Примеч |
Исходные данные (ИД) | w | Заданный массив | Веществ.одномерный массив (array[1..10] of real) | |
n | Кол-во элементов массива w | Целое (integer) | n<=10 | |
Результирующие данные (РД) | z | Сформированный массив | Веществ.одномерный массив (array[1..10] of real) | |
Промежуточные данные (ПД) | i | Номер текущих значений элементов массива w и массива z | Целое (integer) |
3б)Алгоритм 3в) Программа
Начало ввод n если ( 1<=n<=10 ) то ввод массива ( w[i], I=1,n ) кол-во строк таблицы StringGrid2 := n для i от 1 до n шаг 1 цикл zi = Sin(wi) конец цикла вывод массива (z [i], I=1,n) иначе вывод “введите n снова” конец если конец | procedure TForm1.Button1Click(Sender: TObject); var w, z : array[1..10] of real; n,i: integer; begin n:= StrToInt(Edit1.text); if ( (n>=1) and (n<=10) ) then begin StringGrid2.RowCount:= n; for i:=1 to n do w[i]:= StrToFloat(StringGrid1.Cells[0,i-1]); for i:=1 to n do z[i]:= Sin(w[i]); for i:=1 to n do StringGrid2.Cells[0,i-1]:= FloatToStr(z[i]); end else label3.caption:= “введите n снова”; end; |
4)Тестирование
4а)Аномалии: n>10
4б) Тесты
№ пп | Что проверяется | Значения исходных данных | Ожидаемый результат |
Tест1 | Реакция программы при n>10 | n=11 | Выводится текст “введите n снова” |
Tест2 | Реакция программы при n<1 | n=0 | Выводится текст “введите n снова” |
Tест2 | Обработка корректных исходных данных | n = 5 w = (0, 1.57, 4.71, -1.57, -4.71) | z = (0, 1, -1, -1, 1) |
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;
Edit1: 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 w, z : array[1..10] of real;
n,i: integer;
begin
n:= StrToInt(Edit1.text);
if ( (n>=1) and (n<=10) ) then
begin
StringGrid2.RowCount:= n;
for i:=1 to n do w[i]:= StrToFloat(StringGrid1.Cells[0,i-1]);
for i:=1 to n do z[i]:= Sin(w[i]);
for i:=1 to n do StringGrid2.Cells[0,i-1]:= FloatToStr(z[i]);
end
else
label3.caption:= “введите n снова”;
end;
end.