Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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




10) судя по записи «лесенкой», else относится к самому первому оператору if, однако в самом деле это не так; перед словом else нет end, поэтому ищем ближайший if: это самый внутренний оператор, правильная запись «лесенкой» выглядит так:

if y <= 1 then

if x >= 0 then

if y >= sin(x) then

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

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

11) этот фрагмент программы соответствует блок-схеме, которая

показана на рисунке справа:

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

13) итак, первая часть ответа такова

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

14) остается исправить эту программу;
начнем с самого «лобового способа»: добавим в программу четвертый (вложенный) условный оператор, проверяющий условие , и еще три блока else, чтобы выводить строку «не принадлежит» в том случае, когда хотя бы один из них не сработал:

if x <= pi/2 then

if y <= 1 then

if x >= 0 then

if y >= sin(x) then

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

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

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

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

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

обратите внимание, что точка с запятой есть только после самого последнего оператора write, так как остальные стоят перед ключевым словом else, перед которым точка с запятой не ставится

15) хотя приведенный выше метод дает работоспособную программу, она получается слишком длинная и некрасивая для такой простой задачи; достаточно сказать, что оператор
write('не принадлежит')повторяется в тексте 4 раза

16) более элегантное решение формулируется на словах так: «точка принадлежит области, если выполняются одновременно 4 приведенных выше условия, а иначе – не принадлежит»; а вот реализация на Паскале (приведем программу-ответ целиком):

var x,y: real;







Begin

readln(x,y);

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

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

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

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

End.

здесь использовано сложное условие, в котором 4 отношения связаны операциями and («И», требуется одновременное выполнение всех условий)

 

Возможные проблемы: · как правило, в этой задаче требуется использовать знания из курса математики (решение уравнений, графики функций, область допустимых значений, составление уравнений прямой по приведенному графику) · как показывает анализ опубликованных задач этого типа, нужно уметь, прежде всего, разбираться в серии вложенных условных операторов в полной и неполной форме · неправильная «лесенка» в записи сбивает с толку и подталкивает к неверному решению; чтобы разобраться в программе, лучше на черновике построить блок-схему алгоритма и правильную «лесенку» · чтобы не запутаться, к какому оператору относится else, используйте следующее правило: o если перед else нет слова end, нужно искать ближайший сверху условный оператор if o если перед else стоит end (конец блока), нужно искать парный ему begin (начало блока) и соответствующий условный оператор if ... then begin · проверяйте, все ли необходимые условия учтены в программе, это особенно актуально для немонотонных функций типа синуса или косинуса (немонотонные функции на некоторых участках возрастают при увеличении аргумента, а на некоторых – убывают); например, в этой задаче можно пропустить необходимость выполнения условия · не перепутайте, где нужно использовать операцию and («И», одновременное выполнение условий), а где –or («ИЛИ», хотя бы одно условие) · нужно внимательно проверять, всегда ли программа выдает сообщение, если заданное условие не выполняется · часто бывает полезно нарисовать блок-схему алгоритма, которая позволяет увидеть ход выполнения программы при всех возможных вариантах · проверяйте, включает ли заданная область свои границы; если включает – в отношениях будут нестрогие неравенства (<=, >=), если не включает – строгие (<, >) · при оценке работы можно (при абсолютно правильном решении) потерять баллы из-за синтаксических ошибок в программе (скобки, точки с запятой, неправильное написание оператора  и т.п.); не забывайте, что o в сложном условии все простые условия (отношения) нужно брать в скобки, так как в Паскале отношения при вычислении логического выражения имеют самый низкий приоритет o перед else точка с запятой никогда не ставится o в конце программы после последнего end ставится точка

 

За что снимают баллы: · неправильно определены входные данные, при которых исходная программа работает неверно · исправлены не все ошибки в программе, например, легко «просмотреть», что необходимо еще условие · программа работает правильно в большем количестве случаев, чем исходная, но не для всех возможных исходных данных · перепутаны знаки < и >, логические операции or и and · неверно расставлены операторные скобки begin-end · синтаксические ошибки (знаки пунктуации – запятые, точки, точки с запятой; неверное написание ключевых слов); чтобы получить 3 балла, нужно при абсолютно правильном решении сделать не более одной синтаксической ошибки; на 2 балла – до двух ошибок, на 1 балл – до трех ошибок

