Вспомогательные алгоритмы с аргументами. Алгоритмы-процедуры и алгоритмы-функции в кумир Аргумент вещественных чисел чертежник кумир

Вспомогательные алгоритмы с аргументами. Алгоритмы-процедуры и алгоритмы-функции в кумир Аргумент вещественных чисел чертежник кумир
Вспомогательные алгоритмы с аргументами. Алгоритмы-процедуры и алгоритмы-функции в кумир Аргумент вещественных чисел чертежник кумир

Задания расcчитаны на группу в 10 человек. Каждая карточка содержит 2 задания разной степени сложности.

Вариант 1

1.

2.

Вариант 2

1. Напишите алгоритм с аргументами для рисования фигуры, изображенной на рисунке. В качестве аргументов выступают размеры фигуры, указанные на рисунке.

2.

Вариант 3

1. Напишите алгоритм с аргументами для рисования фигуры, изображенной на рисунке. В качестве аргументов выступают размеры фигуры, указанные на рисунке.

2. Начертите фигуру, изображенную на рисунке, используя вспомогательный алгоритм с аргументами для рисования отдельного элемента. Количество повторений витков спирали задается пользователем.

Вариант 4

1. Напишите алгоритм с аргументами для рисования фигуры, изображенной на рисунке. В качестве аргументов выступают размеры фигуры, указанные на рисунке.

2. Начертите фигуру, изображенную на рисунке, используя вспомогательный алгоритм с аргументами для рисования отдельного элемента. Количество повторений витков спирали задается пользователем.

Вариант 5

1. Напишите алгоритм с аргументами для рисования фигуры, изображенной на рисунке. В качестве аргументов выступают размеры фигуры, указанные на рисунке.

2. Начертите фигуру, изображенную на рисунке, используя вспомогательный алгоритм с аргументами для рисования отдельного элемента. Количество повторений элементов и количество повторений прямоугольников внутри одного элемента задается пользователем.

Вариант 6

1. Напишите алгоритм с аргументами для рисования фигуры, изображенной на рисунке. В качестве аргументов выступают размеры фигуры, указанные на рисунке.

2.

Вариант 7

1. Напишите алгоритм с аргументами для рисования фигуры, изображенной на рисунке. В качестве аргументов выступают размеры фигуры, указанные на рисунке.

2. Начертите фигуру, изображенную на рисунке, используя вспомогательный алгоритм с аргументами для рисования отдельного элемента. Количество повторений элементов и количество повторений прямоугольников внутри одного элемента задается пользователем.

Вариант 8

1. Напишите алгоритм с аргументами для рисования фигуры, изображенной на рисунке. В качестве аргументов выступают размеры фигуры, указанные на рисунке.

2. Начертите фигуру, изображенную на рисунке, используя вспомогательный алгоритм с аргументами для рисования отдельного элемента. Количество повторений элементов и количество повторений квадратов внутри одного элемента задается пользователем.

Методика изучения вспомогательных алгоритмов Основные цели:    Познакомить с понятием вспомогательного алгоритма. Познакомить с построением алгоритмов методом последовательного уточнения. Познакомить с правилами записи и исполнения вспомогательных алгоритмов с аргументами. Основные понятия:  вспомогательный алгоритм;  основной алгоритм;  вызов вспомогательного алгоритма. В школьном курсе информатики идея структурного программирования заложена в теме "Вспомогательные алгоритмы". Она по праву считается одной из главных тем в разделе "Алгоритмы", так как именно здесь отражается идея системного анализа, структурирования и конструирования. Систематическое и целенаправленное применение идей структурного подхода (в частности метода последовательной детализации) - один из путей рационального обучения учащихся технике алгоритмизации. Он полезен и в плане воспитания учащихся, т. к. развивает умение планировать свои действия при решении сложных задач, способности к общению и коллективной деятельности. Способность к структуризации – фундаментальное свойство человеческого мышления. Оно заключается в способности использовать то, что уже сделано ранее. Например, решая геометрическую задачу, мы используем теоремы, которые были доказаны ранее. Декомпозиция задачи, т.е. ее разбиение на более простые подзадачи является важнейшим приемом алгоритмизации и программирования. Алгоритмы решения таких подзадач называются вспомогательнымм, а реализующие их программы – подпрограммами (процедурами). Вспомогательный алгоритм должен:  иметь имя, с помощью которого его можно вызвать из основного или другого вспомогательного алгоритма  возвращать управление тому алгоритму, из которого был вызван  быть относительно небольшим Основной алгоритм определяет порядок вызова вспомогательных алгоритмов для решения задачи. алг АЛГ 1 нач серия команд основной алгоритм АЛГ 2 команда вызова серия команд кон алг АЛГ 2 нач вспомогательный алгоритм серия команд кон Понятие вспомогательного алгоритма является одним из базовых понятий курса информатики, а способ конструирования алгоритмов методом последовательной детализации с использованием вспомогательных алгоритмов – один из самых эффективных приемов программирования. Суть этого метода состоит в том, что любой алгоритм, как правило, сразу невозможно конкретизировать в командах, которые входят в систему команд исполнителя. Поэтому удобно начать составление алгоритма в боле ""крупных"" командах, не входящих в систему команд исполнителя, но понятных автору алгоритма. Эти ""крупные"" команды записываются как вызовы вспомогательных алгоритмов, которые затем уточняются до тех пор, пока не будут состоять из команд, понятных исполнителю. Программирование в этом случае начинается с записи основной программы, из которой идет обращение к вспомогательным алгоритмам. Очень важно, чтобы учащиеся четко представляли себе всю непростую схему действий исполнителя при обращении к вспомогательному алгоритму с конкретными аргументами и возврате в основной алгоритм с полученными результатами. Преимущества использования вспомогательных алгоритмов следует продемонстрировать на примерах, в которых вызов вспомогательного алгоритма осуществляется многократно. Например, составить алгоритм рисования числа «1919» для исполнителя «Чертежник». Учащиеся уже умеют выполнять подобные задания и составление длинного линейного алгоритма будет им неинтересно. В этой ситуации возможно ученики сами прийджут к идее вспомогательного алгоритма, обратив внимание на то, что в рисунке дважды присутствуют цифры «1» и «9» . Можно отдельно описать алгоритмы рисования этих цифр, а затем использовать их для получения числа «1919». Умение использовать вспомогательные алгоритмы следует вырабатывать у учеников как можно раньше, уже на примерах линейных алгоритмов. На первом этапе следует рассмотреть вспомогательные алгоритмы без параметров. Затее перейти к изучению алгоритмов-функций и вспомогательных алгоритмов с параметрами. Следует добиться четкого понимания учащимися какие параметры вспомогательного алгоритма являются входными, а какие выходными (результатом выполнения впомогательного алгоритма). Учащиеся должны понимать разницу между формальными и фактическими параметрами. Примеры составления вспомогательных алгоритмов на ШАЯ. 1. Алгоритм-функция, определяющая большее из двух чисел алг вещ бид (арг вещ А, В) нач если А > В то знач:= А иначе знач:= В все кон 2. Алгоритм-функция, вычисляющая факториал натурального числа N алг цел факт (арг цел N) нач цел I, Р Р:= 1 нц для I от 1 до N Р:= Р * I кц знач:= Р кон 3. Вспомогательный алгоритм, вычисляющий гипотенузу прямоугольного треугольника по его катетам алг гипотенуза(арг вещ А, В, рез вещ С) дано! А, В - катеты надо! С = гипотенуза нач С:= SQRT(A ** 2 + В ** 2) кон Примеры задач на использование вспомогательных алгоритмов 1. Вычислить a! +b! (используя вспомогательный алгоритм вычисления факториала натурального числа) 2. Найти наибольшее из чисел A, B,C (используя вспомогательный алгоритм выбора большего из двух чисел) 3. Найти наименьшее из чисел A, B,C,D (используя вспомогательный алгоритм выбора меньшего из двух чисел) 4. Два треугольника заданы своими катетами. Определить, у какого из них периметр больше (используя вспомогательный алгоритм, вычисляющий гипотенузу прямоугольного треугольника по его катетам)

Вариант 1

1.

2. Составьте программу закрашивания прямоугольника, размеры которого пользователь вводит с клавиатуры. Ввод данных можно осуществлять любым способом.

Вариант 2

1. Составьте программу закрашивания указанных клеток. Количество клеток в каждом ряду или столбце определяется переменной, значение которой меняется в программе перед каждым циклом. Начальное положение Робота - в левом верхнем углу поля.

2. Составьте программу закрашивания квадрата, длину стороны которого пользователь вводит с клавиатуры. Ввод данных можно осуществлять любым способом.

Вариант 3

1. Составьте программу закрашивания указанных клеток. Количество клеток в каждом ряду или столбце определяется переменной, значение которой меняется в программе перед каждым циклом. Начальное положение Робота - в левом верхнем углу поля.

2. Составьте программу рисования фигуры в виде буквы "Г". Вертикальные и горизонтальные размеры пользователь вводит с клавиатуры. Ввод данных можно осуществлять любым способом.

Вариант 4

1. Составьте программу закрашивания указанных клеток. Количество клеток в каждом ряду или столбце определяется переменной, значение которой меняется в программе перед каждым циклом. Начальное положение Робота - в левом верхнем углу поля.

2. Составьте программу рисования фигуры в виде буквы "Т". Вертикальные и горизонтальные размеры пользователь вводит с клавиатуры. Ввод данных можно осуществлять любым способом.

Вариант 5

1. Составьте программу закрашивания указанных клеток. Количество клеток в каждом ряду или столбце определяется переменной, значение которой меняется в программе перед каждым циклом. Начальное положение Робота - в левом верхнем углу поля.

2. Составьте программу рисования фигуры в виде буквы "П". Вертикальные и горизонтальные размеры пользователь вводит с клавиатуры. Ввод данных можно осуществлять любым способом.

Вариант 6

1. Составьте программу закрашивания указанных клеток. Количество клеток в каждом ряду или столбце определяется переменной, значение которой меняется в программе перед каждым циклом. Начальное положение Робота - в левом верхнем углу поля.

2. Составьте программу рисования фигуры в виде буквы "Ш". Вертикальные и горизонтальные размеры пользователь вводит с клавиатуры. Ввод данных можно осуществлять любым способом.

Вариант 7

1. Составьте программу закрашивания указанных клеток. Количество клеток в каждом ряду или столбце определяется переменной, значение которой меняется в программе перед каждым циклом. Начальное положение Робота - в левом верхнем углу поля.

2. Составьте программу рисования фигуры в виде буквы "Н". Вертикальные и горизонтальные размеры пользователь вводит с клавиатуры. Ввод данных можно осуществлять любым способом.

Вариант 8

1. Составьте программу закрашивания указанных клеток. Количество клеток в каждом ряду или столбце определяется переменной, значение которой меняется в программе перед каждым циклом. Начальное положение Робота - в левом верхнем углу поля.

2. Составьте программу рисования фигуры в виде крестика. Вертикальные и горизонтальные размеры пользователь вводит с клавиатуры. Ввод данных можно осуществлять любым способом.

Вариант 9

1. Составьте программу закрашивания указанных клеток. Количество клеток в каждом ряду или столбце определяется переменной, значение которой меняется в программе перед каждым циклом. Начальное положение Робота - в левом верхнем углу поля.

2. Составьте программу рисования фигуры в виде диагонального крестика. Вертикальные и горизонтальные размеры пользователь вводит с клавиатуры. Ввод данных можно осуществлять любым способом.

Вариант 10

1. Составьте программу закрашивания указанных клеток. Количество клеток в каждом ряду или столбце определяется переменной, значение которой меняется в программе перед каждым циклом. Начальное положение Робота - в левом верхнем углу поля.


Команды абсолютного и относительного смещения (х и у отсчитывается от начала координат 0,0) сместиться в точку (х, у) сместиться на вектор (а, в) (а и в отсчитывается от начала вектора) команда абсолютного смещения команда относительного смещения а в х у




Вид величины арг – объявление величин-аргументов (входных или исходных данных) – показывает вид переменных т. е., как величина используется в алгоритме Тип величины Тип переменной – область значений аргументов вещ - описание величины вещественного (действительного) типа (Пример: 2.5, 6.9, 6.0, 7.9, 3.0) цел - описание величины целого типа (Пример: 2, 0, 8, 9).


Вызов ВА с аргументами Точное имя ВА (числовые значения аргументов в соответствии с их типами через запятую в том же порядке как и в заголовке ВА) Пример. Заголовок: алг Пр 1(арг вещ а, в, с, цел н, к) Вызовы: Пр 1(0, 4, 8.2, 8, 0) ; Пр 1(4, 2, 5, 3, 9) ; Пр 1(6, 7, 4.5, 0, 7)


Пример использования ВА с аргументами для исполнителя Чертежник алг деталь нач ро(7, 2, 3); ро(7, 3, 2); ро(7, 4, 1) кон алг ро (арг вещ х, у, а) нач см в точку (х, у); опустить перо см на вектор (2*а, а); см на вектор(-2*а, а) см на вектор (-2*а, -а); см на вектор(2*а, -а) поднять перо кон Гла вный алгоритм Вспомогательный алгоритм Вызов ВА Заголовок ВА


Использование ВА с аргументами при построении изображения Используя метод последовательного уточнения и проанализирова в данное изображение можно выделить стандартную деталь – ромб, начало его рисования, параметры и количество. Отсюда следует, чтобы получить данный рисунок надо записать четыре вызова ВА в основном алгоритме и один ВА для рисования ромба с тремя параметрами х, у, а Х У у х а 2 а алг деталь нач ро(2, 2, 2); ро(0, 7, 3); ро(4, 7, 1); ро(9, 4, 2) кон алг ро (арг вещ х, у, а) нач см в точку (х, у); опустить перо см на вектор (2*а, а); см на вектор(2*а, -а) см на вектор (-2*а, -а); см на вектор(-2*а, а) поднять перо кон

Для рисования двух квадратов с разными сторонами, например 2 и 3, нам нужно было составить два разных вспомогательных алгоритма. А как быть, если нужно рисовать много разных квадратов с разными длинами сторон? Не писать же для каждого свой алгоритм! Оказывается алгоритмы могут иметь аргументы, можно составить алгоритм рисования квадрата с произвольной длиной стороны.

С понятием аргумент вы уже встречались в математике. В математике аргумент функции - независимая переменная, от значений которой зависят значения функции.
Например, функция f(x) = x 2 +1 имеет один аргумент. При различных значениях аргумента будем получать различные значения функции - при x=2 получим f(x)=5, при x=3 получим f(x)=10 и т. д.

Нужный нам вспомогательный алгоритм (который рисует квадрат определенной длины) можно записать так:

алг квадрат(арг вещ а)
нач
. опустить перо
. сместиться на вектор (0,а)
. сместиться на вектор (а,0)
. сместиться на вектор (0,-а)
. сместиться на вектор (-а,0)
. поднять перо
кон

Запись «алг квадрат(арг вещ а)» означает, что у алгоритма «квадрат» есть один аргумент (арг) «а», который может быть произвольным вещественным (вещ) числом.
Для того чтобы вызвать этот алгоритм нужно написать, например, «квадрат(2)» - получим квадрат со стороной 2 или «квадрат(3)» - получим квадрат со стороной 3 и т. п.
Какое-то конкретное значение «а» получит только во время работы программы во время соответствующего вспомогательного алгоритма. И везде вместо «а» будет подставлено компьютером это число.

Программа для рисования это рисунка может быть такой:

использовать Чертежник
алг квадраты
нач
. сместиться в точку (1,1)
. квадрат(2)
. сместиться в точку (4,1)
. квадрат(3)
. сместиться в точку (8,1)
. квадрат(4)
. сместиться в точку (13,1)
. квадрат(5)
. сместиться в точку (0,0)
кон
алг квадрат(арг вещ а)
нач
. опустить перо
. сместиться на вектор (0,а)
. сместиться на вектор (а,0)
. сместиться на вектор (0,-а)
. сместиться на вектор (-а,0)
. поднять перо
кон

Научим Чертежника новым командам. Одна из команд пусть называется «линия(арг вещ x1,y1,x2,y2) » – для рисования линии из точки (x1,y1) в точку (x2,y2).


нач
. сместиться в точку (x1,y1)
. опустить перо
. сместиться в точку (x2,y2)
. поднять перо
кон

Вторая команда пусть называется «прямоугольник(арг вещ x1,y1,x2,y2) » для рисования прямоугольника. Точка (x1,y1) одна точка диагонали АС прямоугольника, точка (x2,y2) – противоположная. Перед записью алгоритма нужно понять чему равны координаты двух других точек.

Вспомогательный алгоритм может быть таким:


нач
. сместиться в точку (x1,y1)
. опустить перо
. сместиться в точку (x2,y1)
. сместиться в точку (x2,y2)
. сместиться в точку (x1,y2)
. сместиться в точку (x1,y1)
. поднять перо
кон

Теперь используя эти команды нарисуем домик:


использовать Чертежник
алг домик
нач
. прямоугольник(2,1,8,5)
. прямоугольник(3,2,5,4)
. прямоугольник(6,1,7,4)
. линия(1,4,5,8)
. линия(5,8,9,4)
кон
алг линия(арг вещ x1, y1, x2, y2)
нач
. сместиться в точку (x1,y1)
. опустить перо
. сместиться в точку (x2,y2)
. поднять перо
кон
алг прямоугольник(арг вещ x1, y1, x2, y2)
нач
. сместиться в точку (x1,y1)
. опустить перо
. сместиться в точку (x2,y1)
. сместиться в точку (x2,y2)
. сместиться в точку (x1,y2)
. сместиться в точку (x1,y1)
. поднять перо
кон

Примечание: естественно, одновременно с этими командами мы можем использовать и стандартные команды чертежника (сместиться в точку, сместиться на вектор …).

Задание 1. Используя вспомогательные алгоритмы линия и прямоугольник создайте какой-либо рисунок.

Задание 2. Попробуйте переписать алгоритмы линия и прямоугольник так, чтобы рисование осуществлялось командой сместиться на вектор.

Задание 3. Составьте алгоритм «прямоугольник (арг вещ x, y, a, b)», который рисует прямоугольник с длинами сторон a и b, начиная из заканчивая в точке (х, y).

Задание 4. Нарисуйте самостоятельно, что нарисует Чертежник выполнив алгоритм:

использовать Чертежник
алг спираль
нач
. сместиться в точку (3,3)
. опустить перо
. виток(1); виток(3); виток(5); виток(7); виток (9)
. поднять перо
кон
алг виток(арг вещ а)
нач
. сместиться на вектор (а, 0)
. сместиться на вектор (0, -а)
. сместиться на вектор (-а-1,0)
. сместиться на вектор (0, а+1)
кон