Программирование алгоритмов циклической структуры
по дисциплине «Основы программирования»
Выполнил: ст-т гр. 19КП2 Вихров Никита
Проверил: доцент каф. ИВС
Хохлов А. Е.
1 Формулировка задачи
Дано действительное число а. Для функции f (x), график которой представлен на рисунке, вычислить f (a), f (x)- периодическая функция с периодом 2.
y= -x
y= -x2
2 Техническое задание
2.1 Требования к программе
Программа должна обеспечивать ввод значения f(x), а так же вычислять значение f(y).
2.2 Порядок контроля и приёмки
Для контроля правильности работы программы должен быть разработан тестовый набор данных, состоящий из значения f(x). Это значение надо ввести при работе программы и сравнить результат работы программы – значение y в сообщении с результатом, полученным путем ручного расчета. Если результаты совпадут, то это будет означать, что программа работает правильно.
3 Описание программы
3.1 Общие сведения
Программа разработана в среде Lazarus, её текст приведен в приложении А.
3.2 Функциональное назначение
Программа предназначена для вычисления функции F(y) при данных значении f(x) и графика в условии.
3.3 Описание логической структуры
Схема программы представлена на рисунке 1.
Решение задачи начинается с ввода исходных данных x (блок 2). Затем выясняется значение x. (блок 3). После этого нужно программа должна понять, какое значение получилось x (блок 4), и если это значение <0, то x=x+2 (блок 5). Если же x>2(блок 6), то x=x-2(блок 7). Если значение у меньше или равно 1(блок 8), то y=-x*x(блок 9), иначе y=1-frac(x) (блок 10). После всего этого выводится значение у (блок 11).
| |||||||
Рисунок 1 – Схема программы
Текст программы приведен в приложении А.
На форме расположены следующие объекты:
- одно текстовое поля Label1 с вкладки Standart. В свойстве Caption этих объектов помещены пояснения для пользователя программы:
Label1.Caption – 'x',
- одно поле редактирования Edit1, с вкладки Standart - для ввода исходных данных;
- кнопка Button1 с вкладки Standart для создания обработчика события, который рассчитывает количество информации. В свойстве Caption этого объекта помещено пояснение для пользователя программы: Button1.Caption - 'Выяснить'.
Обработчик TForm1.Button1Click обрабатывает щелчок по кнопке «Вычислить». В разделе описания переменных этого обработчика описаны:
- переменные целого типа real:
x – Энное число
Исполняемая часть обработчика начинается с ввода исходных данных x. Эти переменные вводится с помощью свойства Text объектов Edit. При этом используется стандартная функция преобразования из строкового типа (string) в целый тип (real) — StrToFloat. Затем происходит вычисление y.
if x<0 then y:=x+2
else if x>2 then y:=x-2;
Переход к натуральному логарифму необходим потому, что в языке Object Pascal нет стандартной функции двоичного логарифма.
Для вывода результата формируется строка y, в которую с помощью операции сцепления строк «+», записывается поясняющий текст и результат работы функции преобразования вещественного числа в строку Edit2.Text:=FloatToStr(y);
Результат работы программы выводится оператором FloatToStr.
4 Программа и методика испытаний
Для проверки правильности работы программы подготовлен тестовый набор данных, представленный в таблице 1.
Таблица 1
Данные | Значение |
x | -6,5 |
x |
Вручную рассчитаем значение y.
X=-6,5. Число -6,5 < 2, поэтому -6,5+2=-4,5. -4.5<1. -4.5*4.5=2.25
X=3.Число 3>2, поэтому 3-2=1.1-2=-1
Для проверки правильности работы программы необходимо запустить ее на выполнение и ввести исходные данные из таблицы 1. После этого нажать левой кнопкой мыши на кнопку «Вычислить». На форме появляется результат работы программы.
При работе программы с тестовыми данными получены результаты, приведенные в приложении Б на рисунках Б.1. Результаты приведенные в таблице 1 совпадают с результатами на рисунке Б.1. Таким образом, можно сделать вывод, что программа работает правильно
5 Описание применения
После запуска программы на выполнение на экране появляется форма с вопросом (см. Приложение Б). Пользователь должен заполнить поле «x» и нажать левой кнопкой мыши на кнопку «Вычислить». На форме появляется результат работы программы.
Вывод
В ходе выполнения лабораторной работы было сформулировано и утверждено техническое задание на разработку программы, выявляющее текст на панель рабочего стола, показывающее разные значении x в сообщении, разработан алгоритм решения задачи, составлена и отлажена программа, оформлена документация на программу. Проведенные испытания показали, что программа работает правильно.
ТЕКСТ ПРОГРАММЫ
Приложение А
(обязательное)
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:real;
begin
x:=StrTofloat(Edit1.Text);
x:=trunc(x)mod 2+frac(x);
if x<0 then
x:=x+2
else if x>2 then
x:=x-2;
if y<=1 then
y:=-x*x
else
y:=1-frac(x);
Edit2.Text:=FloatToStrF(y,ffFixed,0,2);
end;
end.
РЕЗУЛЬТАТЫИСПЫТАНИЙ
Приложение Б
(обязательное)
Рисунок Б.1
Рисунок Б.2