Задачи для выполнения:

1) Требовалось написать программу, которая решает уравнение « » относительно 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) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

 

2) Требовалось написать программу, которая решает уравнение « » относительно 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) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

 

3) Требовалось написать программу, которая решает уравнение  относительно х для действительных чисел а, Ь, с, введенных с клавиатуры, о которых заведомо известно, что а¹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. Укажите, как, по-вашему мнению, нужно доработать программу, чтобы не было случаев ее неправильной работы.

4) Требовалось написать программу, которая решает неравенство  относительно  для всех ненулевых действительных чисел  и , введенных с клавиатуры. Программист торопился и сделал в программе ошибки.

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. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы).

 

5) Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство . Для решения этой задачи ученик написал такую программу:

Pascal Python
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. a = int(input()) k = 1 s = 1 while s <= a: k = k + 1 s = 1.0 / k print(k)

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

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

2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 2?

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

6) Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство . Для решения этой задачи ученик написал такую программу:

Pascal Python
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. a = int(input()) k = 0 s = 1 while s >= a: k = k + 1 s = s + 1.0/k print(k)

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

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

2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 1?

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

7) Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство . Для решения этой задачи ученик написал такую программу:

Pascal Python
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. a = float(input()) k = 0 s = 1 while s < a: k = k + 1 s = s + 1.0/k print(k)

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

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

2. Приведите пример числа, при вводе которого программа выведет правильный ответ.

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

8) Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство . Для решения этой задачи ученик написал такую программу:

Pascal Python
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. a = float(input()) k = 1 s = 1 while s < a: s = s + 1.0/k k = k + 1 print(k)

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

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

2. Приведите пример числа, при вводе которого программа выведет правильный ответ.

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

9) Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство:

1 + 2 + ... + K > N.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
var n, k: integer; begin read(n); k := 1; while n > 0 do begin n := n - k; k := k + 1; end; writeln(k) end. n = int(input()) k = 1 while n > 0: n = n – k k = k + 1 print(k)

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

1. Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.

2. Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.

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

10) Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство:

1 + 2 + ... + K ≥ N.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
var n, k: integer; begin read(n); k := 1; while n >= 0 do begin k := k + 1; n := n - k; end; writeln(k) end. n = int(input()) k = 1 while n >= 0: k = k + 1 n = n - k print(k)

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

1. Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.

2. Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.

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

11) Даны целые положительные числа M и N. Необходимо определить количество таких целых чисел K, для которых выполняется неравенство M ≤ K3 ≤ N. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
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. m, n = map(int, input().split()) k = 1 t = 1 while k*k*k <= n: if k*k*k > m: t = t + 1 k = k + 1 print(t)

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

1. Напишите, что выведет эта программа при вводе M = 10 и N = 100.

2. Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

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

 

12) Даны целые положительные числа M и N. Необходимо определить количество таких целых чисел K, для которых выполняется неравенство M ≤ K2 ≤ N. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
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. m, n = map(int, input().split()) k = 1 t = 1 while k*k < n: if k*k >= m: t = t + 1 k = k + 1 print(t)

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

1. Напишите, что выведет эта программа при вводе M = 10 и N = 40.

2. Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

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

13) Дано целое положительное число A. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма квадратов первых нечётных чисел 12 + 32+ … + K2 окажется больше A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная.

Pascal Python
var a, s, k: integer; begin read(A);  s := 0; k := -1;   while s < A do begin k := k + 1; s := s + k*k; end; writeln(k) end. A = int(input()) s = 0 k = -1 while s < A: k = k + 1 s = s + k*k print(k)

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

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

2. Укажите наименьшее значение A, при котором программа выведет верный ответ.

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

14) Дано целое положительное число A. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма квадратов первых нечётных чисел 12 + 32+ … + K2 окажется больше A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная.

Pascal Python
var a, s, k: integer; begin read(A);  s := 0; k := 1; while s <= A do begin s := s + k*k; k := k + 1; end; writeln(k) end. A = int(input()) s = 0 k = 1 while s <= A: s = s + k*k k = k + 1 print(k)

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

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

2. Укажите наименьшее значение A, при котором программа выведет верный ответ.

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

15) Дано целое положительное число A. Требуется вывести такое минимально возможное натуральное число K, при котором

1 + (1+2) + (1+2+3) + … + (1+2+…+K)

окажется больше A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная.

Pascal Python
var A, s, p, k: integer; begin read(A); s := 0; p := 0; k := 1; while s < A do begin p := p + k; s := s + p; k := k + 1; end; writeln(k); end. A = int(input()) s = 0 p = 0 k = 1 while s < A: p = p + k s = s + p k = k + 1 print(k)

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

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

2. Укажите любое значение A, при котором программа выведет верный ответ. Запишите этот ответ.

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

16) Дано целое положительное число A. Требуется вывести такое максимально возможное натуральное число K, при котором

1 + (1+2) + (1+2+3) + … + (1+2+…+K)

не превышает A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная.

Pascal Python
var A, s, p, k: integer; begin read(A); s := 0; p := 0; k := 1; while s <= A do begin k := k + 1; p := p + k; s := s + p; end; writeln(k); end. A = int(input()) s = 0 p = 0 k = 1 while s <= A: k = k + 1 p = p + k s = s + p print(k)

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

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

2. Укажите все значения A, при которых программа выведет ответ 4.

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

17) Даны натуральные числа A и B. Требуется найти такое минимально возможное натуральное число K ≥ A, что сумма всех чисел от A до K больше или равна B. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
var A, B, s, k: integer; begin read(A, B); s := 1; k := A; while s <= B do begin k := k + 1; s := s + k; end; writeln(k); end. A, B = map(int, input().split()) s = 1 k = A while s <= B: k = k + 1 s = s + k print(k)

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

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

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

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

18) Даны натуральные числа A и B. Требуется найти такое минимально возможное натуральное число K ≥ A, что сумма всех чисел от A до K больше, чем B. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
var A, B, s, k: integer; begin read(A, B); s := 0; k := A; while s < B do begin k := k + 1; s := s + k; end; writeln(k); end. A, B = map(int, input().split()) s = 0 k = A while s < B: k = k + 1 s = s + k print(k)

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

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

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

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

19) Дано натуральное число A>0. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма 1*2 + 3*4 + … + K*(K+1) окажется больше A. Приведённая ниже программа содержит ошибки.

Pascal Python
var A, s, k: integer; begin read(A); s := 0; k := 1; while s <= A do begin k := k + 1; s := s + k*(k+1); end; writeln(k) end. A = int(input()) s = 0 k = 1 while s <= A: k = k + 1 s = s + k*(k+1) print(k)

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

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

2. Укажите два наименьших значения A, при которых программа выведет верный ответ.

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

20) Дано натуральное число A>0. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма 1*2 + 3*4 + … + K*(K+1) окажется больше A. Приведённая ниже программа содержит ошибки.

Pascal Python
var A, s, k: integer; begin read(A); s := 0; k := 0; while s <= A do begin s := s + k*(k+1); k := k + 1; end; writeln(k) end. A = int(input()) s = 0 k = 0 while s <= A: s = s + k*(k+1) k = k + 1 print(k)

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

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

2. Укажите два наименьших значения A, большие, чем 10, при которых программа выведет верный ответ.

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

 

1) На обработку поступает последовательность из четырёх целых чисел. Нужно написать программу, которая выводит на экран количество неотрицательных чисел последовательности и их произведение. Если неотрицательных чисел нет, требуется вывести на экран «NO». Известно, что вводимые числа по абсолютной величине не превышают 10. Программист написал программу неправильно.

Pascal Python
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. count = 0 p = 0 for i in {1, 2, 3, 4}: x = int(input()) if x >= 0: p = p * x count = count + 1 if count > 0: print(x) print(p) else: print('NO')

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

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

2. Приведите пример такой последовательности, содержащей хотя бы одно неотрицательное число, что, несмотря на ошибки, программа печатает правильный ответ.

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

2) На обработку поступает последовательность из четырёх целых чисел. Нужно написать программу, которая выводит на экран сумму всех отрицательных чисел последовательности и максимальное число в последовательности. Известно, что вводимые числа по абсолютной величине не превышают 1000. Программист написал программу неправильно.

