Отчет о лабораторной работе №5




ТЕМА РАБОТЫ

по дисциплине «Основы программирования»

 

 

Выполнил: ст-т гр. 19КП1

Солдатов К. А.

Проверил: доцент каф. ИВС

Хохлов А. Е.

 


1 Формулировка задачи

 

Даны действительные числа . Получить:

а) ;

б) .

 

2 Техническое задание

 

2.1 Требования к программе

 

Программа должна вычислять сумму и произведение между элементами массива.

 

2.2 Порядок контроля и приёмки

 

Для контроля правильности работы программы должен быть разработан тестовый набор данных, состоящий из двух последовательности чисел. При запуске программы будет необходимо ввести тестовые последовательности чисел и нажать кнопку выполнения, и будет выведен результат работы программы. Если результат совпадет с результатами ручного просчета, то это будет означать, что программа работает правильно.

 

 

3 Описание программы

 

3.1 Общие сведения

 

Программа разработана в среде Lazarus, её текст приведен в приложении А.

 

3.2 Функциональное назначение

 

Программа предназначена для работы с массивом.

 

3.3 Описание логической структуры

 

Схема главной программы представлена на рисунке 1.

Решение задачи начинается с выполнения цикла А со счетчиком I,1<=i<=20 (блок 2). В теле цикла А происходит ввод элемента массива a[i] (блок 3). После этого цикл А завершается (блок 4). Далее переменной max присваивается значение a[1]+a[20], а переменной min значение a[1]*a[11] (блок 5). После этого выполняется цикл Б со счетчиком I,2<=i<=10 (блок 6). В теле цикла Б (блоки 7-10) проверяется условие a[i]+a[21-i]>max (блок 7). Если условие истинно, то переменной max присваивается значение a[1]+a[21-i] (блок 8). Если условие ложно, то выполняется следующий за блоком условия блок. Затем проверяется условие a[i]*a[10+i]<min (блок 9). Если условие истинно, то переменной min присваивается значение a[i]*a[10+i] (блок 10). Если условие ложно, то выполняется следующий за блоком условия блок. После этого цикл Б завершается (блок 11) и происходит вывод max,min (блок 12).

 

Рисунок 1 – Схема главной программы

 

 

Текст программы приведен в приложении А.

На форме расположены следующие объекты:

- метки Label1, Label2, Label3 с вкладки Standart. В свойстве Caption этих объектов помещены пояснения для пользователя программы:

Label1.Caption – «Введите 20 элементов а»,

Label2.Caption – «Максимум»,

Label3.Caption – «Минимум»,

- многострочный редактор Memo1 (для ввода последовательности а) с вкладки Standart;

- однострочный редактор Edit1 (для вывода максимума), Edit2 (для вывода минимума) с вкладки Standart;

- кнопка Button1 с вкладки Standart для создания обработчика события, который осуществляет решение задачи. В свойстве Caption этого объекта помещено пояснение для пользователя программы: Button1.Caption - «Выполнить».

Обработчик TForm1.Button1Click обрабатывает щелчок по кнопке «Выполнить».

В разделе описания переменных этого обработчика описаны:

i:integer – счетчики цикла;

a:array[1..20] of real – массив последовательности а,

max:real – максимальное значение,

max:real – минимальное значение,

Исполняемая часть обработчика начинается с выполнения цикла со счетчиком с помощью оператора цикла со счетчиком выпо for i:=1 to 20 do. В теле цикла со счетчиком происходит присвоение элементам массивов a[i] значений свойств объектов memo1.lines[i-1] с помощью оператора присваивания. При этом используется функция перевода из строкового типа в вещественный – strtofloat. После этого цикл со счетчиком завершается. Затем переменным max и min присваивается значение a[1]+a[20], a[1]*a[11] соответственно с помощью оператора присваивания.

 

Далее с помощью оператора цикла со счетчиком выполняется цикл со счетчиком for i:=1 to 10 do. В теле цикла со счетчиком с помощью условного оператора проверяется условие if (a[i]+a[21-i])>max then. Если условие истинно, то переменной max присваивается значение a[i]+a[21-i] с помощью оператора присваивания. Если условие ложно, то выполняется следующий за оператором условия оператор. После этого с помощью условного оператора проверяется условие if (a[i]*a[10+i])<min then. Если условие истинно, то переменной min присваивается значение a[i]*a[10+i] с помощью оператора присваивания. Если условие ложно, то выполняется следующий за оператором условия оператор. После этого цикл со счетчиком завершается. Далее происходит вывод max,min в окна объектов edit1,edit2 с помощью оператора присваивания, свойства объекта Text и функции перевода из вещественного типа в строковый – floattostr.

 

 

4 Программа и методика испытаний

 

Для проверки правильности работы программы подготовлен тестовый набор данных, представленный в таблице 1.

 

Таблица 1

Введите 20 элементов а Максимум Минимум
     

 

Ручной просчет:

20+1 = 21

1*11 = 11

Для проверки правильности работы программы необходимо запустить ее на выполнение, ввести тестовые значения последовательностей чисел из таблицы 1 и нажать левой кнопкой мыши на кнопку «Выполнить». На форме появляется результат работы программы.

При работе программы с тестовыми данными получены результаты, приведенные в приложении Б на рисунке Б.1. Результат, приведенный в таблице 1 совпадают с результатами на рисунке Б.1. Таким образом, можно сделать вывод, что программа работает правильно

 

5 Описание применения

 

После запуска программы на выполнение на экране появляется форма (см. Приложение Б). Пользователь должен ввести значение последовательностей чисел, после этого нажать левой кнопкой мыши на кнопку «Выполнить». На форме появляется результат работы программы.


 

Вывод

 

В ходе выполнения лабораторной работы было сформулировано и утверждено техническое задание на разработку программы, вычисляет максимум и минимум выражений с использованием последовательности чисел, разработан алгоритм решения задачи, составлена и отлажена программа, оформлена документация на программу. Проведенные испытания показали, что программа работает правильно.


 

 

ТЕКСТ ПРОГРАММЫ

Приложение А

(обязательное)


unit Unit1;

 

{$mode objfpc}{$H+}

 

interface

 

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, math;

 

type

 

{ TForm1 }

 

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label3: TLabel;

Label4: TLabel;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

private

 

public

 

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.lfm}

 

{ TForm1 }

 

 

procedure TForm1.Button1Click(Sender: TObject);

var

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

i:integer;

max,min:real;

begin

for i:=1 to 20 do begin

a[i]:=strtofloat(memo1.lines[i-1]);

end;

max:=a[1]+a[20];

min:=a[1]*a[11];

for i:=2 to 10 do begin

if (a[i]+a[21-i])>max then max:=a[i]+a[21-i];

if (a[i]*a[10+i])<min then min:=a[i]*a[10+i];

end;

edit1.text:=floattostr(max);

edit2.text:=floattostr(min);

end;

 

end.


 

 

РЕЗУЛЬТАТЫИСПЫТАНИЙ

Приложение Б

(обязательное)


Рисунок Б.1

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-12-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: