Тема «Алгоритмизация и программирование» наиболее широко представлена в ЕГЭ по информатике. Для успешного выполнения заданий этой темы нужно знать и уметь использовать на практике основные алгоритмические конструкции:
• полное и неполное ветвление;
• цикл с предусловием;
• цикл с постусловием;
• цикл с заданным числом итераций;
• вспомогательный алгоритм (подпрограмма).
Необходимо уметь составлять, анализировать и выполнять алгоритмы, используя различные формы записи:
• графический язык (блок-схемы);
• формальный язык (язык программирования).
Требуется также уметь использовать простые структуры данных — одномерные и двумерные массивы.
5.1. Программа для некоторого арифметического устройства представляет собой последовательность символов «+» и « • ». Символ «+» означает прибавление единицы к текущему результату вычислений, « • » — умножение на 2. Выполнение программы производится слева направо. Найдите результат работы устройства для заданного исходного числа и программы:
4 задание ЕГЭ информатика Для кодирования некоторой последовательности, состоящей
5.2. Составьте для устройства, описанного в предыдущем задании, программу длиной не более 6 символов, преобразующую заданное исходное число в заданный результат:
А) из 0 получить 17.
Ответ: ________________________________________________________________________
Б) из 3 получить 30.
Ответ: ______________________________________________________________
В) из -5 получить -30.
Ответ: __________________________________________________________________________
Г) из -2 получить 5.
Ответ:_________________________________________________________________________
Рассмотрим пример решения задачи с исполнителем РОБОТ
Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:
При выполнении этой команды РОБОТ перемещается на соответствующую клетку.
Команды проверки истинности условия на наличие стены у той клетки, где он находится:
Если РОБОТ начнет движение в сторону стены, то он разрушится.
А) Сколько клеток данного лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ остановится в той же клетке, с которой он начал движение?
ПОКА справа свободно ДЕЛАТЬ вправо ПОКА снизу свободно ДЕЛАТЬ вниз
ПОКА слева свободно ДЕЛАТЬ — влево ПОКА сверху свободно ДЕЛАТЬ вверх
В ответе запишите число — количество таких клеток, а далее, через запятые, их адреса (сначала идет латинская буква столбца, а затем цифра строки).
Например, нижний левый угол лабиринта имеет адрес Al.
Сначала определим свойства клеток, отвечающих требованию задачи.
Поскольку последний цикл программы РОБОТА
ДЕЛАТЬ вверх искомые клетки должны иметь границу сверху.
Таких клеток 14: вся верхняя горизонталь и клетки F7, G6 , B4, H4, Е2 и Hl.
Предпоследний цикл программы РОБОТА
Это значит, что в вертикали искомой клетки ниже нее обязательно должна быть клетка с левой границей, от которой «отскочил» РОБОТ перед тем, как пойти вверх.
Задание 4 | ЕГЭ по информатике | ДЕМО-2023
Из ранее найденных клеток этому условию удовлетворяют 4 — A8, B8, В4, G6.
При этом В8 надо тоже отбросить, поскольку в ее вертикали на пути от клетки В2 стоит горизонтальная граница между В4 и В5.
Далее используем остальные фрагменты программы. Выполнив программу целиком для трех оставшихся клеток, получаем, что условию задачи удовлетворяют только две из них — А8 и В4.
Ответ’.2, A8, В4.
5.3. Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх t, вниз ф, влево, вправо —
Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:
Выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Если РОБОТ начнет движение в сторону стены, то он разрушится и программа прервется.
Нарисуйте путь РОБОТА в лабиринте, если он начал движение по программе из указанной клетки.
вправо пока вниз пока влево пока вверх конец в4 » width=»639″ height=»185″ > |
ПОКА влево
ПОКА вверх
ПОКА вправо ПОКА вниз КОНЕЦ
ПОКА влево
ПОКА вправо
ПОКА вниз ПОКА вверх КОНЕЦ
5.4. Для исполнителя РОБОТ, описанного в предыдущем задании, составить программу не
Более чем из семи строк (включая строки «НАЧАЛО» и «КОНЕЦ»), обеспечивающую
Для решения задач на определение значения переменной после выполнения фрагмента программы или блок-схемы удобно использовать таблицу значений переменных.
Пример. Дана блок-схема алгоритма. Требуется найти значение переменной с после завершения алгоритма.
Решение 1-й способ
Составим таблицу значений переменных, добавив в нее для удобства результаты вычисления логического выражения.
Значение А
Значение С
Итак, ответ С= 4.
Внимательно проанализировав блок-схему, можно заметить, что она иллюстрирует последовательное удвоение переменной а, изначально равной единице, до тех пор, пока она не достигнет значения 16 = 24. Отсюда С = Iog216 = 4 .
5.5. Впишите во фрагмент блок-схемы пропущенные инструкции, необходимые для правильного решения поставленной задачи.
А) Найти минимальный элемент массива MИз 24 элементов.
Б) Найти сумму отрицательных элементов массива MИз 24 элементов.
В) Найти сумму положительных элементов массива M из 22 элементов, имеющих четные номера (нумерация элементов массива начинается с единицы).
Г) В массиве M 45 элементов. Найти, сколько подряд идущих элементов этого массива, начиная с первого, образуют возрастающую последовательность.
5.6. Составьте и запишите на естественном языке алгоритм, выполняющий:
А) Решение уравнения Ах = Ъ, где А и Ъ — числовые исходные данные;
Б) поиск количества минимальных элементов в заданном целочисленном массиве из
5 THEN s=s+A(i) NEXT I
For i:=l to n do A[i]:=ll-i;
For i:=l to n do if i>5 then s:=s+A [i] ;
Чему будет равно значение переменной SПосле выполнения данного алгоритма?
В) Дан фрагмент программы, обрабатывающей массив А из П элементов:
Алгоритмический
END IF NEXT k NEXT n
For i:=l to n do for k:=l to n do if i>k then
Как будет зависеть от П сумма элементов массива А после выполнения алгоритма? Напишите формулу вычисления суммы элементов массива А в зависимости от П.
Ответ:_________________________________________________________________________
Б) Значения двумерного массива размера П × п задаются с помощью вложенного оператора цикла в представленном фрагменте программы:
Алгоритмический
FOR i = l ТО п FOR k=l ТО n IF i=k THEN
END IF NEXT к NEXT n
For i:=l to n do for k:=l to n do if i=k then
Как будет зависеть от П сумма элементов массива А после выполнения алгоритма? Напишите формулу вычисления суммы элементов массива А в зависимости от П.
Ответ: ________________________________________________________________________
В) Значения двумерного массива размера П × п задаются с помощью вложенного оператора цикла в представленном фрагменте программы:
Алгоритмический
FOR i = l ТО n FOR k=l ТО n IF i>k THEN
END IF NEXT к NEXT n
For i:=l to n do for k:=l to n do if i>k then
Как будет зависеть от П сумма элементов массива А после выполнения алгоритма? Напишите формулу вычисления суммы элементов массива А в зависимости от П.
Ответ: ________________________________________________________________________
Г) Значения двумерного массива размера П × п задаются с помощью вложенного оператора цикла в представленном фрагменте программы:
Алгоритмический
FOR i=l ТО n FOR k=l ТО n IF i>k THEN
END IF NEXT к NEXT n
For i:=l to n do for k:=l to n do if i>k then
Как будет зависеть от П сумма элементов массива А после выполнения алгоритма? Напишите формулу вычисления суммы элементов массива А в зависимости от П.
Ответ:____________________________________
Б) поиск количества минимальных элементов в заданном целочисленном массиве из
5.11- Составте и запишите в виде программы на любом языке программирования алгоритм, выполняющий:
А) Решение уравнения α∣x∣ = где А и Ъ — исходные числовые данные;
В) Поиск наибольшего общего делителя двух натуральных чисел;
Г) поиск количества простых чисел в заданном целочисленном массиве из 50 элементов.
Важные рекомендации
Практика показывает, что наибольшие затруднения при выполнении заданий по теме «Алгоритмизация и программирование» вызывает составление программ и алгоритмов. Данное пособие не является учебником программирования, поэтому мы приведем лишь общие рекомендации, не зависящие от языка, на котором записываются программы:
• Перед составлением программы надо тщательно проанализировать условие задания, уяснить постановку задачи, формат входных и выходных данных.
• Приступать к написанию программы можно лишь тогда, когда детально продуман алгоритм решения задачи, не следует начинать писать программу, не представляя алгоритмического решения. Для простой задачи алгоритмическое решение можно держать и в голове, но лучше его зафиксировать на бумаге в виде пояснения или схемы.
• Для написания программы нужно пользоваться тем языком программирования, которым хорошо владеешь и который подходит для решения поставленной задачи. Не следует специально стремиться поразить экзаменаторов знанием экзотического или недавно появившегося языка программирования, поскольку дополнительные баллы за это не предусмотрены. Хорошая программа должна быть максимально простой и эффективной. Не нужно специально использовать сложные приемы или редко применяемые конструкции языка программирования, если в этом нет необходимости.
• Текст программы нужно писать аккуратно и разборчиво даже на черновике, структурированно, выделяя отступами уровень вложенности операторов, не скупясь на комментарии и пояснения. Отсутствие комментариев и пояснений вовсе не является признаком высокой квалификации программиста, скорее наоборот.
• При написании текста программы следует контролировать соответствие типов переменных и применяемых к ним операций, не допускать использования неопределенных (неинициализированных) значений переменных.
• Если текст программы получается, на ваш взгляд, очень сложным и запутанным, приостановите на время ее написание и подумайте, в чем причина этой сложности, нельзя ли найти более простое и изящное решение задачи.
• После того как программа написана, необходимо выполнить ее тестирование, то есть проверку правильности работы для различных исходных данных. Постарайтесь найти ошибку в своей программе, помните, что цель тестирования — поиск ошибок, а не демонстрация правильности программы. Гораздо лучше, если ошибку найдете и исправите вы сами, а не экзаменаторы при проверке.
• При тестировании следует подбирать набор тестовых данных так, чтобы все операторы, все «ветки» программы выполнились на совокупности тестов. Особое внимание следует уделить особым случаям исходных данных, пограничным, критическим точкам. Пусть, например, написана программа сортировки массива. Особыми здесь будут случаи, когда входной массив уже отсортирован в нужном порядке, когда он отсортирован в порядке обратном требуемому, а также когда все элементы сортируемого массива равны. Следует выявить такие критические точки и убедиться, что программа правильно работает на этих тестах.
• Если в задании приведен пример входных данных, его тоже надо включить в состав тестов, но он не должен быть единственным тестом!
• При тестировании следует еще раз сверить структуру исходных и выходных данных с заданием, убедиться, что составленная программа точно соответствует условию задачи.
• При тестировании необходимо внимательно контролировать синтаксис программы (должен быть явно указан тип каждой переменной, если этого требует язык программирования, переменные должны использоваться в соответствии со своим типом, не должно быть неинициализированных и неиспользуемых переменных, должны быть правильно расставлены операторные скобки и разделители операторов и т. д.).
• Если после тестирования программы осталось достаточно времени, то можно поработать над повышением ее эффективности, подумать, нельзя ли упростить ее, уменьшить количество циклов или требуемой для ее работы памяти. В случае внесения изменений в готовую программу процедуру тестирования придется повторить заново.
А) Найдите и исправьте ошибки в приведенной программе проверки принадлежности точки закрашенной области. Приведите пример, когда исходная программа работала неправильно.
Программа на Паскале
Программа на Бейсике
Источник: shtoryotirina.ru
(ТулГУ Теория алгоритмов и структуры данных) Программа для некоторого исполнителя представляет собой последовательность символов «-» и «*», заключенных в угловые скобки (<>). Символ «-» означает вычитание числа 3 из текущего результата вычислений, (Решение → 46450)
Программа для некоторого исполнителя представляет собой последовательность символов «-» и «*», заключенных в угловые скобки (<>). Символ «-» означает вычитание числа 3 из текущего результата вычислений, а «*» — умножение на 2. Выполнение программы производится слева направо.
Найдите результат работы исполнителя для исходного числа 10 и программы
Библиотека Ирины Эланс, основана как общедоступная библиотека в интернете. Онлайн-библиотеке академических ресурсов от Ирины Эланс доверяют студенты со всей России.
Библиотека Ирины Эланс
Полное или частичное копирование материалов разрешается только с указанием активной ссылки на сайт:
Ирина Эланс открыла библиотеку в 2007 году.
Источник: student-files.ru
Основные понятия Тема «Алгоритмизация и программирование» наиболее…
Тема «Алгоритмизация и программирование» наиболее широко представлена в ЕГЭ по информатике. Для успешного выполнения заданий этой темы нужно знать и уметь использовать на практике основные алгоритмические конструкции:
• полное и неполное ветвление;
• цикл с предусловием;
• цикл с постусловием;
• цикл с заданным числом итераций;
• вспомогательный алгоритм (подпрограмма).
Необходимо уметь составлять, анализировать и выполнять алгоритмы, используя различные формы записи:
• графический язык (блок-схемы);
• формальный язык (язык программирования).
Требуется также уметь использовать простые структуры данных — одномерные и двумерные массивы.
5.1. ■ Программа для некоторого арифметического устройства представляет собой последовательность символов «+» и « • ». Символ «+» означает прибавление единицы к текущему результату вычислений, « — » — умножение на 2. Выполнение программы производится слева направо. Найдите результат работы устройства для заданного исходного числа и программы:
5.2. Составьте для устройства, описанного в предыдущем задании, программу, длиной не более 6 символов, преобразующую заданное исходное число в заданный результат:
А) из 0 получить 17.
Ответ:___________________________________________________________________________
Б) из 3 получить 30.
В) из -5 получить -30.
Г) из -2 получить 5.
Рассмотрим пример решения задачи с исполнителем РОБОТ
Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:
При выполнении этой команды РОБОТ перемещается на соответствующую клетку.
Команды проверки истинности условия на наличие стены у той клетки, где он находится:
Если РОБОТ начнет движение в сторону стены, то он разрушится.
А) Сколько клеток данного лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ остановится в той же клетке, с которой он начал движение?
НАЧАЛО
ПОКА справа свободно
ДЕЛАТЬ вправо
ПОКА снизу свободно
ДЕЛАТЬ вниз
ПОКА слева Cbo6oi^ho ДЕЛАТЬ влево
ПОКА сверху свободно
ДЕЛАТЬ вверх
В ответе запишите число — количество таких клеток, а далее, через запятые, их адреса (сначала идет латинская буква столбца, а затем цифра строки).
Например, нижний левый угол лабиринта имеет адрес Al.
Сначала определим свойства клеток, отвечающих требованию задачи.
Поскольку последний цикл программы РОБОТА
ДЕЛАТЬ вверх искомые клетки должны иметь границу сверху.
Таких клеток 14: вся верхняя горизонталь и клетки F7, G6 , B4, H4, Е2 и Hl.
Предпоследний цикл программы РОБОТА
Это значит, что в вертикали искомой клетки ниже нее обязательно должна быть клетка с левой границей, от которой «отскочил» РОБОТ перед тем, как пойти вверх.
Из ранее найденных клеток этому условию удовлетворяют 4 — A8, B8, B4, G6.
При этом В8 надо тоже отбросить, поскольку в ее вертикали на пути от клетки В2 стоит горизонтальная граница между В4 и В5.
Далее используем остальные фрагменты программы. Выполнив программу целиком для трех оставшихся клеток, получаем, что условию задачи удовлетворяют только две из них — А8 и В4.
5.3. Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх Т, вниз 4 Команда
Выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Если РОБОТ начнет движение в сторону стены, то он разрушится и программа прервется.
Нарисуйте путь РОБОТА в лабиринте, если он начал движение по программе из указанной клетки.
ПОКА вправо ПОКА вниз ПОКА влево ПОКА вверх КОНЕЦ
ПОКА влево
ПОКА вверх
ПОКА вправо
ПОКА вниз КОНЕЦ
ПОКА влево
ПОКА вверх
ПОКА вправо
ПОКА вниз
ПОКА влево
ПОКА вправо
ПОКА вниз
ПОКА вверх
5.4. Для исполнителя РОБОТ, описанного в предыдущем задании, составить программу не более чем из семи строк (включая строки «НАЧАЛО» и «КОНЕЦ»), обеспечивающую нужное перемещение по заданному лабиринту
Для решения задач на определение значения переменной после выполнения фрагмента программы или блок-схемы удобно использовать таблицу значений переменных.
Пример. Дана блок-схема алгоритма. Требуется найти значение переменной С после завершения алгоритма.
Решение 1-й способ
Составим таблицу значений переменных, добавив в нее для удобства результаты вычисления логического выражения.
Значение А
Значение С
А = 16 ?
Итак, ответ С= 4.
Внимательно проанализировав блок-схему можно заметить, что она иллюстрирует последовательное удвоение переменной а, изначально равной единице, до тех пор, пока она не достигнет значения 16 = 24. Отсюда, С = Iog216 = 4 .
5.5. Впишите во фрагмент блок-схемы пропущенные инструкции, необходимые для правильного решения поставленной задачи.
А) Найти минимальный элемент массива MИз 24 элементов.
Б) Найти сумму отрицательных элементов массива MИз 24 элементов.
В) Найти сумму положительных элементов массива MИз 22 элементов, имеющих четные номера (нумерация элементов массива начинается с единицы).
Г) В массиве M 45 элементов. Найти, сколько подряд идущих элементов этого массива, начиная с первого, образуют возрастающую последовательность.
5.6. Составить и записать на естественном языке алгоритм, выполняющий:
А) решение уравнения Ах = Ь, где А и B — числовые исходные данные;
Минимальных элементов в заданном целочисленном массиве из
В) поиск наибольшего общего делителя двух натуральных чисел;
Г) поиск количества простых чисел в заданном целочисленном массиве из 50 элементов.
5-7. Составить и записать в виде блок-схемы алгоритм, выполняющий:
Б) поиск количества минимальных элементов в заданном целочисленном массиве из 50 элементов;
В) поиск наибольшего общего делителя двух натуральных чисел;
Г) поиск количества простых чисел в заданном целочисленном массиве из 50 элементов.
В задачах на определение результатов выполнения программы для одномерных и двумерных массивов необходимо определить закономерность обработки массива, поскольку его размерность может быть задана переменной величиной, а не конкретным значением.
Однако для того чтобы понять эту закономерность, иногда требуется выполнить несколько итераций цикла «вручную», используя табличное представление массива.
Пример’. Значения двумерного массива размера П × п задаются с помощью вложенного оператора цикла в представленном фрагменте программы.
Алгоритмический
Как будет зависеть от П сумма элементов массива А после выполнения алгоритма?
Изобразим двумерный массив в виде таблицы. На диагонали таблицы, там, где K = I,Будут находиться двойки. В остальных ячейках — нули.
X∖ k
Количество элементов диагонали — П, поэтому сумма элементов массива будет равна 2п.
5.8. Выполнить фрагмент программы и найти итоговые значения переменных:
Алгоритмический
B=(a MOD 1000) * 10 a=a∖1000+b
‘ и MOD — операции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно
B:=(a mod 1000) * 10;
B:=mod(a, 1000) * 10 a∙.=div (а, 1000) +b
I div и mod — функции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно|
Алгоритмический
B=(a MOD 10) * 1000
B: = (a mod 10) * 1000;
Алгоритмический
A=(7-5) * 4 b=(a MOD 3)+15 a=(b∖4)+3
B:=mod(a,3)+15 a:=div(b, 4)+3
Алгоритмический
A=(6+2) * 4 b=(a MOD 5)+1 a=(b∖6) -2
B:=(a mod 5)+1; а := (b div 6)-2
А:=(6+2) * 4 b:=mod (а, 5) +1 a :=div(Ь,6)-2
А) Дан фрагмент программы, обрабатывающей массив А из 10 элементов:
Алгоритмический
A(i)=i NEXT I j = 1 FOR i = 1 ТО n-1 IF A(i) 5 then
Нц для i от 1 до n
IF i>5 THEN s=s+A(i)
Чему будет равно значение переменной SПосле выполнения данного алгоритма?
В) Дан фрагмент программы, обрабатывающей массив А из П элементов:
Алгоритмический
Как будет зависеть от П сумма элементов массива А после выполнения алгоритма? Напишите формулу вычисления суммы элементов массива А, в зависимости от п.
Ответ: ___________________________________________________________________________
Б) Значения двумерного массива размера П × п задаются с помощью вложенного оператора цикла в представленном фрагменте программы:
Алгоритмический
FOR i=l ТО п FOR k=l ТО п IF i=k THEN
For i:=l to n do for k:=l to n do if i=k then
Как будет зависеть от П сумма элементов массива А после выполнения алгоритма? Напишите формулу вычисления суммы элементов массива А в зависимости от п.
Ответ: ___________________________________________________________________________
В) Значения двумерного массива размера П × п задаются с помощью вложенного оператора цикла в представленном фрагменте программы:
Алгоритмический
FOR i=l ТО n FOR k=l ТО n IF i>k THEN
For i:=l to n do for k:=l to n do if i>k then
Как будет зависеть от П сумма элементов массива А после выполнения алгоритма? Напишите формулу вычисления суммы элементов массива А в зависимости от п.
Ответ:___________________________________________________________________________
Г) Значения двумерного массива размера П х П задаются с помощью вложенного оператора цикла в представленном фрагменте программы:
Алгоритмический
FOR i=l ТО n FOR k=l ТО n IF i>k THEN
For i:=l to n do for k:=l to n do if i>k then
Как будет зависеть от П сумма элементов массива А после выполнения алгоритма? Напишите формулу вычисления суммы элементов массива А в зависимости от п.
Ответ:___________________________________________________________________________
5.11. Составить и записать в виде программы на любом языке программирования алгоритм, выполняющий:
Решение уравнения α∣x∣ = Ь, где A Mb — исходные числовые данные;
Поиск количества минимальных элементов в заданном целочисленном массиве из 50 элементов;
Поиск наибольшего общего делителя двух натуральных чисел;
Г) поиск количества простых чисел в заданном целочисленном массиве из 50 элементов.
Важные рекомендации
Практика показывает, что наибольшие затруднения при выполнении заданий по теме «Алгоритмизация и программирование» вызывает составление программ и алгоритмов (задачи Cl, С2 и С4 демоверсии ЕГЭ 2009 г.). Данное пособие не является учебником программирования, поэтому мы приведем лишь общие рекомендации, не зависящие от языка, на котором записываются программы:
• Перед составлением программы надо тщательно проанализировать условие задания, уяснить постановку задачи, формат входных и выходных данных.
• Приступать к написанию программы можно лишь тогда, когда детально продуман алгоритм решения задачи, не следует начинать писать программу, не представляя алгоритмического решения. Для простой задачи алгоритмическое решение можно держать и в голове, но лучше его зафиксировать на бумаге в виде пояснения или схемы.
• Для написания программы нужно пользоваться тем языком программирования, которым хорошо владеешь и который подходит для решения поставленной задачи. Не следует специально стремиться поразить экзаменаторов знанием экзотического или недавно появившегося языка программирования, поскольку дополнительные баллы за это не предусмотрены. Хорошая программа должна быть максимально простой и эффективной. Не нужно специально использовать сложные приемы или редко применяемые конструкции языка программирования, если в этом нет необходимости.
• Текст программы нужно писать аккуратно и разборчиво даже на черновике, структурировано, выделяя отступами уровень вложенности операторов, не скупясь на комментарии и пояснения. Отсутствие комментариев и пояснений вовсе не является признаком высокой квалификации программиста, скорее наоборот.
• При написании текста программы следует контролировать соответствие типов переменных и применяемых к ним операций, не допускать использования неопределенных (неинициализированных) значений переменных.
• Если текст программы получается, на ваш взгляд, очень сложным и запутанным, приостановите на время ее написание и подумайте, в чем причина этой сложности, нельзя ли найти более простое и изящное решение задачи.
• После того как программа написана, необходимо выполнить ее тестирование, то есть проверку правильности работы для различных исходных данных. Постарайтесь найти ошибку в своей программе, помните, что цель тестирования — поиск ошибок, а не демонстрация правильности программы. Гораздо лучше, если ошибку найдете и исправите вы сами, а не экзаменаторы при проверке.
• При тестировании следует подбирать набор тестовых данных так, чтобы все операторы, все «ветки» программы выполнились на совокупности тестов. Особое внимание следует уделить особым случаям исходных данных, пограничным, критическим точкам. Пусть, например, написана программа сортировки массива. Особыми здесь будут случаи, когда входной массив уже отсортирован в нужном порядке, когда он отсортирован в порядке обратном требуемому, а также когда все элементы сортируемого массива равны. Следует выявить такие критические точки и убедиться, что программа правильно работает на этих тестах.
• Если в задании приведен пример входных данных, его тоже надо включить в состав тестов, но он не должен быть единственным тестом!
• При тестировании следует еще раз сверить структуру исходных и выходных данных с заданием, убедиться, что составленная программа точно соответствует условию задачи.
• При тестировании необходимо внимательно контролировать синтаксис программы (должен быть явно указан тип каждой переменной, если этого требует язык программирования, переменные должны использоваться в соответствии со своим типом, не должно быть неинициализированных и неиспользуемых переменных, должны быть правильно расставлены операторные скобки и разделители операторов и т. д.)
• Если после тестирования программы осталось достаточно времени, то можно поработать над повышением ее эффективности, подумать, нельзя ли упростить ее, уменьшить количество циклов или требуемой для ее работы памяти. В случае внесения изменений в готовую программу процедуру тестирования придется повторить заново.
Найдите и исправьте ошибки в приведенной программе проверки принадлежности точки закрашенной области. Приведите пример, когда исходная программа работала
![]() |
Программа на Паскале
Программа на Бейсике
Источник: stomart-clinics.ru