Pascal Python
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. mx = 0 s = 0 for i in {1, 2, 3, 4}: x = int(input()) if x < 0: s = x if x > mx: mx = x print(s) print(mx)

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

1. Напишите, что выведет эта программа при вводе чисел -5 2 -4 3.

2. Приведите пример такой последовательности, содержащей хотя бы одно неотрицательное число, что, несмотря на ошибки, программа печатает правильный ответ.

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

3) На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 3. Если в числе нет цифр, кратных 3, требуется на экран вывести «NO». Программист написал программу неправильно. Напоминание: 0 делится на любое натуральное число.

Pascal Python
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. N = int(input()) maxDigit = N % 10 while N > 0: digit = N % 10 if digit % 3 == 0: if digit > maxDigit: maxDigit = digit N = N // 10 if maxDigit == 0: print('NO') else: print(maxDigit)

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

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

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

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

4) На обработку поступает положительное целое число, не превышающее 109. Нужно написать программу, которая выводит на экран сумму цифр этого числа, меньших 7. Если в числе нет цифр, меньших 7, требуется на экран вывести 0. Программист написал программу неправильно.

Pascal Python
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. N = int(input()) sum = 0 while N > 0: digit = N % 10 if digit < 7: sum = sum + 1 N = N // 10 print(digit)

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

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

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.

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

5) Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 5. То есть требуется определить, существует ли такое целое число К, что 5K =N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.

Pascal Python
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('He существует') end. n = int(input()) k = 0 while k % 5 == 0: k = k + 1 n = n // 5 if k == 1: print(k) else: print('Не существует')

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

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

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

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

6) Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 7. То есть требуется определить, существует ли такое целое число К, что 7K =N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.

Pascal Python
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('He существует') end. n = int(input()) k = 0 while n % 7 == 0: k = k + n // 7 n = n // 7 if n <= 7: print(k) else: print('Не существует')

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

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

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

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

7) Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 4. То есть требуется определить, существует ли такое целое число К, что 4K =N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.

Pascal Python
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('He существует') end. n = int(input()) k = 0 while n % 4 == 0: k = k + n // 4 n = n // 4 if k == 1: print(k) else: print('Не существует')

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

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

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

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

8) Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 3. То есть требуется определить, существует ли такое целое число K, что 3K = N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.

Pascal Python
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. n = int(input()) k = 0 while k % 3 == 0: k = k + 1 n = n // 3 if n > 0: print(k) else: print('Не существует')

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

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

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

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

9) Дано натуральное число A, большее 9, в записи которого нет нулей. Требуется найти максимальное двузначное число, которое можно увидеть в записи числа A. Например, для числа 18943 ответом будет число 94. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
var A, n2: integer; begin read(A); n2 := 0; while A > 100 do begin if A mod 100 > n2 then   n2 := A mod 100; A := A div 100; end; writeln(n2); end. A = int(input()) n2 = 0 while A > 100: if A % 100 > n2: n2 = A % 100 A = A // 100 print(n2)

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

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

2. Укажите одно значение A, при вводе которого программа выведет правильный ответ. Укажите это ответ.

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

10) Дано натуральное число A, в записи которого нет нулей. Требуется найти минимальное двузначное число, которое можно увидеть в записи числа A. Например, для числа 815943 ответом будет число 15. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
var A, n2: integer; begin read(A); n2 := 10; while A > 100 do begin if A mod 100 < n2 then   n2 := A mod 100; A := A div 100; end; writeln(n2); end. A = int(input()) n2 = 10 while A > 100: if A % 100 < n2: n2 = A % 100 A = A // 100 print(n2)

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

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

2. Укажите одно значение A, при вводе которого программа выведет правильный ответ. Укажите это ответ.

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

11) На вход программы поступает натуральное число. Требуется определить сумму цифр в десятичной записи этого числа, которые не кратны 3 (считается, что 0 кратно любому числу). Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
var N, digit, sum: longint; begin readln(N); sum := N mod 10; while N > 0 do begin digit := N mod 10; if digit mod 3 > 0 then sum := digit; N := N div 10; end; if sum > 0 then writeln(sum) else writeln('NO') end. N = int(input()) sum = N % 10 while N > 0: digit = N % 10 if digit % 3 > 0: sum = digit N = N // 10 if sum > 0: print(sum) else: print('NO')

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

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

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

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

