урок. 11класс_10урок. Урок 10 Анализ программ с помощью трассировочных таблиц
Скачать 0.52 Mb.
|
Урок 10 Анализ программ с помощью трассировочных таблиц Анализ программ с помощью трассировочных таблиц. Пример 3 Для анализа свойств алгоритма и проверки его соответствия решаемой задаче используются трассировочные таблицы. В них фиксируется пошаговое исполнение алгоритма (программы), что позволяет наглядно представлять значения переменных, изменяющиеся при его выполнении. Поэтому трассировочные таблицы иначе называют таблицами значений. Используются трассировочные таблицы двух видов: 1) таблицы, каждая строка которых отражает результат одного действия; 2) таблицы, каждая строка которых отражает результат выполнения группы действий. Пример 3. Определим значения переменных а и b, полученные в результате выполнения следующей программы: Составим трассировочную таблицу первого вида. В её заголовке поместим имена всех переменных, используемых в программе. В отдельном столбце будем записывать команды и условия, имеющиеся в программе. Каждая строка таблицы соответствует одному шагу алгоритма. Чтобы не загромождать таблицу, будем записывать в каждой строке только то значение переменной, которое получено на соответствующем шаге. Из таблицы видно, что в результате работы переменные приняли значения: а = 2 и b = 4. Пример 4 Пример 4. Определим значение переменной s, полученное в результате выполнения следующей программы: Построим трассировочную таблицу второго вида, отражая в каждой строке результат группы действий. Группу действий ограничим контрольной точкой: выполнение алгоритма продолжается до контрольной точки и приостанавливается после выполнения отмеченной ею строки. Будем считать, что контрольная точка (КТ) поставлена на строке s := s + d. Итак, в результате работы программы переменная приняла значение s = 60. Каким должно быть значение d, чтобы в результате работы программы переменная приняла значение s = 186? Существует ли такое значение d, что в результате работы программы переменная примет значение s = 212? Пример 5 Пример 5. Определим значение переменной s, полученное в результате выполнения следующей программы: Трассировочная таблица может иметь вид: Пример 6 Пример 6. Выясним, для чего предназначена следующая программа: Прежде всего, обратим внимание на то, что в ней кроме переменной п целого типа используется строка nd, для которой символ « + » обозначает операцию сцепления строк. Начальное значение n вводится с клавиатуры, поэтому зададим его по своему усмотрению, например n = 12. Выполните программу для n = 25. Какую задачу, по вашему мнению, решает эта программа? Компьютерную программу можно считать последовательностью строк символов некоторого алфавита. Современные системы программирования и языки допускают использование визуальных элементов (окон, иконок и др.) для построения программ, в частности для создания интерфейса пользователя. Тем не менее основная, алгоритмическая, часть любой программы строится с использованием символьных средств. Компьютер оперирует только одним видом данных — отдельными битами, или двоичными цифрами. Задачи, решаемые с помощью компьютера, оперируют данными, имеющими форму чисел, символов, текстов и более сложных структур. Алгоритмы для обработки этих данных создаются с учётом их структуры — множества элементов данных и множества связей между ними. Различают простые и сложные структуры данных. Простые структуры данных не могут быть разделены на составные части больше, чем бит. К ним относятся числовые, символьные, логические и другие данные. Простые структуры данных служат основой для построения сложных структур данных — массивов, списков, графов, деревьев и др. Для анализа свойств алгоритма и проверки его соответствия решаемой задаче используются трассировочные таблицы. В них фиксируется пошаговое исполнение алгоритма (программы), что позволяет наглядно представлять значения переменных, изменяющиеся при его выполнении. Используются трассировочные таблицы двух видов: 1) таблицы, каждая строка которых отражает результат одного действия; 2) таблицы, каждая строка которых отражает результат выполнения группы действий. Вопросы и задания: 1. Вещественные числа х, у, z являются исходными данными для следующего алгоритма: а) переменной m присвоить значение х; б) сравнить значения m и у: если у больше m, переменной m присвоить значение у; в) сравнить значения m и z: если z больше m, переменной m присвоить значение z. Выясните, какую задачу решает этот алгоритм. Запишите его на языке программирования Pascal. Решите аналогичную задачу для чисел х, у, z и w. 2. Определите значение переменной n, которое будет получено в результате выполнения следующей программы: 3. Определите значение переменной s, которое будет получено в результате выполнения следующей программы: 4. Требуется выяснить, какое число будет выведено в результате выполнения следующей программы: 5. Получив на вход число х, приведённая ниже программа выводит два числа — m и n. Известно, что при некотором значении х были выведены числа 4 и 8. Укажите наибольшее и наименьшее из таких чисел х. Сколько всего существует таких х? |