Задачи из задания ege24 для подготовки к ЕГЭ по информатике

Поиск ошибок в программе
В этом задании можно выделить задачи следующих типов:
Область с таблицей ( 16 )

_

2306 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Программист торопился и написал программу неправильно.
var
  x,y: real;
begin
  readln(x,y);
  if y<=2-x then
    if y>=0 then
      if y>=x*x then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A,B, C, D, E, F,G и H). Точки, лежащие на границах областей, отдельно не рассматривать.
Область y<=2-x? y>=0? y>=x*x? вывод верно?
A
B
C
D
E
F
G
H
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
2307 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Программист торопился и написал программу неправильно.
var
  x,y: real;
begin
  readln(x,y);
  if y>=0 then
    if y>=2-x then
      if y<=x*x then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A,B, C, D, E, F,G и H). Точки, лежащие на границах областей, отдельно не рассматривать.
Область y>=0? y>=2-x? y<=x*x? вывод верно?
A
B
C
D
E
F
G
H
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
2308 ege24 Область с таблицей
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if x <= 1 then
    if y <= 1 then
      if x*x + y*y <= 1 then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F). Точки, лежащие на границах областей, отдельно не рассматривать.
Область x <= 1 y <= 1 x*x + y*y <= 1 вывод верно?
A
B
C
D
E
F
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2309 ege24 Область с таблицей
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y >= 0 then
    if x <= 1 then
      if y >= x*x then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F). Точки, лежащие на границах областей, отдельно не рассматривать.
Область y >= 0 x <= 1 y >= x*x вывод верно?
A
B
C
D
E
F
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2310 ege24 Область с таблицей
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if x <= 1 then
    if y >= 1-x then
      if y >= x*x then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G, H). Точки, лежащие на границах областей, отдельно не рассматривать.
Область x <= 1 y >= 1-x y >= x*x вывод верно?
A
B
C
D
E
F
G
H
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2311 ege24 Область с таблицей
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if x >= 0 then
    if y <= 1 then
      if (x*x + y*y <= 1) and (y >= x-1) then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G, H, J, K). Точки, лежащие на границах областей, отдельно не рассматривать.
Область x >= 0 y <= 1 x*x + y*y <= 1 and (y >= x-1) вывод верно?
A
B
C
D
E
F
G
H
J
K
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2312 ege24 Область с таблицей
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y <= 3-x*x then
    if y >= 0 then
      if y >= x+1 then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G, H). Точки, лежащие на границах областей, отдельно не рассматривать.
Область y <= 3-x*x y >= 0 y >= x+1 вывод верно?
A
B
C
D
E
F
G
H
J
K
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2313 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х – действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно.
var
  x: real;
begin
  readln(x) ;
  if x>l then
    if x>=7 then
      if x>13 then
        write('не принадлежит') 
      else
        write('принадлежит')
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D и Е). Границы (точки -5, 1, 7 и 13) принадлежат заштрихованным областям.
Область Условие 1 (x>1) Условие 2 (х>=7) Условие 3 (х>13) Программа выведет Область обрабатывается верно
А
В
С
D
Е
В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
2314 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х – действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно.
var
  x: real;
begin
  readln(x) ;
  if x<=l5 then
    if x<9 then
      if x<=3 then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D и Е). Границы (точки -3, 3, 9 и 15) принадлежат заштрихованным областям.
Область Условие 1 (x<=15) Условие 2 (х<9) Условие 3 (х<=3) Программа выведет Область обрабатывается верно
А
В
С
D
Е
В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
2315 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х – действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно.
var
  x: real;
begin
  readln(x) ;
  if x<=l4 then
    if x>=-4 then
      if x>=8 then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D и Е). Границы (точки -4, 2, 8 и 14) принадлежат заштрихованным областям.
Область Условие 1 (x<=14) Условие 2 (х>=-4 Условие 3 (х>=8) Программа выведет Область обрабатывается верно
А
В
С
D
Е
В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
2316 ege24 Область с таблицей
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x,y: real;
begin
  readln(x,y);
  if y>=x*x-2 then
    if y<=4-x*x then
      if x>=0 then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D и Е). Границы (точки -4, 2, 8 и 14) принадлежат заштрихованным областям.
