Такие знакомые и любимые задания! Решай и отправляй!

1)      Требовалось написать программу, которая определяет, лежит ли точка А(х00) внутри треугольной области, ограниченной осями координат и прямой  («внутри» понимается в строгом смысле, т.е. случай, когда точка А лежит на границе области, недопустим). В результате программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки.

var x0, у0, у: real;

begin

readln (x0, y0);

if (x0 < 2)then begin

if (x0 > 0)then begin

у = 2 – х0;

if (y0 < у) then

writeln ('точка лежит внутри области')

else writein ('точка не лежит внутри области');

end

else writeln ('точка не лежит внутри области');

end

else writeln ('точка не лежит внутри области');

end.

Последовательно выполните задания:

  1. Приведите пример таких чисел х0 и у0, при которых программа неверно решает поставленную задачу.
  2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы).
  3. Укажите, как можно доработать программу, чтобы вместо вложенных операторов IF она содержала логическую операцию AND.

 

2)      Требовалось написать программу, которая решает уравнение  относительно х для действительных чисел а, Ь, с, введенных с клавиатуры, о которых заведомо известно, что а¹0, b¹0 и c¹0. Была написана следующая программа:

var a, b, с, D, xl, x2: real;

begin

readln(a, b, с, xl, x2);

D := b*b - 4*a*c;

if D > 0

then begin

xl := (-b + sqrt(D))/(2*a);

x2 := (-b - sqrt(D))/(2*a);

write('xl =', xl);

write('x2 =', x2); end

else writeln ('действительных корней нет');

end.

Известно, что программа написана с ошибками. Последовательно выполните три задания:

1. Приведите пример таких чисел а, Ь, с, при которых программа неверно решает поставленную задачу.

2. Укажите, какая часть программы является лишней.

3. Укажите, как, по-вашему мнению, нужно доработать программу, чтобы не было случаев ее неправильной работы.