Требовалось написать программу которая решает уравнение ax

Требовалось написать программу которая решает уравнение ax

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

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

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

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

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

Требовалось написать программу которая решает уравнение ax

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

PRINT «любое число»

PRINT «нет решений»

PRINT «x =»,b/a, «или x =»,-b/a

print(‘x =’, b/a, ‘или x =’,-b/a)

write (‘любое число’)

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

write(‘x =’,b/a,’ или x =’,-b/a);

вывод «любое число»

иначе вывод «нет решений»

вывод «x =», b/a, «или x =»,-b/a

using namespace std;

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

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

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

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

1) a = 1, b = −1, x = 0.

Значение x может быть не указано. Значения а и b могут быть любыми ненулевыми числами с разными знаками. Ошибка программиста состоит в том, что программа работает неправильно при любых ненулевых а и Ь, имеющих разные знаки.

не нужно вводить х с клавиатуры; верно: readln(a, Ь).

Информатика и ИКТ. Задание 24. ЕГЭ2015
материал для подготовки к егэ (гиа) по информатике и икт (11 класс) на тему

Рассмотрены все задания из открытого банка по информатике и ИКТ 2015 с решением.

Скачать:

БейсикPython
ПаскальАлгоритмический язык
ВложениеРазмер
24o.docx128.74 КБ

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

1. Требовалось написать программу, которая решает неравенство « ax+b>0 » относительно x для любых чисел a и b , введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

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

ПРОГРАММА НА БЕЙСИКЕ

ПРОГРАММА НА СИ

var a,b,x: real;
begin
readln(a,b,x);
if a = 0 then
if b >0 then
write(‘любое число’)
else
write (‘нет решений’)
else
write(‘x>’,-b/a);
end.

INPUT a, b, x
IF a = 0 THEN
IF b > 0 THEN
PRINT «любое число»
ELSE
PRINT «нет решений»
ENDIF
ELSE
PRINT «x>», -b/a
ENDIF
END

Последовательно выполните три задания:
1) Приведите пример таких чисел a , b , x , при которых программа неверно решает поставленную задачу.
2) Укажите, какая часть программы является лишней.
3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой

1. Программа работает неправильно, если a 1), а надо х

2. Лишняя часть программы – ввод x , поскольку это не исходные данные, а результат. Поэтому вместо оператора

Переменная x далее не используется, поэтому ее не нужно объявлять:

write (‘нет решений’);

else if a > 0 then

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

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

ПРОГРАММА НА БЕЙСИКЕ

ПРОГРАММА НА СИ

var a, b, x: real;
begin
readln(a,b,x);
if b = 0 then
write(‘x = 0’)
else
if a = 0 then
writ e ( ‘нет решений’)
else
write(‘x =’,-b/a);
end.

INPUT a, b, x
IF b = 0 THEN
PRINT «x = 0»
ELSE
IF a = 0 THEN
PRINT «нет решений»
ELSE
PRINT «x=»,-b/a
END

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

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

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

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

В первую очередь, рассмотрим поставленную задачу с позиций математики: возможны следующие варианты:

  • a=0 и b=0 — x — любое число;
  • a=0 и b≠0 — нет решений;
  • a≠0 — x=-b/a.

1. Программа работает неправильно, если a и b равны нулю: в этом случае решением уравнения является любое число x , а программа выдаст только решение . Например,

2. Лишняя часть программы – ввод x , поскольку это не исходные данные, а результат. Поэтому вместо оператора

Переменная x далее не используется, поэтому ее не нужно объявлять:

3. Требовалось написать программу, которая решает уравнение

относительно x для любых чисел a и 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.

INPUT a, b, x
IF a = 0 THEN
IF b = 0 THEN
PRINT «любое число»
ELSE
PRINT «нет решений»
ENDIF
ELSE
IF b = 0 THEN
PRINT «x = 0»
ELSE
PRINT «x =»,b/a, » или
x =»,-b/a
END IF
END IF
END

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

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

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

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

Определим, какими могут быть a и b исходя из приведенных выше условий. Получаем, что a и b могут быть любыми ненулевыми числами с разными знаками. Например, a=5, b=-5 х=0;