Область Условие 1 (y>=x*x-2) Условие 2 (y<=4-x*x Условие 3 (х>=0) Программа выведет Область обрабатывается верно
А
В
С
D
Е
F
G
H
В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
2317 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х - действительное число) и определяется принадлежность этой точки одному из выделенных отрезков (включая границы). Программист торопился и написал программу неправильно.
var
  x: real;
begin
  readln(x);
  if (x>=-5) or (x<=1) then
    if (x>=-3) and (x<=3) then
      if (x>=-1) and (x<=5) then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументе, принадлежащем различным областям (А, В, С, D, Е, F, G). Точки, лежащие на границах областей, отдельно не рассматривать.
Область Условие 1 (x>=-5 or x<=1) Условие 2 (x>=-3 and x<=3) Условие 3 (х>=-1 and x<=5) Программа выведет Область обрабатывается верно
А
В
С
D
Е
F
G
H
В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
2318 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (х, у - действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). 1) Ученик написал такую программу:
var
  x, y: real;
begin
  readln(x, y);
  if x*x + y*y <= 25 then
    if y <= 4-x*x then
      if y <= x+1 then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
При проверке работы программа выполнялась по шагам для некоторых контрольных значений х и y, при этом был заполнен протокол тестирования, содержащий следующую информацию. Область - часть плоскости, которой принадлежит проверяемая точка (все возможные области отмечены на рисунке буквами А, В, С, ... W). Условие 1, Условие 2, Условие 3 - результат проверки соответствующего условия (да или нет). Если условие не проверялось, в протокол записывался прочерк. Вывод - сообщение, которое вывела программа. Если программа ничего не вывела, в протокол записывался прочерк. Верно - итоговое заключение (да или нет) о правильности результата работы программы при данных значениях х и у. В результате неаккуратного обращения протокол был испорчен, частично сохранились только три строки:
Область Условие 1 (х*х + у*у <= 25) Условие 2 (у <= 4-х*х) Условие 3 (y <= х+1) Вывод Верно
да
принадлежит нет
нет нет
Восстановите уцелевшие строки протокола, заполнив все клетки таблицы. Там, где содержание восстанавливается неоднозначно, запишите любое возможное значение. Например, если для нескольких областей получается одинаковая строка таблицы, укажите в графе «Область» любую из этих областей.
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы (это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2319 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считываются коорди наты точки на плоскости (х, у - действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Ученик написал такую программу:
var
  x, y: real;
begin
  readln(x,у);
  if у >= x*x-6 then
  begin
    if x*x + у* у <=16 then
      write('принадлежит')
  end 
else
  if x >= 0 then
    write('принадлежит') 
  else
    write('не принадлежит')
end.
При проверке работы программа выполнялась по шагам для некоторых контрольных значений х и у, при этом был заполнен протокол тестирования. В результате неаккуратного обращения протокол был испорчен, частично сохранились только четыре строки:
Область Условие 1 (y >= x*x-6) Условие 2 (x*x+y*y <= 16) Условие 3 (x >= 0) Вывод Верно
да
принадлежит нет
не принадлежит да
да
Графы протокола содержат следующую информацию.- часть плоскости, которой принадлежит проверяемая точка. (Все возможные области отмечены на рисунке буквами А, В, С, ... S.) Условие 1, Условие2, Условие 3 - результат проверки соответствующего условия (да или нет). Если условие не проверялось, в протокол записывался прочерк. Вывод – сообщение, которое вывела программа. Если программа ничего не вывела, в протокол записывался прочерк. Верно - итоговое заключение (да или нет) о правильности результата работы программы при данных значениях х и у. 1. Восстановите уцелевшие строки протокола, заполнив все клетки таблицы. Там, где содержание восстанавливается неоднозначно, запишите любое возможное значение. Например, если для нескольких областей получается одинаковая строка таблицы, укажите в графе «Область» любую из этих областей.
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
2320 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (х, у - действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Ученик написал такую программу:
var
  x, y: real;
begin
  readln(x,y);
  if y >= 1-x then
  begin
    if y <= 2-2*x*x then
      write('принадлежит')
  end 
else
  if y >= x*x-5 then
    write('принадлежит') 
  else
    write('не принадлежит')
end.
При проверке работы программа выполнялась по шагам для некоторых контрольных значений х и у, при этом был заполнен протокол тестирования. В результате неаккуратного обращения протокол был испорчен, частично сохранились только четыре строки:
Область Условие 1 (y >= 1-x) Условие 2 (y <= 2-2*x*x) Условие 3 (y >= x*x-5) Вывод Верно
принадлежит нет
не принадлежит да
да
Графы протокола содержат следующую информацию. Область - часть плоскости, которой принадлежит проверяемая точка. (Все возможные области отмечены на рисунке буквами А, В, С, ... R.) Условие 1, Условие2, Условие 3 - результат проверки соответствующего условия (да или нет). Если условие не проверялось, в протокол записывался прочерк. Вывод – сообщение, которое вывела программа. Если программа ничего не вывела, в протокол записывался прочерк. Верно - итоговое заключение (да или нет) о правильности результата работы программы при данных значениях х и у. 1. Восстановите уцелевшие строки протокола, заполнив все клетки таблицы. Там, где содержание восстанавливается неоднозначно, запишите любое возможное значение. Например, если для нескольких областей получается одинаковая строка таблицы, укажите в графе «Область» любую из этих областей.
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
2321 ege24 Область с таблицей
Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (х, у - действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Ученик написал такую программу:
var
  x, y: real;
begin
  readln(x,y);
  if y >= x+1 then
  begin
    if y <= 2-2*x*x then
      write('принадлежит')
  end 
else
  if y >= x*x-5 then
    write('принадлежит') 
  else
    write('не принадлежит')
end.
При проверке работы программа выполнялась по шагам для некоторых контрольных значений х и у, при этом был заполнен протокол тестирования. В результате неаккуратного обращения протокол был испорчен, частично сохранились только четыре строки:
Область Условие 1 (y >= x+1) Условие 2 (y <= 2-2*x*x) Условие 3 (y >= x*x-5) Вывод Верно
принадлежит нет
не принадлежит да
да
Графы протокола содержат следующую информацию. Область - часть плоскости, которой принадлежит проверяемая точка. (Все возможные области отмечены на рисунке буквами А, В, С, ... R.) Условие 1, Условие2, Условие 3 - результат проверки соответствующего условия (да или нет). Если условие не проверялось, в протокол записывался прочерк. Вывод – сообщение, которое вывела программа. Если программа ничего не вывела, в протокол записывался прочерк. Верно - итоговое заключение (да или нет) о правильности результата работы программы при данных значениях х и у. 1. Восстановите уцелевшие строки протокола, заполнив все клетки таблицы. Там, где содержание восстанавливается неоднозначно, запишите любое возможное значение. Например, если для нескольких областей получается одинаковая строка таблицы, укажите в графе «Область» любую из этих областей.
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Ответ:
Решение:
   
Числовая прямая ( 0 )

Область без таблицы ( 18 )

_

2236 ege24 Область без таблицы
Требовалось написать программу, которая определяет, лежит ли точка А(х0,у0) внутри треугольной области, ограниченной осями координат и прямой y=2-x («внутри» понимается в строгом смысле, т.е. случай, когда точка А лежит на границе области, недопустим). В результате программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки.
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.
Ответ:
Решение:
   
2237 ege24 Область без таблицы
Требовалось написать программу, которая определяет, лежит ли точка А(х0,у0) внутри квадратной области, ограниченной прямыми, параллельными осям координат: у = -2, у = 2, х = -2, х = 2 («внутри» понимается в строгом смысле, т.е случай, когда точка А лежит на границе области, недопустим). В результате программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки.
var
  x0, y0: real;
begin
  readln (x0, y0) if(x0 < 2) then
  begin
    if(x0 > -2) then
      if (y0 < 2) then
        writeln('точка лежит внутри области');
  end 
else
  writeln('точка не лежит внутри области');
end.
Последовательно выполните задания:
1. Приведите пример таких чисел х0 и у0, при которых программа неверно решает поставленную задачу.
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы).
3. Укажите, как можно доработать программу, чтобы она вместо вложенных операторов IF содержала логическую операцию AND.
Ответ:
Решение:
   
2238 ege24 Область без таблицы
Требовалось написать программу, которая определяет, лежит ли точка А(х,у) внутри некоторого кольца («внутри» понимается в строгом смысле, т.е. случай, когда точка А лежит на границе кольца, недопустим). Центр кольца находится в начале координат. Для кольца заданы внутренний и внешний радиусы r1, r2; известно, что r1 отлично от r2, но неизвестно, r1 > r2 или r2 > r1. В том случае, когда точка А лежит внутри кольца, программа должна выводить соответствующее сообщение, в противном случае никакой выходной информации не выдается. Программист сделал в программе ошибки.
var
  x, у, rl,r2:real;
  h: real;
begin
  readln (x, у, rl, r2);
  h := sqrt (x*x + y*y);
  if (h < rl) and (h > r2) then
    writeln ('точка а лежит внутри кольца');
end.
Последовательно выполните задания:
1. Приведите пример таких чисел х, у, rl, r2, при которых программа неверно решает поставленную задачу.
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
3. Укажите, как можно доработать программу, чтобы она не содержала логических операций AND или OR. Примечание: для обозначения расстояния от точки А до начала координат используется вспомогательная переменная h.
Ответ:
Решение:
   
2263 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x,y: real;
begin
  readln(x,y);
  if x*x+y*y >= 4 then
    if x <= 2 then
      if y <= x then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2264 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x,y: real;
begin
  readln(x,y);
  if y >= -1 then
    if y <= sin(x) then
      if y >= x-1 then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2265 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if x*x + y*y >= 4 then
    if x >= –2 then
      if y <= –x then
        write('принадлежит') 
      else
        write('не принадлежит')
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2266 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y <= sin(x) then
    if y <= 0.5 then
      if y >= 0 then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2267 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y <= x then
    if y <= -x then
      if y >= x*x-2 then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2268 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y >= x then
    if y >= 0 then
      if y <= 2-x*x then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2269 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y >= x then
    if x <= 0 then
      if x*x+y*y <= 1 then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2270 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y <= x then
    if y >= -x then
      if x*x+y*y <= 1 then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2271 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x0, y¬0 – действительные числа) и определяет принадлежность точки заштрихованной области, НЕ включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x0, y0, y: real;
begin
  readln(x0, y0);
  if x0 < 2 then
    if x0 > 0 then
    begin
      y := x0/2 – 1;
      if y0 < y then
        write('принадлежит') 
      else
        write('не принадлежит')
    end 
  else
    write('не принадлежит');
  write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x0, y0, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2272 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y <= x*x then
    if x-y >= -2 then
      if x+y <= 2 then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2273 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if x*y >= 1 then
    if x <= 2 then
      if y <= 2 then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2274 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y >= 0 then
    if y <= 1 then
      if x >= 0 then
        if x <= pi then
          if y <= sin(x) then
            write('принадлежит') 
          else
            write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2275 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if x <= 1 then
    if y <= 1 then
      if x*x + y*y <= 1 then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. Объясните, почему для указанных чисел программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2276 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if y >= 0 then
    if x <= 1 then
      if y >= x*x then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. Объясните, почему для указанных чисел программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2277 ege24 Область без таблицы
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var
  x, y: real;
begin
  readln(x, y);
  if x <= 1 then
    if y >= 1-x then
      if y >= x*x then
        write('принадлежит') 
      else
        write('не принадлежит');
end.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. Объясните, почему для указанных чисел программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
Является ли степенью ( 4 )

_

2278 ege24 Является ли степенью
Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 5. То есть требуется определить, существует ли такое целое число К, что \(5^K =N\), и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.
var
  n, k: integer;
begin
  read(n);
  k := 0;
  while k mod 5 = 0 do
  begin
    k := k + 1;
    n := n div 5;
  end;
  if k = 1 then
    writeln(k) 
  else
    writeln('Нe существует')
end.
  int(input(n))
  k = 0
  while k % 5 == 0:
    k += 1
    n = n // 5
  if k == 1:
    print(k) 
  else:
    print('Нe существует')
void main(){
  int n,k;
  cin >> n;
  k = 0;
  while (k % 5 == 0){
    k++; 
    n = n / 5;
  }
  if (k == 1) then cout << k; 
  else cout << "Нe существует";
}
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 25.
2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
2279 ege24 Является ли степенью
Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 7. То есть требуется определить, существует ли такое целое число К, что \(7^K =N\), и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.
var
  n, k: integer;
begin
  read(n);
  k := 0;
  while n mod 7 = 0 do
  begin
    k := k + n div 7;
    n := n div 7;
  end;
  if n <= 7 then
    writeln(k) 
  else
    writeln('Нe существует')
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 49.
2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
2280 ege24 Является ли степенью
Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 4. То есть требуется определить, существует ли такое целое число К, что \(4^K = N\), и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.
var
  n, k: integer;
begin
  read(n);
  k := 0;
  while n mod 4 = 0 do
  begin
    k := k + n div 4;
    n := n div 4;
  end;
  if k = 1 then
    writeln(k) 
  else
    writeln('Нe существует')
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 16.
2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
2281 ege24 Является ли степенью
Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 3. То есть требуется определить, существует ли такое целое число K, что \(3^K = N\), и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.
var
  n, k: integer;
begin
  read(n);
  k := 0;
  while k mod 3 = 0 do
  begin
    k := k + 1;
    n := n div 3
  end;
  if n > 0 then
    writeln(k) 
  else
    writeln('Не существует')
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 9.
2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
Уравнения и неравенства (на таблицу) ( 3 )

_

2260 ege24 Уравнения и неравенства (на таблицу)
Требовалось написать программу, которая решает уравнение a|x|=b относительно 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.
Последовательно выполните три задания:
1. Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.
2. Укажите, какая часть программы является лишней.
3. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2261 ege24 Уравнения и неравенства (на таблицу)
Требовалось написать программу, которая решает уравнение 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
      write('нет решений') 
    else
      write('x =',-b/a);
end.
Последовательно выполните три задания:
1. Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.
2. Укажите, какая часть программы является лишней.
3. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2262 ege24 Уравнения и неравенства (на таблицу)
Требовалось написать программу, которая решает неравенство (x-a)/(bx) > 0 относительно для всех ненулевых действительных чисел a и b , введенных с клавиатуры. Программист торопился и сделал в программе ошибки.
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. Приведите примеры таких чисел a, b, x, при которых программа неверно решает поставленную задачу.
2. Укажите, какая часть программы является лишней?
3. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
Разбиение на цифры ( 12 )

_

2248 ege24 Разбиение на цифры
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится произведение цифр этого числа. Программист торопился и написал программу неправильно:
var
  n, product: longint;
  digit: integer;
begin
  readln(n);
  product := n mod 10;
  while n >= 10 do
  begin
    digit := n mod 10;
    product := product * digit;
    n := n div 10
  end;
  writeln ( product )
end.
Последовательно выполните следующее:
1. Определите, что выведет программа при вводе числа 532
2. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как надо исправить ошибку - приведите правильный вариант строки. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, имеющую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Ответ:
Решение:
   
2249 ege24 Разбиение на цифры
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальную цифру этого числа. Программист торопился и написал программу неправильно:
var
  n: longint;
  digit, min_digit: integer;
begin
  readln(n);
  min_digit := 0;
  while n > 0 do
  begin
    digit := n mod 10;
    if digit > min_digit then
      min_digit := digit;
    n := n div 10;
  end;
  writeln(min_digit);
end.
Последовательно выполните следующее:
1. Определите, что выведет программа при вводе числа 532
2. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как надо исправить ошибку - приведите правильный вариант строки. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, имеющую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Ответ:
Решение:
   
2250 ege24 Разбиение на цифры
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно:
var
  n: longint;
  count: integer;
begin
  readln(n);
  count := 1;
  while n > 1 do
  begin
    count := count + 1;
    n := n div 10;
  end;
  writeln(count);
end.
Последовательно выполните следующее:
1. Определите, что выведет программа при вводе числа 123
2. Укажите одно число, для которого программа выводит неверный результат.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как надо исправить ошибку - приведите правильный вариант строки. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, имеющую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Ответ:
Решение:
   
2251 ege24 Разбиение на цифры
Требовалось написать программу, при выполнении которой с клавиатуры вводится натуральное число, не превосходящее 108, и выводится его первая (старшая) цифра. Ученик написал такую программу:
var
  n: longint;
begin
  read(n);
  while n>10 do
  begin
    n := n mod 10
  end;
  write(n);
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 1984.
2. Приведите пример числа, при вводе которого программа выдаст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Ответ:
Решение:
   
2252 ege24 Разбиение на цифры
Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее 109, и выводит число, которое получается из N после удаления всех единиц; порядок остальных цифр при этом не меняется. Например, число 19520125 должно быть преобразовано в число 952025. Число, в котором все цифры – единицы и нули, должно быть преобразовано в 0. Незначащие нули в старших разрядах полученного числа печатать не нужно. Программист торопился и написал программу неправильно.
var
  n, r, t: longint;
  d: integer;
begin
  readln(n);
  r:=0;
  t:=1;
  while n>0 do
  begin
    d := n mod 10;
    if d<>1 then
    begin
      r := r + d*t;
      t := t+1
    end;
    n := n div 10;
  end;
  writeln(t);
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 314.
2. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) Выпишите строку, в которой сделана ошибка.
2) Укажите, как исправить ошибку – приведите правильный вариант строки. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.