12) На вход программы поступает натуральное число. Требуется определить сумму цифр в десятичной записи этого числа, которые кратны 3 (считается, что 0 кратно любому числу). Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Pascal Python
var N, digit, sum: longint; begin readln(N); sum := N mod 10; while N > 0 do begin digit := N mod 10; if digit mod 3 = 0 then sum := digit; N := N div 10; end; if sum > 0 then writeln(sum) else writeln('NO') end. N = int(input()) sum = N % 10 while N > 0: digit = N % 10 if digit % 3 == 0: sum = digit N = N // 10 if sum > 0: print(sum) else: print('NO')

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

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

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

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

13) Числа Фибоначчи задаются рекуррентным соотношением f(0) = 0, f(1) = 1 и f(n) = f(n – 1) + f(n – 2) для всех целых n ³ 0. Требовалось написать программу, которая по входному целому неотрицательному значению 𝑛, не превосходящему 20, определяет соответствующее число Фибоначчи f(n). Приведённая ниже программа содержит ошибки.

Pascal Python
var n, i, f, fn : integer; begin read(n); fn := 1; f := 1; for i := 1 to n do begin f := f + fn; fn := f - fn end; write(fn - 5) end. n = int(input()) fn = 1 f = 1 for i in range(1, n+1): f = f + fn fn = f - fn print(fn - 5)

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

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

2. Укажите одно значение входной переменной n, при вводе которого программа выведет правильный ответ. Укажите это ответ.

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

14) Требовалось написать программу, которая для введённого натурального числа n выводит общее количество его различных делителей, включая 1 и n. К сожалению, ученик написал программу с ошибками:

Pascal Python
var n, j, k : integer; begin read(n); j := 2; k := 0; while j * j < n do begin if n mod j = 0 then k := k + 2; j := j + 1 end; if j * j = n then k := k + 3; write(k) end. n = int(input()) j = 2 k = 0 while j*j < n: if n % j == 0: k = k + 2 j = j + 1 if j*j == n: k = k + 3 print(k)

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

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

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

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

15) На вход программы поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, меньшую 5. Если в числе нет цифр, меньших 5, требуется на экран вывести «NO». В приведённой программе есть ошибки.

Pascal Python
var N, d, m: longint; begin readln(N); m := N mod 10; while N > 0 do begin d := N mod 10; if d < 5 then if d > m then m := d; N := N div 10; end; if m = 0 then   writeln('NO') else writeln( m ) end. N = int(input()) m = N % 10 while N > 0: d = N % 10 if d < 5: if d > m: m = d N = N // 10 if m == 0: print('NO') else: print(m)

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

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

2. Укажите наибольшее трёхзначное значение входной переменной n, при вводе которого программа выведет правильный ответ. Укажите это ответ.

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

16) На вход программы поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 3. Если в числе нет цифр, кратных 3, требуется на экран вывести «NO». В приведённой программе есть ошибки.

Pascal Python
var N, d, m: longint; begin readln(N); m := 0; while N > 0 do begin d := N mod 10; if d mod 3 = 0 then if d > m then m := d; N := N div 10; end; if m = 0 then   writeln('NO') else writeln( m ) end. N = int(input()) m = 0 while N > 0: d = N % 10 if d % 3 == 0: if d > m: m = d N = N // 10 if m == 0: print('NO') else: print(m)

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

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

2. Укажите наименьшее трёхзначное значение входной переменной n, при вводе которого программа выведет правильный ответ. Укажите это ответ.

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

17) Требовалось написать программу, которая определяет, можно ли построить треугольник из отрезков с длинами х, у, 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.

 

18) Требовалось написать программу, которая вводит три целых числа в переменные 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. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы).

 

19) В корзине лежит a красных и b синих шаров. Из корзины наугад вынимают n шаров. Требовалось написать программу, которая определяет количество вариантов такого опыта (вариантом считаем пару чисел: количество вынутых красных и синих шаров). Программист торопился и написал программу неправильно: 

Pascal Python
var n, a, b: integer; begin readln(n, a, b); if a + b < n then writeln(0) else if a < b then if a < n then writeln(a+1) else if b < n then writeln(b+1) else writeln(n+1); end. n, a, b = map(int, input().split()) if a + b < n: print(0) else: if a < b: if a < n: print(a+1) else: if b < n: print(b+1) else: print(n+1)

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

