Результаты тестирования
Техническое задание
Программа 1
С помощью рекурсии вычислить выражение: ;
Программа 2
Ввести массив А, состоящий из n целых чисел. Вывести на экран минимальное число в массиве, больше 20.
Программа 3
Ввести массив А, состоящий из n целых чисел. Вывести на экран элементы массива, состоящие из одной цифры или цифры и знака.
Анализ технического задания
Программа 1
Написать программу, которая будет вычислять значение по заданной формуле с учётом вводимого n.
Программа 2
Написать программу, которая будет находить число в массиве больше число, которое больше 20, но минимальное из них.
Программа 3
Написать программу, которая будет находить и выводить элементы, которые состоящие из одной цифры или цифры и знака.
Спецификация на программные модули
Программа 1
1. Имя модуля: Unit1; 2. Имя вызываемого модуля - Project1; 3. Выполнение функции: находит значение по формуле; 4. Входные данные – n типа integer; 5. Выходные данные – f типа real; 6. Особенности, ограничения - нет.
Программа 2
1. Имя модуля: Unit1; 2. Имя вызываемого модуля - Project1; 3. Выполнение функции: нахождение минимальных элементов; 4. Входные данные – n,a[i] типа integer; 5. Выходные данные – massiv типа integer; 6. Особенности, ограничения - нет. Программа 3
1. Имя модуля: Unit1; 2. Имя вызываемого модуля - Project1; 3. Выполнение функции: элементы массива, состоящие из одной цифры или цифры и знака. 4. Входные данные – n,a[i] типа integer; 5. Выходные данные – a[i] типа integer; 6. Особенности, ограничения - нет.
Блок-схема алгоритма
Программа 1
нет да
Рисунок 1 – Блок - схема function f(n:integer):real;
Рисунок 2 – Блок - схема procedure TForm1.Button1Click(Sender: TObject);
Программа 2
Рисунок 3 – Блок - схема procedure TForm1.Button1Click(Sender: TObject);
да
Рисунок 4 – Блок - схема function TForm1.massiv(i, min: integer): integer;
Программа 3
Рисунок 5 – Блок - схема procedure TForm1.Button1Click(Sender: TObject);
Рисунок 6 – Блок - схема function TForm1.massiv(i: integer): integer; Модульная структура программ
Программа состоит из одного модуля – самой программы.
Текст программы
Программа 1 unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Button1: TButton; Edit2: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
function f(n:integer):real; begin if n=1 then f:=3 else f:=sqrt(3*n)*f(n-1); end;
procedure TForm1.Button1Click(Sender: TObject); var n:integer; begin n:=strtoint(edit1.text); edit2.text:=floattostr(f(n)); end;
end.
Программа 2 unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; StringGrid1: TStringGrid; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); function massiv(i,min:integer):integer; private
{ Private declarations } public { Public declarations } end;
var Form1: TForm1; a:array[0..7] of integer; n:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin n:=strtoint(edit2.Text); for i:=0 to n-1 do begin a[i]:=random(100); stringgrid1.Cells[i,0]:=inttostr(a[i]); end; Edit1.Text:=inttostr(massiv(0,100)); end;
function TForm1.massiv(i, min: integer): integer; begin if i<=n then begin if (a[i]>20) and (a[i]<min) then min:=a[i]; result:=massiv(i+1,min); end else result:=min; end;
end.
Программа 3
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids;
type TForm1 = class(TForm) StringGrid1: TStringGrid; Label1: TLabel; Button1: TButton; Edit1: TEdit; Memo1: TMemo; procedure Button1Click(Sender: TObject); function massiv(i:integer):integer; private { Private declarations } public { Public declarations } end;
var Form1: TForm1; a:array[0..7] of integer; n:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin Memo1.Clear; n:=strtoint(edit1.Text); for i:=0 to n-1 do begin a[i]:=-15+random(49); stringgrid1.Cells[i,0]:=inttostr(a[i]); end; massiv(0); end;
function TForm1.massiv(i: integer): integer; begin if i<=n-1 then begin if abs(a[i])<10 then Memo1.Lines.Add(IntToStr(a[i])); massiv(i+1); end; end; end.
Результаты тестирования
Рисунок 4 – Результат тестирования программы 1.
Рисунок 5 – Результат тестирования программы 2.
Рисунок 6 – Результат тестирования программы 3.
Заключение В ходе лабораторной работы, ознакомился и научился работать с рекурсией в Borland Delphi7.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|