Ответ:
Решение:
   
2253 ege24 Разбиение на цифры
Дано натуральное число N, не превосходящее 108. Необходимо найти и вывести число, которое получится при записи N справа налево и удалении всех единиц. Ведущие нули выводить не надо. Если в числе N нет цифр кроме единиц и нулей, необходимо вывести 0. Например, при вводе числа 1984 нужно вывести 489, а при вводе 2001 нужно вывести 2. Для решения этой задачи ученик написал такую программу:
var
  n, m: longint;
  d: integer;
begin
  read(n);
  m := 0;
  while n>=1 do
  begin
    d := n mod 10;
    if d > 1 then
    begin
      m := 10*d + m;
    end;
    n:= (n – d) div 10;
  end;
  write(m);
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 1984.
2. Приведите пример числа, при вводе которого программа выдаст верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой сделана ошибка, и приведите правильный вариант строки. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.

Ответ:
Решение:
   
2254 ege24 Разбиение на цифры
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно:
var
  n: longint;
  sum, d: integer;
begin
  readln(n);
  sum := 1;
  while n > 0 do
  begin
    d := n mod 10;
    n := n div 10;
    sum := sum + 1;
  end;
  writeln(sum);
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 256.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт правильный результат.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

Ответ:
Решение:
   
2255 ege24 Разбиение на цифры
На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 3. Если в числе нет цифр, кратных 3, требуется на экран вывести «NO». Программист написал программу неправильно. Напоминание: 0 делится на любое натуральное число.
var
  n,digit,maxdigit: longint;
begin
  readln(n);
  maxdigit := n mod 10;
  while n > 0 do
  begin
    digit := n mod 10;
    if digit mod 3 = 0 then
      if digit > maxdigit then
        maxdigit := digit;
    n := n div 10;
  end;
  if maxdigit = 0 then
    writeln('no') 
  else
    writeln(maxdigit)
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 134.
2. Приведите пример такого трёхзначного числа, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Ответ:
Решение:
   
2256 ege24 Разбиение на цифры
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно:
var
  n: longint;
  sum, d: integer;
begin
  readln(n);
  sum := 1;
  while n > 0 do
  begin
    d := n mod 10;
    n := n div 10;
    sum := d;
  end;
  writeln(sum);
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 256.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт правильный результат.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

Ответ:
Решение:
   
2257 ege24 Разбиение на цифры
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество значащих цифр в двоичной записи этого числа. Программист торопился и написал программу неправильно.
var
  x,cnt: integer;
begin
  readln(x);
  cnt := 0;
  while x > 0 do
  begin
    cnt:=cnt + x mod 2;
    x := x div 10
  end;
  writeln(cnt)
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 15.
2. Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк.
Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Ответ:
Решение:
   
2258 ege24 Разбиение на цифры
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество единиц в двоичной записи этого числа. Программист торопился и написал программу неправильно.
var
  x,cnt: integer;