1. Определите, что выведет программа при n = 5, a = 3, b = 6.

2. Укажите значения n, a, b, при которых программа выдаёт неправильный ответ.

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

 

20) Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится произведение цифр этого числа. Программист торопился и написал программу неправильно: 

Pascal Python
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. N = int(input()) product = N % 10 while N >= 10: digit = N % 10 product = product * digit N = N // 10 print(product)

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

1. Определите, что выведет программа при вводе числа 532.

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

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

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

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

21) Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальную цифру этого числа. Программист торопился и написал программу неправильно: 

Pascal Python
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. N = int(input()) min_digit = 0 while N > 0: digit = N % 10 if digit > min_digit: min_digit = digit N = N // 10 print(min_digit)

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

1. Определите, что выведет программа при вводе числа 532.

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

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

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

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

22) Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно: 

Pascal Python
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. N = int(input()) count = 1 while N > 1: count = count + 1 N = N // 10 print(count)

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

1. Определите, что выведет программа при вводе числа 123.

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

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

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

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

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

23) Требовалось написать программу, при выполнении которой с клавиатуры вводится натуральное число, не превосходящее 108, и выводится его первая (старшая) цифра. Ученик написал такую программу:

Pascal Python
var n: longint; begin read(n); while n>10 do begin n := n mod 10 end; write(n); end. n = int(input()) while n > 10: n = n % 10 print(n)

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

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

2. Приведите пример числа, при вводе которого программа выдаст верный ответ.

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

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

24) Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее 109, и выводит число, которое получается из N после удаления всех единиц; порядок остальных цифр при этом не меняется. Например, число 19520125 должно быть преобразовано в число 952025. Число, в котором все цифры – единицы и нули, должно быть преобразовано в 0. Незначащие нули в старших разрядах полученного числа печатать не нужно. Программист торопился и написал программу неправильно.

Pascal Python
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. N = int(input()) R = 0 T = 1 while N > 0: d = N % 10 if d != 1: R = R + d*T T = T + 1 N = N // 10 print(T)

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

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

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

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

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

строки.

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

25) Дано натуральное число N, не превосходящее 108. Необходимо найти и вывести число, которое получится при записи N справа налево и удалении всех единиц. Ведущие нули выводить не надо. Если в числе N нет цифр кроме единиц и нулей, необходимо вывести 0. Например, при вводе числа 1984 нужно вывести 489, а при вводе 2001 нужно вывести 2. Для решения этой задачи ученик написал такую программу:

Pascal Python
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. n = int(input()) m = 0 while n >= 1: d = n % 10 if d > 1: m = 10*d + m n = (n - d) // 10 print(m)

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

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

2. Приведите пример числа, при вводе которого программа выдаст верный ответ.

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

строки.

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

 

26) На вход программы поступают 4 неотрицательных целых числа, не превышающие 1000, среди которых могут быть одинаковые. Нужно написать программу, которая выводит количество чисел, кратных 3, и максимальное из этих чисел. Если среди входных данных нет чисел, кратных трём, программа должна вывести слово 'NO'. Для решения этой задачи ученик написал такую программу:

Pascal Python
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. n = 4 count = 0 maximum = 999 for i in range(1, n+1): x = int(input()) if x % 3 == 0: count = count + 1 if x < maximum: maximum = x if count > 0: print(count) print(maximum) else: print('NO')

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

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

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

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

строки.

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

27) Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно:

Pascal Python
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. N = int(input()) sum = 1 while N > 0: d = N % 10 N = N // 10 sum = sum + 1 print(sum)

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

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

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт правильный результат.

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

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

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

28) Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно:

Pascal Python
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. N = int(input()) sum = 1 while N > 0: d = N % 10 N = N // 10 sum = d print(sum)

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

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

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт правильный результат.

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

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

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

 

29) Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество значащих цифр в двоичной записи этого числа. Программист торопился и написал программу неправильно.

Pascal Python
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. x = int(input()) cnt = 0 while x > 0: cnt = cnt + x % 2 x = x // 10 print(cnt)

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

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

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

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










Последнее изменение этой страницы: 2018-06-01; просмотров: 333.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...