2. Лишняя часть программы – ввод x , поскольку это не исходные данные, а результат. Поэтому вместо оператора

Переменная x далее не используется, поэтому ее не нужно объявлять:

3. Возможная доработка программы – добавить еще один условный оператор, обрабатывающий неучтенный случай ( a и b не равны нулю и имеют разные знаки), при котором нет решений

var a,b,x: real;
begin
readln(a,b);
if a = 0 then
if b = 0 then
write (‘любое число’)
else
write (‘нет решений’)
else
if b*a>0 then
write(‘x =’,b/a,’ или x =’,-b/a)
else
if b=0 then
write(‘x =0’)
else
write (‘нет решений’);
end.

4. Требовалось написать программу, которая решает неравенство

относительно x для любых ненулевых чисел a и b ( b≠0, a≠0 ), введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

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

ПРОГРАММА НА БЕЙСИКЕ

ПРОГРАММА НА СИ

var a,b,x: real;
begin
readln(a,b,x);
if b>0 then
write (‘x>’,a,’ или
x 0 then
write(‘0

INPUT a, b, x
IF b > 0 THEN
PRINT «x>»,a,» или
x 0 THEN
PRINT «0

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

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

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

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

1) a = −13, b = 4, x = 0.

Значение x может быть не указано. Значение а может быть любым отрицательным числом, значение b — любым положительным. Также допустим ответ, что программа работает неправильно при любых положительных b и отрицательных а.

не нужно вводить х с клавиатуры; верно: readln(a, b).

3) Возможная доработка:

5. Требовалось написать программу, которая решает неравенство

относительно x для любого ненулевого числа b и любого неотрицательного числа a и ( a≥0, b≠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

INPUT a, b, x
IF a = 0 THEN
IF b > 0 THEN
PRINT «нет решений»
ELSE
PRINT «x>0 или
x

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

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

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

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

1) Значение может быть не указано. Значение может быть любым отрицательным числом, значение — любым положительным. Также допустим ответ, что программа работает неправильно при любых положительных и отрицательных

2) Лишняя часть: не нужно вводить х с клавиатуры; верно: readln (а, b), описывать переменную х ненужно var a,b: real;

3) Возможная доработка:

var a,b,x: real;
begin

6. Требовалось написать программу, которая решает неравенство

относительно x для любого ненулевого числа a и любого неотрицательного числа b и ( a≠0, b≥0 ), введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

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

ПРОГРАММА НА БЕЙСИКЕ

ПРОГРАММА НА СИ

var a,b,x: real;
begin
readln(a,b,x);
if b = 0 then
write(‘x > 0 или
x 0 then
write(‘x > 0 или
x

INPUT a, b, x
IF b = 0 THEN
PRINT «x > 0 или
x 0 THEN
PRINT «x >0 или
x

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

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

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

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

1) a = −13, b = 0, x = 2.

Значение x может быть не указано. Значение а может быть любым отрицательным числом, значение b =0.

не нужно вводить х с клавиатуры; верно: readln(a, b), описывать переменную х ненужно var a,b: real;

3) Возможная доработка:

write(‘решений нет’) else