begin
  readln(x);
  cnt := 0;
  while x > 0 do
  begin
    cnt:=cnt + 1;
    x := x mod 2
  end;
  writeln(cnt)
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 6.
2. Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк.
Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Ответ:
Решение:
   
2259 ege24 Разбиение на цифры
На обработку поступает положительное целое число, не превышающее 109. Нужно написать программу, которая выводит на экран сумму цифр этого числа, меньших 7. Если в числе нет цифр, меньших 7, требуется на экран вывести 0. Программист написал программу неправильно.
var
  n, digit, sum: longint;
begin
  readln(n);
  sum := 0;
  while n > 0 do
  begin
    digit := n mod 10;
    if digit < 7 then
      sum := sum + 1;
    n := n div 10;
  end;
  writeln(digit)
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 456.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Ответ:
Решение:
   
Прогрессии ( 6 )

_

2284 ege24 Прогрессии
Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство \(1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{K} \ge A\). Для решения этой задачи ученик написал такую программу:
var
  a, s: real;
  k: integer;
begin
  read(a);
  k := 1;
  s := 1;
  while s<=a do
  begin
    k := k + 1;
    s := 1.0/k;
  end;
  write(k);
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 0.4.
2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 2?
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
2285 ege24 Прогрессии
Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство \(1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{K} \ge A\). Для решения этой задачи ученик написал такую программу:
var
  a, s: real;
  k: integer;
begin
  read(a);
  k := 0;
  s := 1;
  while s >= a do
  begin
    k := k + 1;
    s := s + 1.0/k;
  end;
  write(k);
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 1.4.
2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 1?
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
2286 ege24 Прогрессии
Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство \(1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{K} < A\). Для решения этой задачи ученик написал такую программу:
var
  a, s: real;
  k: integer;
begin
  read(a);
  k := 0;
  s := 1;
  while s < a do
  begin
    k := k + 1;
    s := s + 1.0/k;
  end;
  write(k);
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 1.8.
2. Приведите пример числа, при вводе которого программа выведет правильный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
2287 ege24 Прогрессии
Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство \(1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{K} < A\). Для решения этой задачи ученик написал такую программу:
var
  a, s: real;
  k: integer;
begin
  read(a);
  k := 1;
  s := 1;
  while s < a do
  begin
    s := s + 1.0/k;
    k := k + 1;
  end;
  write(k);
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 1.2.
2. Приведите пример числа, при вводе которого программа выведет правильный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
2288 ege24 Прогрессии
Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство: \(1 + 2 + ... + K > N\). Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
var
  n, k: integer;
begin
  read(n);
  k := 1;
  while n > 0 do
  begin
    n := n - k;
    k := k + 1;
  end;
  writeln(k)
