Задание
1. Изучить возможности языка программирования для реализации
- условной и безусловной передачи управления;
- вычислительного процесса разветвляющейся структуры.
2.Разработать алгоритм решения в соответствии с заданием.
3.Разработать интерфейс проекта
4. Подготовить тесты для проверки правильности функционирования программы (число тестов равно числу ветвей вычислительного процесса).
Пример выполнения работы
Задание
Разработать проект для решения двух задач:
1. Даны три переменные. Составить алгоритм, который отрицательные - возведет в квадрат, а из положительных извлечет корень квадратный.
2. Составить алгоритм находящий значение y, если
5, при x^2 - четное
У= 0, при sqrt(х)<20
-5, при cos x - 0.3<0.2
tg x, при х - нечетное
Процесс выполнения проекта:
1. Каждая задача решается на своей панели (Panel).
2. В момент запуска программы, на форме видна только одна кнопка «начать решение»:
3. После нажатия на кнопку появляется панель первой задачи:
4. По нажатию кнопки «пуск» первая задача инициализируется. После выполнения всех вариантов решения, предусмотренных условием, задача завершается нажатием кнопки «завершить задачу 1». Действия, выполняемые программой при этом:
- закрывается панель задачи 1;
- открывается панель задачи 2.
5. Выполнение задачи 2 начинается кнопкой «пуск». Кнопка «Close», размещенная на Panel2, завершает выполнение программы.
Вид формы во время разработки проекта:
Дерево, использованных компонентов:
Написать программный код, реализующий исходные задачи.
Функциональность задачи 1:
procedure TForm1.Button1Click(Sender: TObject);
var x,y,z:real;
Begin
x:=strToFloat(LabeledEdit1.Text);
y:= strToFloat(LabeledEdit2.Text);
z:=strToFloat(LabeledEdit3.Text);
if x<0
then LabeledEdit4.Text:= FloatToStr(sqr(x))
Else
if x>0
then LabeledEdit4.Text:= FloatToStr(sqrt(x))
Else
Begin
ShowMessage(' нельзя вводить ноль ');
LabeledEdit1.SelectAll;
LabeledEdit1.SetFocus
end;
if y<0
then LabeledEdit5.Text:= FloatToStr(sqr(y))
Else
if y>0
then LabeledEdit5.Text:= FloatToStr(sqrt(y))
Else
Begin
ShowMessage(' нельзя вводить ноль ');
LabeledEdit2.SelectAll;
LabeledEdit2.SetFocus
end;
if z<0
then LabeledEdit6.Text:= FloatToStr(sqr(z))
Else
if z>0
then LabeledEdit6.Text:= FloatToStr(sqrt(z))
Else
Begin
ShowMessage(' нельзя вводить ноль ');
LabeledEdit3.SelectAll;
LabeledEdit3.SetFocus
end;
end;
Функциональность задачи 2:
procedure TForm1.Button4Click(Sender: TObject);
var x:integer;
Begin
x:=strToInt(LabeledEdit7.Text);
if not odd(sqr(x))
Then begin
Edit1.Text:= 'x^2 - четное'; LabeledEdit8.Text:= ' y=5 '
End
else if sqrt(x)<20
Then begin
Edit1.Text:= 'sqrt(x)<20'; LabeledEdit8.Text:= ' y=0 '
End
else if (cos(x)-0.3)<0.2
Then begin
Edit1.Text:= '(cos(x)-0.3)<0.2';
LabeledEdit8.Text:= ' y= -5 '
End
else if odd(x)
Then begin
Edit1.Text:= 'x - нечетное';
LabeledEdit8.Text:=FloatToStr(sin(x)/cos(x))
End
end;
Литература для подготовки к занятию:
1. Конспект лекций по Программированию.
2. В.В. Фаронов Delphi Программирование на языке высокого уровня