Определите что выведет данная программа
Задания Д24 C1 № 7769
cnt = cnt + x MOD 2
var x,cnt: integer;
cnt:=cnt + x mod 2;
using namespace std;
cnt:=cnt + x mod 2;
Задание 16 ЕГЭ (16.11), где определить, что выведет на экран программа при вызове F
procedure F(n: integer); forward; procedure G(n: integer); forward; procedure F(n: integer); begin if n > 2 then begin write(n); F(n — 1); G(n — 2); end else write(n+2); end; procedure G(n: integer); begin write(n); if n > 2 then begin G(n — 1); F(n — 2); end else write(n+1); end;
DECLARE SUB F(n) DECLARE SUB G(n) SUB F(n) IF n > 2 THEN PRINT n F(n — 1) G(n — 2) ELSE PRINT n+2 END IF END SUB SUB G(n) PRINT n IF n > 2 THEN G(n — 1) F(n — 2) ELSE PRINT n+1 END IF END SUB
def F(n): if n > 2: print(n, end=») F(n — 1) G(n — 2) else: print(n+2, end=») def G(n): print(n, end=») if n > 2: G(n — 1) F(n — 2) else: print(n+1, end=»)
Определите, что выведет на экран программа при вызове F(9).
procedure F(n: integer);
begin
write(n);
if n > 3 then begin
F(n – 4);
F(n div 2);
end;
end;
Сложность этой задачи в том, что вывод стоит до условий, а не в нем. Как тогда рассуждать?
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Сочинение рассуждения на тему что такое сострадание? Опираясь я произведения Яшка Платонова
Определите что выведет данная программа
Рабочая тетрадь по Информатике 9 класс Босова
Задание 78. Определите, что будет выведено в результате выполнения следующей программы. а)
Ответ: 4.5 — среднее значение элементов массива а. б)
Ответ: 4 — количество элементов массива, значения которых больше 10. в) Результат такой, потому что цикл затрагивает только 6 элементов массива (for i:=1 to 6), то есть a[7]=2 он не учитывает в программе. Именно по этому значение m, которое учитывает положительные числа, нашло только два элемента.
Ответ: m = 2 — количество положительных чисел среди первых шести элементов массива; n = 3 — количество отрицательных чисел среди первых шести элементов массива; к = 1 — количество нулей среди первых шести элементов массива. г)
Ответ: d = 4 — номер элемента массива, имеющего наибольшее значение (первого наибольшего, если таких элементов несколько).
Задания Д24 C1 № 7769
Определите что выведет данная программа
- Войти
- Регистрация
- Главная
- ЕГЭ
- Вопросы и ответы
- Перевод баллов
- Соответствие заданий
- Программирование
- Типы данных Pascal
- Математические функции
- Логические операции
- Приоритет операций
- Законы логики
- О системах счисления
- Перевод чисел
- Таблица триад и тетрад
- Досрочный-2016
- Демо-2016
- Досрочный-2015
- Алгебра логики
- Вариант 1
- Вариант 2
- Вариант 3
- Вариант 4
- Вариант 5
- Вариант 6
- Вариант 7
- Вариант 8
- Вариант 9
- Вариант 10
- Степени двойки
- IP, маска и адрес сети
- Решатор 5
- Решатор 13
На обработку поступает положительное целое число, не превышающее 10 9 . Нужно написать программу, которая выводит на экран сумму цифр этого числа, меньших 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. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.Источник: демоверсия ФИПИ по информатике и ИКТ 2016-го года.
В решении задания есть видеоразбор
Первым делом смотрим в условие задания, а именно, как должна работать программа без ошибок. Программа должна выводить сумму цифр числа, меньших 7. Выполним задания последовательно.
1. Что выведет программа при вводе числа 456.
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)Первая строка — N = 456
Вторая строка — sum = 0
- digit := 456 mod 10 = 6
- 6 < 7 — условие выполняется, следовательно sum := sum + 1 = 0 + 1 = 1
- N := N div 10 = 456 div 10 = 45
- digit := 45 mod 10 = 5
- 5 < 7 — условие выполняется, следовательно sum := sum + 1 = 1 + 1 = 2
- N := N div 10 = 45 div 10 = 4
- digit := 4 mod 10 = 4
- 4 < 7 — условие выполняется, следовательно sum := sum + 1 = 2 + 1 = 3
- N := N div 10 = 4 div 10 = 0
writeln(digit) — digit в последней итерации равна 4, то есть выводится 4.
Ответ: 4
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.
Пожалуй, самая сложная часть задания. Сначала давайте определим, что вообще выводит неверно написанная программа. Как мы видим, выводится значение digit. В цикле операция digit := N mod 10; выполняется каждый повтор цикла, в последнем повторе переменная digit равна первому (старшему) разряду числа. Проще говоря, мы ввели 456 — программа вывела 4, введём 389 — программа выведет 3.
Требовалось написать программу, которая выводит сумму цифр числа, меньших 7, то есть мы должны подобрать такое трёхзначное число, чтобы старший разряд этого числа был равен сумме цифр числа, которые меньше 7. Примером может быть, к примеру, число 936 — сумма разрядов, меньших 7 равна 9-ти, на экран выводится старший разряд, то есть 9.
Ответ: 936
3. Найдите все ошибки в этой программе.
Ошибка 1. Каждый повтор цикла при выполнении условия к переменной sum прибавляется единица. Программа должна искать сумму разрядов, а не их количество, то есть к переменной sum должна прибавляться переменная digit. Значит строку
нужно заменить на
sum := sum + digit;
Ошибка 2. Программа выводит значение переменной digit, должна же выводить значение переменной sum. Заменим строку
Ответ: sum := sum + 1; -> sum := sum + digit; и writeln(digit) -> writeln(sum)