end.
Последовательно выполните следующее:
1. Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.
2. Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Ответ:
Решение:
   
2289 ege24 Прогрессии
Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство: \(1 + 2 + ... + K ≥ N\). Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
var
  n, k: integer;
begin
  read(n);
  k := 1;
  while n >= 0 do
  begin
    k := k + 1;
    n := n - k;
  end;
  writeln(k)
end.
Последовательно выполните следующее:
1. Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.
2. Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Ответ:
Решение:
   
Другое ( 9 )

_

2239 ege24 Другое
Требовалось написать программу, которая решает квадратное уравнение относительно х для действительных чисел а, Ь, с, введенных с клавиатуры, о которых заведомо известно, что а<>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. Укажите, как, по-вашему мнению, нужно доработать программу, чтобы не было случаев ее неправильной работы.
Ответ:
Решение:
   
2240 ege24 Другое
Требовалось написать программу, которая определяет, имеется ли среди введенных с клавиатуры положительных целых чисел а и Ь хотя бы одно четное. Была написана следующая программа:
var
  a, b: integer;
begin
  readln(a, b);
  a := a mod 2;
  if a > 0 then
    b := b mod 2;
  if b > 0 then
    writeln ('четных чисел нет') 
  else
    writeln ('четное число есть');
end.
Известно, что программа написана с ошибками. Последовательно выполните три задания:
1. приведите пример таких чисел а, b, при которых программа неверно решает поставленную задачу;
2. укажите, как, по вашему мнению, нужно доработать программу, чтобы не было случаев ее неправильной работы;
3. укажите, как можно доработать программу, чтобы она вместо вложенных операторов IF содержала логическую операцию OR.
Ответ:
Решение:
   
2241 ege24 Другое
Требовалось написать программу, которая определяет, можно ли построить треугольник из отрезков с длинами х, у, z. Программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки.
var
  х, у, z: real;
begin
  readln (x, у, z);
  if (x + y > z) then
  begin
    if (x + z > y) then
      if (y + z > x) then
        writeln('треугольник построить можно');
  end 
else
  writeln('треугольник построить нельзя');
end.
Последовательно выполните задания: 1. приведите пример таких чисел х, у, z, при которых программа неверно решает поставленную задачу.
2. укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать один из способов доработки исходной программы).
3. укажите, как можно доработать программу, чтобы она вместо вложенных операторов if содержала логическую операцию and.
Ответ:
Решение:
   
