Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PRIL2_EGE156.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
400.9 Кб
Скачать

Часть 2

Раздел 6.

5 59.C1. Требовалось написать программу, кото- рая вводит с клавиатуры координаты точки на плоскости (х, у — действитель- ные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно.

ПРОГРАММА НА ПАСКАЛЕ

var х,у: real; begin

readln(х,у); if у>=0 then if x<=1.57 then if y<=sin(x) then write(‘ принадлежит’} else

write{'не принадлежит’) end. .

Последовательно выполните следующее:

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

2) Укажите, как нужно доработать программу, чтобы не было случа- ев ее неправильной работы. (Это можно сделать несколькими спосо- бами, поэтому можно указать любой способ доработки исходной программы).

560.C1. Требовалось написать программу, кото- рая вводит с клавиатуры координаты точки на плоскости (х, у — действитель- ные числа) и определяет принадлежность точки заштрихованной области, включай ее границы. Программист торопился и написал программу неправильно.

ПРОГРАММА

var х,у: real;

НА ПАСКАЛЕ

begin

readln(х, у); if у<=0 then if у>=-1 then

if y<-cos(x) then wri

te (‘ принадлежит’) else

write(‘ не принадлежит’) end.

Последовательно выполните следующее:

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

2) Укажите, как нужно доработать программу, чтобы не было случа- ев ее неправильной работы, (Это можно сделать несколькими спосо- бами, поэтому можно указать любой способ доработки исходной программы).

5 61.C1.Требовалось написать программу, кото- рая вводит с клавиатуры координаты точки на плоскости (х, у — действи- тельные числа) и определяет принад- лежность точки заштрихованной облас- ти, включая ее границы. Программист торопился и написал программу непра- вильно.

var х,у: real;

ПРОГРАММА

begin

НА ПАСКАЛЕ

readln(х,у);

if х>=0 then

if у>=-1 then

if y<=cos(x) then

write(‘ принадлежит’)

else

write ('.не принадлежит') end.

Последовательно выполните следующее:

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

2) Укажите, как нужно доработать программу, чтобы не было слу- чаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки ис- ходной программы).

5 62.C1. Требовалось написать программу, кото- рая вводит с клавиатуры координаты точки на плоскости (х, у — действи- тельные числа) и определяет принад- лежность точки заштрихованной облас- ти, включая ее границы. Программист торопился и написал программу непра- вильно.

var х, у-: real;

ПРОГРАММА

begin

НА ПАСКАЛЕ

readln{х,у);

if х>=0 then

if у>=0 then

if y<=cos(x) then

write(‘ принадлежит’)

else

write('не принадлежит ‘) end.

Последовательно выполните следующее:

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

2) Укажите, как нужно доработать программу, чтобы не было слу- чаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки ис- ходной программы).

563.C1. Требовалось написать программу, которая решает неравенство «(ах)/(х + b) > 0» относительно х для любого ненулевого числа а и любого неотрицательного числа Ъ и (а ≠0, b > 0), введенных с кла- виатуры. Все числа считаются действительными. Программист то- ропился и написал программу неправильно.

ПРОГРАММА НА ПАСКАЛЕ

var a,b,x: real; begin

readln (a, b,x);

if b = 0 then

write('x > 0 или x < 0’)

else

if a > 0 then

write ('x > 0 или x <',-b)

else

write(-b,’< x <0' ); end.

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

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

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

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

564.C1. Требовалось написать программу, которая решает уравнение «а|x| = b» относительно х для любых чисел а и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

var a,b,x: real;

ПРОГРАММА

begin

НА ПАСКАЛЕ

readln(a, b, x);

if a = 0 then

if b = 0 then

write ('любое число')

else

write ('нет решений')'

else

if b = 0 then

write('x = 0')

else

Write('x =',b/a,' или x = ',-b/a);-

end.

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

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

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

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

565.C1. Требовалось написать программу, которая решает неравенство «(х- а)/{bх) > 0» относительно х для любых ненулевых чисел а и b (b ≠ О, а ≠ 0), введенных с клавиатуры. Все числа считаются дейст- вительными. Программист торопился и написал программу непра- вильно.

ПРОГРАММА НА ПАСКАЛЕ

var a,b,x: real; begin

readln(a,b,x); if b>0 then

write (‘x>’,a,’ или x <0') else

if a > 0 then write(‘0 < x< ‘, a) else

write(a,’< x <0’); end.

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

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

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

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

566.C1. Требовалось написать программу, которая решает неравенство «(х + а)/(Ьх) < 0» относительно х для любого ненулевого числа Ь и любого неотрицательного числа а и (а ^ О, Ъ * 0), введенных с кла- виатуры. Все числа считаются действительными. Программист то- ропился и написал программу неправильно.

ПРОГРАММА НА ПАСКАЛЕ

var a,b,x: real; begin

readln(a, b,x);

if a =0 then

if b > 0 then

write ('нет решений’)

else

write ('x > 0 или x <0') else

write(-a,'< x <0' ) ; end.

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

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

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

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

567.C1. Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (х, у — действительные числа) и определяет принад- лежность точки заштрихованной области, вклю- чая ее границы.

Программист торопился и написал программу не- правильно.

ПРОГРАММА

НА ПАСКАЛЕ

var х,у:real;

begin

readln(х,y)

if у<=х*x then

if х<=1.5 then •

if у>=0 then

write('принадлежит ‘)

else

write ( 1 н e принадлежит1);

end.

Последовательно выполните следующее:

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

2) Укажите, как нужно доработать программу, чтобы не было слу- чаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки ис- ходной программы).

568.C1. Требовалось написать программу, которая решает уравнение «х2 + с = О» относительно х для любого числа с, введенного с кла- виатуры. Все числа считаются действительными. Программист то- ропился и написал программу неправильно.

ПРОГРАММА НА ПАСКАЛЕ

var c,x: real; begin

readln(c,x);

if c>0 then

write(1 нет решений ')

else

write(‘x=’, sqrt(-c), ‘ или x=',-sqrt (-с)); end.

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

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

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

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

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

|_Программа на Паскале_

var х0, у0, y: real; begin

readln (x0, y0); if(x0<2) then begin if(x0>0)then

begin

у = 2 – x0;

if (у0 < y) then writeln ('точка лежит внутри области')

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

end;

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

end;

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

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

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

2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы).

3) Укажите, как можно доработать программу, чтобы она содержала логические операции AND или OR.

570.C1. Требовалось написать программу, которая определяет, имеется ли среди введенных с клавиатуры целых чисел а и b хотя бы одно четное. Была написана следующая про- грамма:

Программа на Паскале

var a, b: integer; begin

readln(a, b); a := a mod 2;

if a > 0 then b := b mod 2; if b>0then

writeln ('четных чисел нет’) else writeln('четное число есть'); end.

Известно, что программа написана с ошибками. Последовательно выполните три задания: 1) приведите пример таких чисел а, Ьу при которых программа неверно решает поставленную задачу;

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

4) укажите, как можно доработать программу, с использованием логической операции OR.

571.C1. Требовалось написать программу, которая решает уравнение «ax2 + bх+с = 0» относительно х для действительных чисел а, b, с, введенных с клавиатуры, о которых заведомо известно, что а ≠ 0. b≠0,с≠0. Была написана следующая программа:

_Программа на Паскале_

var а, b, с, D, х 1, х2: real; begin

readln(a, b, с, х1, х2); 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 ('действительных корней нет');

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

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

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

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

572.C1. Требовалось написать программу, которая определяет, лежит ли точка А(х0,у0) внутри квадратной области, ограниченной прямыми, параллельными осям координат; у = -2, у = 2, х = -2, х = 2 («внутри» понимается в строгом смысле, т.е. случай, когда точка А лежит на границе области, недопустим).

В результате программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки. Последовательно выполните задания:

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

2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы).

3) Укажите, как можно доработать программу, чтобы она содержала логические операции AND или OR.

Программа на Паскале_

Var x0, у0: real; begin

readln (х0, у0) if(x0<2)then begin

if(x0 > -2) then if (y0 < 2) then writeln (‘точка лежит внутри области'); end;

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

573.C1. Требовалось написать программу, которая определяет, можно ли построить треугольник из отрезков с длинами х, у, z. Программа должна выводить соответствующее текстовое сооб- щение. Программист сделал в программе ошибки. Последовательно выполните задания:

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

2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать один из способов доработки исходной программы).

3) Укажите, как можно доработать программу, чтобы она содержала логическую операцию AND или OR.

Программа на Паскале

var х, у, z: real; begin

readln (x, у, z); if(x + у > z) then begin

i f (x + z. > y) then if (y + z. > x) then

writeln ('треугольник построить можно'); end;

writeln('Tpeyгольник построить нельзя');

574.C1. Требовалось написать программу, которая определяет, лежит ли точка А(х,у) внутри неко- торого кольца (''внутри" понимается в строгом смысле, т.е. случай, когда точка А лежит на границе кольца, недопустим). Центр кольца находится в начале координат. Для кольца

заданы внутренний и внешний радиусы rl, r2, известно, что r1 отлично от r2, но неизвест- но, r1 > r2 или r2 > r1. В том случае, когда точка А лежит внутри кольца, программа должна выводить соответствующее сообщение, в противном случае никакой выходной информа- ции не выдается. Программист сделал в программе ошибки. Последовательно выполните задания:

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

2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

3) Укажите, как можно доработать программу, чтобы она не содержала логических операций AND или OR.

Примечание: для обозначения расстояния от точки А до начала координат используется промежуточная переменная h.

_Программа на Паскале_

var х, у, rl, г2: real;

h: real;

begin readln (x, y, rl, r2); h ~ sqr (x*x + y*y); if(h>rl)AND(h<r2) then

writeln ('точка А лежит внутри кольца');

end

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

____Программа на Паскале_-

var х0, у0, у: real; begin

readln (х0, у0); if(x0<2) then begin

if(x0>0) then

begin

y = 2-x0;

if (у0 < y) then writeln ('точка лежит внутри области')

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

end;

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

end;

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

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

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

2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы).

3) Укажите, как можно доработать программу, чтобы вместо вложенных операторов IF она содержала логическую операцию AND.

5 76.С1. Требовалось написать программу, которая вводит с клавиатуры координаты точек на плоскости (х, у — действительные числа) и определяет принадлежность точки заштрихованной на рисунке области, включая её границы. Программист торопился и написал программу неправильно.

Паскаль

var х,у: real; begin

readln(x, у) ; if y<=x*x then if x<=3 then if y>=0 then

write('принадлежит’) else

write('не принадлежит');

end.

Последовательно выполните следующее:

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

2) укажите, как нужно доработать программу, чтобы не было случа- ев её неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы.)

577.С1. Информация на чистый перезаписываемый CD-диск записывается от центра к краям, при этом область данных на диске образует коль- цо, площадь которого пропорциональна объёму записанной информации. Известно, что на диске, вмещающем до 700 МБ данных, внутренний диа- метр области записи равен 44 мм, а внешний диаметр — 117 мм. Требо- валось написать программу, которая бы по введённому объёму данных в мегабайтах оценивала бы внешний диаметр области записанных данных. Программист торопился и написал программу неправильно. Предложите вариант исправления программы.

Паскаль_

const pi - 3.1416; dl = 44*44;

var S,V,d2: real;

begin

readln (V);

if (V<0) or (V>700) then

writeln('Неверный объём!'); S:«pi*(117*117-dl)/4; S:«=V*S/700; d2:*sqrt(dl+4*pi/S); writeln(d2); end.

578.С1. Требовалось написать программу, которая по введённому числу п (2 < п < 100) выводит без повторений все трёхэлементные подмно- жества множества чисел{1,2,..., п}. Программист торопился и написал программу неправильно. Укажите на ошибки и помогите исправить про- грамму.

Паскаль_

var n, i, j, k : integer; begin

readln (n); for i := 1 to n do for j :s 1 to n do for k := 1 to n do

writeln(i:4, j:4, k:4);

end.

579.С1. Требовалось написать программу, которая определяет, лежит ли точ- ка Р с координатами (х, у) в первом квадранте декартовой координатной плоскости и на прямой у = а*х + b. При положительном ответе програм- ма должна выводить расстояние от этой точки до начала координат; при отрицательном — нужно вывести координаты точки, лежащей на прямой и имеющей такую же ординату, что и точка Р. (Гарантируется, что во вход- ных данных а≠0.) Была написана следующая программа:

Паскаль

var a, b, х, у: real; begin

readln(a,b,x,y); if a*x+b=y then if x>=0 then if y>=0 then writeln('Расстояние от точки до начала к-т=', sqrt(x*x+y*y)) else writeln('Координаты точки на прямой =’, (у-b)/а, у)

end.

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

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

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

580.С1. Требовалось написать программу, которая определяет, имеется ли среди введённых с клавиатуры положительных целых чисел а и Ь хотя бы одно чётное. Была написана следующая программа: |

Паскаль | var а, b: integer; begin

readln(a, b); а:=а mod 2;

if a>0 then b:=b mod 2; if b>0 then writeln('чётных чисел нет') else writelnСчетное число есть'); end.

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

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

2) укажите, как, по вашему мнению, нужно доработать программу, что- бы не было случаев её неправильной работы;