write(‘x > 0 или x

write(‘x > 0 или x

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

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

ПРОГРАММА НА БЕЙСИКЕ

ПРОГРАММА НА СИ

var x,y: real;
begin
readln(x,y);
if y =0 then
write(‘принадлежит’)
else
write(‘не принадлежит’)
end.

INPUT x, y
IF y =0 THEN
PRINT «принадлежит»
ELSE
PRINT «не принадлежит»
ENDIF
ENDIF
ENDIF
END

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

1. примеры входных данных, на которых программа работает неверно:

(x=-3.9, y=0.5) (неправильно определяет принадлежность точки области)

(x=-3, y=0) (не выдает вообще никакого сообщения)

2. способ доработки исходной программы):

if (y =0) and (x>=0) then

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

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

ПРОГРАММА НА БЕЙСИКЕ

ПРОГРАММА НА СИ

var x,y: real;
begin
readln(x,y);
if x = – sin(x) then
write(‘принадлежит’)
else
write(‘не принадлежит’)
end.

INPUT x, y
IF x = – SIN(x) THEN
PRINT «принадлежит»
ELSE
PRINT «не принадлежит»
ENDIF
ENDIF
ENDIF
END

void main(void)
< float x,y;
scanf(«%f%f»,&x,&y);
if (x = – sin(x))
printf(«принадлежит»);
else
printf(«не принадлежит»);
>

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

1. примеры входных данных, на которых программа работает неверно:

(x=-3.9, y=-0.5) (неправильно определяет принадлежность точки области)

(x=0, y=2) (не выдает вообще никакого сообщения)

2. способ доработки исходной программы:

if (x = — sin(x)) and (x>=0) then

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

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

ПРОГРАММА НА БЕЙСИКЕ

ПРОГРАММА НА СИ

var x,y: real;
begin
readln(x,y);
if y =0 then
if y>=sin(x) then
write(‘принадлежит’)
else
write(‘не принадлежит’)
end.

INPUT x, y
IF y =0 THEN
IF y>=SIN(x) THEN
PRINT «принадлежит»
ELSE
PRINT «не принадлежит»
ENDIF
ENDIF
ENDIF
END

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

1. примеры входных данных, на которых программа работает неверно:
(x=3.14, y=0.5) (неправильно определяет принадлежность точки области)
(x=0, y=1) или (x=-1, y=0) (не выдает вообще никакого сообщения)

2. Доработанная программа(не хватало одного условия )

if (x >= 0) and (x pi/2) and

(y 1) and (y >= sin(x)) then

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

10. Требовалось написать программу, которая решает уравнение « x 2 +c= 0» относительно x для любого числа c , введенного с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

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

ПРОГРАММА
НА БЕЙСИКЕ

ПРОГРАММА
НА СИ

PRINT «нет решений»

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

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

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

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

пример чисел c, x, при которых программа неверно решает поставленную задачу: с=0,

2) лишним является ввод переменной х, правильным является следующий оператор ввода

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

if c > 0 then write (‘нет решений’)

if c=0 then write (‘x=0‘)

else write(‘x =’,sqrt(-c),’ или x =’,-sqrt(-c);

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

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

ПРОГРАММА
НА БЕЙСИКЕ

ПРОГРАММА
НА СИ

PRINT «не принадлежит»

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

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

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

1. примеры входных данных, на которых программа работает неверно:
(x=-1, y=-3) (неправильно определяет принадлежность точки области)
(внутри круга или слева от прямой ) вообще не выдается никакого сообщения.

2. Доработанная программа6

if (x*x+y*y >= 4) and (x >= -2) and

12. Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 10 9 , и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

INPUT N
min_digit = 9
WHILE N >= 10
digit = N MOD 10
IF digit

digit, min_digit: integer;

min_digit := 9;
while N >= 10 do

begin
digit := N mod 10;
if digit

int digit, min_digit;

min_digit = 9;
while (N >= 10)
<
digit = N % 10;
if (digit

цел N, digit, min_digit

digit := mod(N, 10)
если digit то
min_digit := digit
все

вывод digit
кон

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

1. Напишите, что выведет эта программа при вводе числа 547.

2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, – приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

1. Программа выведет число 4.

2. Первая ошибка. Неверное условие окончания цикла. Программа не будет рассматривать старшую цифру числа. Строка с ошибкой: «while N >= 10» do Возможные варианты исправления: «while (N >= 1)» или «while (N > 0)» При этом замены на «while (N > 1)» или «while (N >= 0)» корректными не являются.

3. Вторая ошибка. Программа выводит значение переменной «digit», а не «min digit». В результате программа всегда выводит вторую слева цифру числа. Строка с ошибкой: «writeln(digit);». Необходимо в строке с выводом результата заменить «digit» на «min digit»

13. Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 10 9 , и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

INPUT N
min_digit = 0
WHILE N > 0
digit = N MOD 10
IF digit
min_digit = digit
END IF
N = N \ 10
WEND
PRINT digit
END

digit, min_digit: integer;

min_digit := 0;
while N > 0 do

begin
digit := N mod 10;
if digit


источники:

http://inf-ege.sdamgia.ru/problem?id=3640

http://nsportal.ru/shkola/informatika-i-ikt/library/2015/05/01/informatika-i-ikt-zadanie-24-ege2015