2242 ege24 Другое
Требовалось написать программу, которая вводит три целых числа в переменные a, b и c, а потом сортирует их так, чтобы в переменной a оказалось наименьшее число, в переменной b – среднее число, а в переменной c – наибольшее число. программист торопился и сделал в программе ошибки.
var
  a, b, c, x: integer;
begin
  read(a, b, c, x);
  if a > b then
  begin
    x:=a;
    a:=b;
    b:=x;
  end;
  if b > c then
  begin
    x:=b;
    b:=c;
    c:=x;
  end;
  write(a,b,c);
end.
Последовательно выполните три задания:
1. Приведите примеры таких чисел a, b, с, при которых программа неверно решает поставленную задачу.
2. Укажите, какая часть программы является лишней?
3. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы).
Ответ:
Решение:
   
2243 ege24 Другое
На вход программы поступают 4 неотрицательных целых числа, не превышающие 1000, среди которых могут быть одинаковые. Нужно написать программу, которая выводит количество чисел, кратных 3, и максимальное из этих чисел. Если среди входных данных нет чисел, кратных трёх, программа должна вывести слово 'NO'. Для решения этой задачи ученик написал такую программу:
const n = 4; 
var
  i, x: integer;
  var maximum, count: integer;
begin
  count := 0;
  maximum := 999;
  for i:=1 to n do
  begin
    read( x );
    if x mod 3 = 0 then
    begin
      count := count + 1;
      if x < maximum then
        maximum := x;
    end;
  end;
  if count > 0 then
  begin
    writeln(count);
    writeln(maximum);
  end 
else
  writeln('no');
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе чисел 2 9 4 3
2. Приведите пример такой последовательности, содержащей число, кратное 3, что, несмотря на ошибки, программа выдаст верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки: выпишите строку, в которой сделана ошибка, и приведите правильный вариант строки. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.
Ответ:
Решение:
   
2244 ege24 Другое
На обработку поступает последовательность из четырёх целых чисел. Нужно написать программу, которая выводит на экран количество неотрицательных чисел последовательности и их произведение. Если неотрицательных чисел нет, требуется вывести на экран «NO». Известно, что вводимые числа по абсолютной величине не превышают 10. Программист написал программу неправильно.
var
  p,i,x,count: integer;
begin
  count := 0;
  p := 0;
  for i := 1 to 4 do
  begin
    read (x);
    if x >= 0 then
    begin
      p := p*x;
      count := count+1
    end
  end;
  if count > 0 then
  begin
    writeln(х);
    writeln(p);
  end 
else
  writeln('no')
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе чисел -5 2 1 3
2. Приведите пример такой последовательности, содержащей хотя бы одно неотрицательное число, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
2245 ege24 Другое
На обработку поступает последовательность из четырёх целых чисел. Нужно написать программу, которая выводит на экран сумму всех отрицательных чисел последовательности и максимальное число в последовательности. Известно, что вводимые числа по абсолютной величине не превышают 1000. Программист написал программу неправильно.
var
  s,i,x,mx: integer;
begin
  mx := 0;
  s := 0;
  for i := 1 to 4 do
  begin
    read (x);
    if x < 0 then
      s := x;
    if x > mx then
      mx := x;
  end;
  writeln(s);
  writeln(mx)
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе чисел -5 2 -4 3
2. Приведите пример такой последовательности, содержащей хотя бы одно неотрицательное число, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответ:
Решение:
   
2246 ege24 Другое
Даны целые положительные числа M и N. Необходимо определить количество таких целых чисел K, для которых выполняется неравенство M ≤ K3 ≤ N. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
var
  m, n, k, t: integer;
begin
  read(m, n);
  k := 1;
  t := 1;
  while k*k*k <= n do
  begin
    if k*k*k > m then
      t := t + 1;
    k := k + 1;
  end;
  writeln(t)
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе M = 10 и N = 100.
2. Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Ответ:
Решение:
   
2247 ege24 Другое
Даны целые положительные числа M и N. Необходимо определить количество таких целых чисел K, для которых выполняется неравенство M ≤ K2 ≤ N. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
var
  m, n, k, t: integer;
begin
  read(m, n);
  k := 1;
  t := 1;
  while k*k < n do
  begin
    if k*k >= m then
      t := t + 1;
    k := k + 1;
  end;
  writeln(t)
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе M = 10 и N = 40.
2. Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Ответ:
Решение: