Есть двое песочных часов на Змин и на 8 мин. Как с их отмерить 7 мин? Определите систему команд исполнителя, который может решать эту задачу,
и составьте для него последовательность действий, приводящую к ответу. Какие ал-
горитмические конструкции были использованы при реализации? Можно ли считать
полученную последовательность действий алгоритмом? Какое свойство алгоритма
не выполняется? Возможно ли переформулировать задачу так, чтобы аналогичная
последовательность действий стала алгоритмом?
var
a,d,x,z:real;
begin
a:=1.2; d:=3.8; x:=-2;
while x<=2 do begin
if abs(x)>=0.0001 then begin { вот так приходится обходить нули! }
if x>0.4 then z:=exp(sqrt(x+1))
else z:=cos(a*x)/sin(a*x)+sin(d*x);
Writeln('x=',x:7:4,', Z=',z:7:4)
end
else Writeln('Функция не определена для x=0');
x:=x+0.4
end
end.
Результат выполнения программы
x=-2.0000, Z= 0.1238
x=-1.6000, Z= 0.5659
x=-1.2000, Z= 0.8569
x=-0.8000, Z=-0.8015
x=-0.4000, Z=-2.9195
Функция не определена для x=0
x= 0.4000, Z= 2.9195
x= 0.8000, Z= 3.8253
x= 1.2000, Z= 4.4072
x= 1.6000, Z= 5.0151
x= 2.0000, Z= 5.6522
uses crt;
var a,b,c,x,y:real;
begin
clrscr;
write('Ребро параллелепипеда а = ');
readln(a);
write('Ребро параллелепипеда b = ');
readln(b);
write('Ребро параллелепипеда c = ');
readln(c);
writeln;
write('Сторона отверстия х = ');
readln(x);
write('Сторона отверстия y = ');
readln(y);
writeln;
if ((a<x) and (b<y)) or
((a<x) and (c<y)) or
((c<x) and (b<y)) or
((b<x) and (a<y)) or
((c<x) and (a<y)) or
((b<x) and (c<y)) then
writeln('Может пройти') else writeln('Не может пройти');
end.