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

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

Var n: longint;

while N > 1 do begin (3)

if N mod 2 = 0 then begin (4)

s := N mod 10; (5)

N := N div 10; (7)

write(s); (9)

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

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

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

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

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

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

[Python] Макрос за 5 минут | Автоматизируем мышку и клавиатуру с помощью AutoGUI

  1. начнем с того, что разберёмся в условии задачи: ограничение N< 10 9 введено для того, чтобы число поместилось в 4-байтовую переменную целого типа, для совместимости со всеми трансляторами Паскаля соответствующая переменная объявлена какlongint
  2. теперь разберём программу; строка (1) – это ввод исходного числа; очевидно, что переменная s– это результат, поскольку именно она выводится в строке (9)
  3. в строке (2) переменная sобнуляется, это естественно при накоплении суммы
  4. строки (3)-(8) – это цикл, который выполняется пока N > 1; на каждом шаге цикла Nделится на 10 нацело, то есть, из десятичной записи числа отбрасывается последняя цифра (строка (7)); такой цикл используется для того, чтобы перебрать все цифры числа, но обычно ставят условие «N> 0», поскольку в приведенном варианте цикл остановится при N = 1; однако в данном случае этоне влияет на результат, поскольку по условию нас интересуют только чётные цифры, а 1 – нечётная
  5. в строке (4) проверяется чётность числа (и одновременно чётность его последней цифры!), если число чётное, в строке (5) в переменную sзаписывается остаток от деления числа на 10, то есть последняя цифра десятичной записи этого числа
  6. таким образом, после выполнения цикла будет выведена последняя рассмотренная цифра, для которой сработает условие в строке (4)
  7. поскольку цифры перебираются с конца, выводится первая чётная цифра в записи числа
  8. начнём выполнять задание:
  1. когда программа выдаст верный ответ? очевидно, что тогда, когда сумма чётных цифр и значение первой чётной цифры совпадают; это возможно, если в числе
  • нет чётных цифр (сумма останется равной 0)
  • все чётные цифры – нули
  • одна чётная цифра
  • одна ненулевая чётная цифра, а нули стоят после неё (нули не меняют суммы!)
  1. как исправить программы? очевидно, нужно, чтобы она считала сумму чётных цифр, то есть, получив очередную чётную цифру, нужно добавить её к «старому» значению переменно s, изменив строку (5) так:
Читайте также:
Как установить программу дежавю на компьютер

Источник: studfile.net

C1. Поиск ошибок в программе со сложным условием

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

var a, s: integer;
begin
readln(a);
s:=0;
while a>0 do
begin
read(a);
if a mod 2=0 then
s:=s+a;
end;
writeln(s);
end.

Выполните следующие действия:
1. Напишите, что выведет программа при вводе чисел 50 2 14 0.
2. Приведите пример такой входной последовательности, при которой программа работает верно.
3. Укажите ошибки в программе и исправьте их. Для этого для каждой ошибки: выпишите строку, которая написана неправильно и приведите правильный вариант строки.

Источник: napyaterku.com

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

Чтобы купить курс,
пожалуйста, войдите
или зарегистрируйтесь

Вход/Регистрация Быстрый заказ

Быстрая регистрация

Информатика (Вариант 4)

Купить видеоуроки |

Приобретите наш курс

Для продолжения просмотра купите полный курс
наших видеоуроков

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

var х, у: real; begin readln(х, у) ; if х у * у then if х >= 0 then if у 1 then write(‘принадлежит’) else write end.
INPUT x, у IF x у * y THEN IF x >= 0 THEN IF у 1 THEN PRINT «принадлежит» ELSE PRINT «не принадлежит» ENDIF ENDIF ENDIF END
int main(void) float х, у; cin >> x >> у; if (x у * у) if (x >= 0) if (y 1) cout <«принадлежит»; else cout <«не принадлежит»; >
алг нач вещ х, у ввод х, у если х у * у то если х >= 0 то если у 1 то вывод ‘принадлежит’ иначе вывод ‘не принадлежит’ все все все кон

Читайте также:
Что такое программа sidebar

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран.

Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите «да» или «нет».

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

Программа выведет Область обрабатывается

Источник: 5splusom-school.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru