Известно, что программа написана с ошибками. Последовательно выполните три задания:
- приведите пример таких чисел а, b, при которых программа неверно решает поставленную задачу;
- укажите, как, по вашему мнению, нужно доработать программу, чтобы не было случаев ее неправильной работы;
- укажите, как можно доработать программу, чтобы она вместо вложенных операторов IF содержала логическую операцию OR.
- Требовалось написать программу, которая определяет, можно ли построить треугольник из отрезков с длинами х, у, z. Программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки.
Var х, у, z: real;
- Приведите пример таких чисел х, у, z, при которых программа неверно решает поставленную задачу.
- Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать один из способов доработки исходной программы).
- Укажите, как можно доработать программу, чтобы она вместо вложенных операторов IF содержала логическую операцию AND.
- Требовалось написать программу, которая определяет, лежит ли точка А(х,у) внутри некоторого кольца («внутри» понимается в строгом смысле, т.е. случай, когда точка А лежит на границе кольца, недопустим). Центр кольца находится в начале координат. Для кольца заданы внутренний и внешний радиусы r1, r2; известно, что r1 отлично от r2, но неизвестно, r1>r2 или r2>r1. В том случае, когда точка А лежит внутри кольца, программа должна выводить соответствующее сообщение, в противном случае никакой выходной информации не выдается. Программист сделал в программе ошибки.
Var X, у, rl,r2:real;
- Приведите пример таких чисел х и у, при которых программа неверно решает поставленную задачу.
- Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
- Укажите, как можно доработать программу, чтобы она не содержала логических операций AND или OR.
- Требовалось написать программу, которая определяет, лежит ли точка А(х0,у0) внутри квадратной области, ограниченной прямыми, параллельными осям координат: у=-2, у=2, х=-2, х=2 («внутри» понимается в строгом смысле, т.е случай, когда точка А лежит на границе области, недопустим).
Источник: studfile.net
Подготовка к ЕГЭ по информатике 2019: 24 задания. Часть 5
Поиск ошибок в программе. Подготовка к решению задачи 24 — Алгоритмы
Задание 4.16.1. Программа должна определять наименьшую цифру в заданном натуральном числе. С клавиатуры считывается натуральное число N, не превосходящее 10 9 , и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно.
JavaScript — Полный Курс JavaScript Для Начинающих [11 ЧАСОВ]
Последовательно выполните следующее.
1. Что выведет эта программа при вводе числа 547?
2. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) Выпишите строку, в которой сделана ошибка.
2) Укажите, как исправить ошибку, приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно использующую другой алгоритм решения.
Задание 4.16.2. Программа должна определять количество единиц в десятичной записи заданного натурального числа. С клавиатуры считывается натуральное число N, не превосходящее 10 9 , и выводится количество единиц в десятичной записи этого числа. Программист торопился и написал программу неправильно.
Последовательно выполните следующее.
1. Что выведет эта программа при вводе числа 2171?
2. Приведите пример числа, для которого программа работает правильно.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) Выпишите строку, в которой сделана ошибка.
2) Укажите, как исправить ошибку, приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программера не написать свою, возможно использующую другой алгоритм решения.
Задание 4.16.3. С клавиатуры считывается натуральное число N, не превосходящее 10 9 . Программа должна выводить максимальную чётную цифру этого числа. Если таких цифр нет, нужно вывести на экран “NO”. Программист торопился и написал программу неправильно.
Последовательно выполните следующее.
1. Что выведет эта программа при вводе числа 427?
2. Приведите пример числа, для которого программа работает правильно.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) Выпишите строку, в которой сделана ошибка.
2) Укажите, как исправить ошибку, приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно использующую другой алгоритм решения.
Задание 4.16.4. С клавиатуры считывается натуральное число N, не превосходящее 10 9 . Программа должна выводить сумму цифр этого числа. Программист торопился и написал программу неправильно.
Последовательно выполните следующее.
1. Что выведет эта программа при вводе числа 528?
2. Приведите пример числа, для которого программа работает правильно.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) Выпишите строку, в которой сделана ошибка.
2) Укажите, как исправить ошибку, приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Задание 4.16.5. Требовалось написать программу, которая вводит с клавиатуры последовательность из n целых чисел (n=4), и выводит на экран сумму отрицательных чисел среди этой последовательности. Если в последовательности нет отрицательных чисел, программа должна вывести 0. Известно, что вводимые числа не превышают по модулю 1000. Программист торопился и написал программу неправильно.
Последовательно выполните следующее.
1. Что выведет эта программа при вводе чисел -1 1 3 -5?
2. Приведите пример такой входной последовательности, при которой программа работает верно.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
1) Выпишите строку, в которой сделана ошибка.
2) Укажите, как исправить ошибку, приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Задание 4.16.6. Требовалось написать программу, которая вводит с клавиатуры натуральное число N (N
Источник: compendium.school
Правила построения программы на Паскале 1, Бэйсике или Си
Тема: Исправление ошибок в простой программе с условными операторами.
- правила построения программы на Паскале 1 , Бэйсике или Си
- правила работы с переменными (объявление, ввод, вывод, оператор присваивания)
- ветвление – это выбор одного из двух возможных вариантов действий в зависимости от того, выполняется ли некоторое условие;
- на блок-схеме алгоритма ветвление изображается в виде блока-ромба с одним входом и двумя выходами:
- если условие, записанное внутри ромба, истинно (ответ «да» на вопрос «a=b?»), выполняются все команды, входящие в блок-1 (ветка «да»), иначе (если условие ложно) выполняются все команды в блоке-2 (ветка «нет»)
- в неполной форме условного оператора блок-2 пустой (отсутствует); теоретически можно сделать наоборот – так, чтобы блок-1 оказался пустой, но это очень неграмотное решение, поскольку оно осложняет понимание алгоритма, запутывает его
- одна команда ветвления может находиться внутри другой, например, так:
- на этой схеме блок-10 выполняется, когда a=b; блок-11 – когда a=b=c, блок-12 – когда a=b, но ac и, наконец, блок-2 – когда ab
- на этой схеме (Рисунок 3) одна команда ветвления (с условием «a=c») вложена в другую (с условием «a=b»), каждая из них – это ветвление в полной форме; если блок-12 будет пустой (отсутствует), внутреннее ветвление имеет неполную форму; аналогично, если блок-2 пустой, то внешнее ветвление имеет неполную форму
- условный операторif–else служит для организации ветвления в программе на языке Паскаль
- условный оператор может иметь полную или неполную форму; вот фрагменты программы, реализующие ветвления, показанные на рисунках 1 и 2:
- обычно при записи программы операторы, находящиеся внутри обоих блоков, сдвигают вправо на 2-3 символа (запись «лесенкой»), это позволяет сразу видеть начало и конец блока (конечно, если «лесенка» сделана правильно)
- после else не надо ( нельзя! ) ставить какое-то условие, эта часть выполняется тогда, когда условие после if неверно (частая ошибка – после else пытаются написать условие, обратное тому, которое стоит после соответствующего ему if)
- в Паскале перед else не ставится точка с запятой, поскольку это ключевое слово обозначает не начало нового оператора, а вторую часть условного оператора if–else
- слова begin и end (их называют также «операторные скобки») ограничивают блок-1 и блок-2; если внутри блока всего один оператор, эти «скобки» можно не писать, например, допустимы такие операторы
if a = b then
Источник: dmee.ru