3) укажите, как можно доработать программу, чтобы она содержала логическую операцию OR

590.С1. Требовалось написать программу, получающую на входе три любых действительных числа. Программа должна проверить, является ли тре- угольник с длинами введённых сторон прямоугольным. Программист на- писал программу с ошибками. Выполните следующее:

1) укажите тройку чисел, для которых программа работает неверно;

2) укажите, как доработать программу.

Паскаль_

var a, b, с:real; begin

readln(a,b,c);

if (a>0) and (b>0) and (c>0) then if (a*a+b*b*c*c) and (a*a+c*c-b*b) and (b*b+c*c=a*a) then

wr itleIn('прямоугольный ‘) else

writeln ('не прямоугольный’)

end.

5 91.С1. Требовалось написать программу, которая принимает координаты точки на плоскости {х, у — действительные числа) и определяет принадлежность точки заштрихованной области (включая её границы) на рисунке 27.

Программист торопился и написал программу неправильно.

Паскаль

var x,y:real; begin

readln(x, y)

if (x<=0) and (x>=-l) and (y>=x*x*x) then

writleIn('принадлежит') if (x>=0) and (x<=1 ) and (y<- x*x*x) then

writleln('принадлежит') else writeln ('не принадлежит') end.

Последовательно выполните следующее:

1) приведите пример таких чисел (х, у), для которых программа непра- вильно решает задачу;

2) укажите, как можно доработать программу, чтобы не было случаев неправильной её работы. (Существует несколько вариантов сделать это, в ответе укажите любой из них.)

592.С1. Требовалось написать программу, которая вводит с клавиатуры коор- динаты точки на плоскости (х, у — действительные числа) и определяет принадлежность точки заштрихованной области, включая её границы (см. рис. 37).

Программист торопился и написал программу неправильно.

П аскаль_

var х,у:real; begin

readln(x,y); if x*x+y*y<-9 then if ,y>x*x then write ('принадлежит’) else write('He принадлежит');

end.

Последовательно выполните следующее:

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

2) укажите, как нужно доработать программу, чтобы не было случа- ев её неправильной работы (это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

5 93.С1. Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, у — действительные числа) и определяетпринадлежность точки заштрихованной области, включая её границы .

Программист торопился и написал программу неправильно. Паскаль_

var x, y: real; begin

readln(x, y); if x>=y then if y>=x*x-3 then write(‘ принадлежит’) else write('He принадлежит’);

end.

Последовательно выполните следующее:

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

2) укажите, как нужно доработать программу, чтобы не было случа- ев её неправильной работы (это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

594.С1. Требовалось написать программу, которая проверяет, является ли данное положительное целое число, не превосходящее 32000, палиндро- мом, то есть таким, десятичная запись которого читается одинаково сле- ва направо и справа налево. Предполагается, что исходное число всегда вводится корректно. Программист торопился и написал программу непра- вильно.

_Паскаль_

var N,i,j : integer;

С : array [1..5] of integer;

flag : boolean; begin

readln(N);

i:=0;

repeat i:=i+l; C[i] :=N mod 10 ; N:=N div 10;

until N=0;

flag:=true;

for j:=l to i div 2 do if C[j]<>C[i-j] then flag:efalse; if flag then vriteln('Aa') else writeln('Hex'); end.

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

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

2) Устраните ошибку.

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

595.С1. Требовалось написать программу, которая проверяет, является ли данное положительное целое число, не превосходящее 32000 таким, в де- сятичной записи которого каждая следующая цифра больше предыдущей. Предполагается, что исходное число всегда вводится корректно. Про- граммист торопился и написал программу неправильно.

Паскаль

var N,a : integer;

f : boolean; begin readln (N); repeat a:- N mod 10; N:=N div 10; if a<=(N div 10)then f:*false; until N=0; if f then vriteln('Дa') else

writeln(‘Heт’); end.

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

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

2) Устраните ошибку.

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

596.С1. Требовалось написать программу, которая решает уравнение ау/х = Ь относительно х для любых чисел а и 6, введённых с клавиатуры. Все числа считаются действительными. Программист торопился и написал програм- му неправильно.

Паскаль var a,b,r : real; begin readln(a,b) ; if a=0 then begin

if b=0 then writeln('Любое x>=0>) else writeln('Heт решений’);

end

else begin

r:=b/a; vriteln(‘x=>’, r*r); end end.

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

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

2) Укажите, как нужно доработать эту программу, чтобы исправить ошибку.

597.С1. Требовалось написать программу, которая решает уравнение ох4 = b относительно х для любых чисел а и 6, введённых с клавиатуры. Все числа считаются действительными. Программист торопился и написал програм- му неправильно.

_Паскаль_

var a,b,r : real; begin

readln(a,b);

if a=0 then

if b=0 then writeln('Любое x’) else write('Heт решений'); else

if b=0 then writeln ('x-0’)

else

begin

r: =exp (0.25*ln(b/a) ); writeln('xl=',r,' x2=’,-r); end end.

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

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

2) Укажите как нужно доработать эту программу, чтобы исправить ошибку.

598.С1. Требовалось написать программу, получающую на входе три любых действительных числа. Программа должна проверить, существует ли тре- угольник с указанными длинами сторон.

Программист написал программу с ошибками. Выполните следующее:

1) Укажите тройку чисел, для которых программа работает неверно.

2) Укажите, как доработать программу.

Паскаль

var a,b,c: real; begin

readln(a,b,c);

if (a>0) and (b>0) and (c>0) then

if (a+b>c) and (a+c>b) and (b+c>a) then writeln(‘ существует’)

else

writeln(‘не существует’);

end.

599.С1. Требовалось написать программу, которая считывает с клавиатуры целое число и выдаёт его наименьший натуральный простой делитель в случае, если введённое число по абсолютной величине больше единицы. В противном случае программа должна выдать сообщение об ошибочном вводе.

Программист написал такую программу:

Паскаль

var k,n: integer; begin

readln(n);

if (n=0) and (n=l) and (n=-l) then writeln('Ошибка ввода')

else begin k:=2;

while(n mod k)<>0 do k:-k+l; writeln(k); end;

end.

Выполните следующее:

1. Приведите пример n, при котором программа работает неверно.

2. Укажите, как доработать программу.

600.С1. Требовалось написать программу, которая по введённому с клавиату- ры номеру года (g — целое число, 100 < д < 9000) определяет номер его столетия (в григорианском календаре 1-й год является началом 7-го ве- ка, а 100-й год — концом 7-го века). Программист торопился и написал программу неправильно.

Паскаль

var g,z,с:integer; begin

readln(g);

z:=g div 100;

с:=z+l;

writeln('Столетие ‘, с); end.

Последовательно выполните следующее:

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

2) Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы.

601.С1. Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (х,у — целые числа) и определяет принадлежность точки заштрихованной области, включая её границы .

Программист торопился и написал программу неправильно.

Паскаль_

v ar x,y : real; begin readln(x,у); if y<=3 then if x>=0 then if y>=abs(x)-3 then writeln('ПРИНАДЛЕЖИТ') else writeln('HE ПРИНАДЛЕЖИТ') end.

Выполните следующее:

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

2. Укажите, как нужно доработать программу, чтобы не было случа- ев её неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы.)

602.С1. Требовалось написать программу, которая вводит с клавиатуры эле- менты двухмерного массива размером n х n и упорядочивает элементы первой строки массива по убыванию. Программист торопился и написал программу неправильно.

Паскаль__

const n=5;

var A: array[1. .n,l. .n] of integer;

i,j,c:integer;

begin

for i:=l to ndo for to n do readln(A[i,j]); for i:=l to n do

for j:=i to n-1 do begin

c:=A[lfj] ;

if A[l,j]<A[l,j+l] then

A[l,j]:-A[l,j+1]; A[l,j+l]:-c

end end.

Выполните следующее:

1. Приведите пример таких чисел а11, а12, а13, а14 и а15 при которых программа работает неверно.

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

603.С1. Требовалось написать программу, которая вводит с клавиатуры по- следовательность целых чисел х1, x2,…xn, где n >= 3, и находит макси- мальную сумму двух соседних чисел.

Программист торопился и написал программу неправильно.

Паскаль_

const n=10;

var i,a,d,b:integer; с:array[1..n] of integer; begin

for i:=l to n do readln(c[i]); d:=0;

for i:=2 to n-2 do begin

b:=c [i] +c [i+1] ; a: =c [i+1] +c [i+2] ; if a<b then d:=b else d:=a; end;

writeln('max_sum',d); end.

Выполните следующее:

1. Приведите пример последовательности чисел, для которых про- грамма работает неверно.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]