Использование переменных алгоритмы с аргументами. Вспомогательные алгоритмы с аргументами

Вспомогательные алгоритмы с аргументами,

Раздел программы: Алгоритмизация

Тема : Вспомогательные алгоритмы (ВА) с аргументами, исполнитель Чертежник.

Цели : Повторение и закрепление изученного материала по указанной теме.

Задачи :

Обучение - систематизировать знания, повторить основные понятия по указанной теме.

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

Воспитание - продолжить воспитание взаимопомощи, ответственности, самоконтроля.

Здоровьесбережение - поддерживать эмоционально положительный настрой учащихся; использовать смену деятельности в течение урока.

Тип урока: повторение и закрепление полученных знаний и умений.

Обеспечение и наглядность : мультимедийный проектор, компьютерная презентация по указанной теме, система программирования Кумир, карточки для индивидуальной работы за столами, карточки с заданиями по 5 вариантам разной сложности для работы за компьютерами.

Структура и план урока:

    Организационное начало (приветствие, целеполагание, мотивация)

    Системная активизация знаний (демонстрация компьютерной презентации с устными ответами на вопросы)

    Системное закрепление материала (выполнение индивидуальных заданий в тетрадях, изменение и составление алгоритмов за компьютерами)

    Итог урока

Ход урока:

    Организационное начало.

    Демонстрация презентации:

А) Обсуждение оформления заголовка ВА с аргументами его вызова: описание, характеристики величин, известные нам на текущий момент, их использование.

Б) Рассмотрение приведенного примера алгоритма с аргументами.

В) Обсуждение использования ВА с аргументами при построении данного изображения. Составление главного и вспомогательного алгоритмов.

Г) Окончание демонстрации – назначение вспомогательных алгоритмов.

3) Записьдомашнего задания. Пояснения к предстоящей работе за ПК.

Деление на группы:

I группа; II группа; III группа;

Работа за столами:

Выполнение индивидуальных заданий в проверочных тетрадях.

Работа за компьютером по 5 вариантам для исполнителя Чертежник:

Б) Составление алгоритмов. Даны 3 задания по возрастанию уровня сложности.

Критерии оценивания работы за компьютером:

Побеждает группа, набравшая большее число очков.

Индивидуальная работа за ПК оценивается на 5, если набранное число очков равно или больше 5.

4) Итог урока.

Приложение

Индивидуальные задания за столами по 15 вариантам:

ВАРИАНТ №1 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    12 байт=… бит.

    1 Мбайт … 2 10 байт

    0.5 Кбайт … 512 байт

    Символ $ измеряется …

    алг Прим1(арг вещ а, в, с, цел

алг деталь

нач

ро(7, 2, 3); ро(7, 3, 2); ро(7, 4, 1)

кон

алг ро (арг вещ х, у, а)

нач

кон

ВАРИАНТ №2 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    2 байт=… бит.

    1 Кбайт … 2 10 бит

    0.5 Мбайт … 512 Кбайт

    Символ % измеряется … .

    Имеется заголовок алгоритма с аргументами: алг Прим1(арг вещ а, в, с, цел н, к). Какие записи являются вызовом (вызовами) этого алгоритма: а) Прим1(2.1, 3, 6, 3, 0.6) б) Прим1(6, 7, 4.5, 0, 7), в) Прим1(4, 2, 5, 3, 9), г) прим1(7.3, 2, 7.2 , 6, 5), д) Прим(0, 4, 8.2, 8, 0)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(3, 5, 2); ро(7,5, 2.5); ро(7.5, 4, 1)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

кон

ВАРИАНТ №3 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    0.5 байт=… бит.

    1 Кбайт … 8192 бит

    0.5 Гбайт … 512 Мбайт

    Символ # измеряется … .

    Имеется заголовок алгоритма с аргументами: алг Прим1(арг вещ х, у, цел н, к, с). Какие записи являются вызовом (вызовами) этого алгоритма: а) Прим1(2.1, 3, 6, 3, 6), б) Прим(6, 7, 4.5, 0, 7), в) Прим1(4, 2, 5, 3, 9), г) Прим1(7.3, 2, 7 , 6, 5), д) Прим1(0, 4, 8.2, 8, 0)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(4, 2, 2); ро(4, 0, 3); ро(9.5, 1, 2.5)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

кон

ВАРИАНТ №4 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    1 байт=… бит.

    700 бит … 90 байт

    4096 бит … 0.5 Кбайт

    Буква С измеряется ….

    Имеется заголовок алгоритма с аргументами: алг Прим1(арг цел а, в, с, вещ н, к). Какие записи являются вызовом (вызовами) этого алгоритма: а) Прим1(2.1, 3, 6, 3, 0.6), б) Прим(6, 7, 4.5, 0, 7), в) Прим1(4, 2, 5, 3.6, 9), г) прим1(7.3, 2, 7.2 , 6, 5), д) Прим1(0, 4, 8, 8, 0.6)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(3, 5, 1); ро(6.5, 2, 2.5); ро(6, 4, 1.5)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (а,2*а); сместиться на вектор(-а, 2*а)

сместиться на вектор (-а, -2*а); сместиться на вектор(а, -2*а); поднять перо

кон

ВАРИАНТ №5 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ * измеряется … .

    2 байт=… бит.

    600 бит … 70 байт

    1Кбайт … 8192 байт

    Имеется заголовок алгоритма с аргументами: алг Прим1(арг вещ а, в, с, цел н, к). Какие записи являются вызовом (вызовами) этого алгоритма: а) Прим1(2.1, 3, 6, 3, 0.6), б) Прим(6, 7, 4.5, 0, 7), в) Прим1(4, 2, 5, 3, 9), г) прим1(7.3, 2, 7.2 , 6, 5), д) Прим1(0, 4, 8.2, 8, 0)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(4.5, 0, 1.5); ро(10, 0, 2.5); ро(10, 3, 1.5)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (а, 2*а); сместиться на вектор(-а, 2*а)

сместиться на вектор (-а, -2*а); сместиться на вектор(а, -2*а); поднять перо

кон

ВАРИАНТ №6 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ @ измеряется ….

    0.5 байт=… бит.

    720 бит … 80 байт

    1Кбайт … 8192 бит

    Имеется заголовок алгоритма с аргументами: алг ПР(арг вещ х, у, с, цел н, к). Какие записи являются вызовом (вызовами) этого алгоритма: а) ПР1(2.1, 3, 6, 3, 0.6), б) ПР(6, 7, 4.5, 0, 7), в) ПР(4, 2, 5, 3, 9), г) ПР(7.3, 2, 7.2 , 6, 5), д) ПР(0, 4, 8.2, 8, 0)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(6, 8, 3); ро(6, 7, 2); ро(6, 6, 1)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

кон

ВАРИАНТ №7 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ ^ измеряется … .

    0.25 байт=…бит.

    1Мбайт … 2 20 бит

    640 бит … 60 байт

    Имеется заголовок алгоритма с аргументами: алг рис1(арг вещ а, в, с, цел

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(1, 5, 2.5); ро(4, 5, 1); ро(11, 5, 1.5)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

кон

ВАРИАНТ №8 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ $ измеряется … .

    2 байт=… бит.

    1Кбайт … 1024 бит

    1Мбайт … 2 10 байт

    Имеется заголовок алгоритма с аргументами: алг ПРИМ1(арг вещ х, у, с, цел п, р). Какие записи являются вызовом (вызовами) этого алгоритма: а) ПРИМ1(2.1, 3, 6, 3, 0), б) ПРИМ(6, 7, 4.5, 0, 7), в) ПРИМ1(4, 5, 3, 9), г) ПРИМ1(7.3, 2, 7.2 , 6, 5), д) ПРИМ1(0, 4, 8.2, 8, 0)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(1, 6, 2.5); ро(2, 6, 2); ро(3, 6, 1)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (а, 2*а); сместиться на вектор(а, -2*а)

сместиться на вектор (-а, -2*а); сместиться на вектор(-а, 2*а); поднять перо

кон

ВАРИАНТ №9 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ “ измеряется … .

    12 байт=… бит.

    2 10 байт … 1 Мбайт

    512 байт … 0.5 Кбайт

    Имеется заголовок алгоритма с аргументами: алг Прим1(арг вещ н, р, с, цел х, к). Какие записи являются вызовом (вызовами) этого алгоритма: а) Прим1(2.1, 3, 6, 3, 6), б) Прим(6, 7, 4.5, 0,7), в) Прим1(4.7, 2, 5, 3), г) прим1(7.3, 2, 7.2 , 6, 5), д) Прим1(0, 4, 8.2, 8, 8)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(6, 2.5, 2.5); ро(6, 4, 1); ро(14, 3.5, 1.5)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (2*а, а); сместиться на вектор(-2*а, а)

сместиться на вектор (-2*а, -а); сместиться на вектор(2*а, -а); поднять перо

кон

ВАРИАНТ №10 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ! измеряется … .

    2 байт=… бит.

    2 10 бит … 1 Кбайт

    512 Кбайт … 0.5 Мбайт

    Имеется заголовок алгоритма с аргументами: алг АРИП1(арг вещ л, в, а, цел н, у). Какие записи являются вызовом (вызовами) этого алгоритма: а) АРИП1(2.1, 3, 6, 3, 0.6), б) АРИП(6, 7, 4.5, 0,7), в) АРИП1(4.7, 2, 5, 3, 9), г) прим1(7.3, 2, 7.2 , 6, 5), д) АРИП1(0.9, 4, 8.2, 8, 0)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(2, 2, 2); ро(0, 7, 3); ро(4, 7, 1)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (2*а, а); сместиться на вектор(2*а, -а)

сместиться на вектор (-2*а, -а); сместиться на вектор(-2*а, а); поднять перо

кон

ВАРИАНТ №11 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    0.5 байт=… бит.

    8192 бит … 1 Кбайт

    512 Мбайт … 0.5 Гбайт

    Символ: измеряется … .

    Имеется заголовок алгоритма с аргументами: алг Прим1(арг вещ м, в, ф, цел х, к). Какие записи являются вызовом (вызовами) этого алгоритма: а) Прим1(2.1, 3.8, 6, 3, 6), б) Прим(6, 7, 4.5, 0,7), в) Прим1(0, 2, 5, 3, 0), г) прим1(7.3, 2, 7.2 , 6, 5), д) Прим1(0, 4, 8.2, 8, 7)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(7, 2, 3); ро(7, 4, 1); ро(10, 1, 2)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (2*а, а); сместиться на вектор(-2*а, а)

сместиться на вектор (-2*а, -а); сместиться на вектор(2*а, -а); поднять перо

кон

ВАРИАНТ №12 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ А измеряется … .

    Имеется заголовок алгоритма с аргументами: алг Прим1(арг вещ а, х, с, цел н, у). Какие записи являются вызовом (вызовами) этого алгоритма: а) Прим1(2.1, 3, 6, 3), б) Прим(6, 7, 4.5, 0,7), в) Прим1(4, 2.8, 5, 3, 9), г) прим1(7.3, 2, 7.2 , 6, 5), д) Прим1(6.1, 4, 8.2, 8, 0)

    1 байт=… бит.

    90 байт … 700 бит

    0.5 Кбайт … 4096 бит

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(4.5, 2, 2.5); ро(4.5, 4, 1.5); ро(8, 5, 1)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (а,2*а); сместиться на вектор(-а, 2*а)

сместиться на вектор (-а, -2*а); сместиться на вектор(а, -2*а); поднять перо

кон

ВАРИАНТ №13 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ № измеряется … .

    Имеется заголовок алгоритма с аргументами: алг Прим2(арг вещ п, в, х, цел л, д). Какие записи являются вызовом (вызовами) этого алгоритма: а) Прим2(2.1, 2, 5, 8, 0.6), б) Прим(6, 1, 4.5, 0,7), в) Прим2(6, 2, 5, 3,9), г) прим2(7.3, 2, 7.2 , 6, 5), д) Прим2(5, 4, 8.2, 8, 0)

    2 байт=… бит.

    70 байт … 600 бит

    8192 байт … 1Кбайт

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(1, 6, 3); ро(2.5, 6, 1.5); ро(7, 6, 2)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (а, 2*а); сместиться на вектор(а, -2*а)

сместиться на вектор (-а, -2*а); сместиться на вектор(-а, 2*а); поднять перо

кон

ВАРИАНТ №14 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ В измеряется … .

    Имеется заголовок алгоритма с аргументами: алг Прим6(арг вещ р, л, х, цел у, к). Какие записи являются вызовом (вызовами) этого алгоритма: а) Прим6(2.1, 3, 0, 3, 6), б) Прим6(6, 7, 4.5, 7), в) Прим6(4.8, 74, 5, 3, 11), г) прим6(7.3, 2, 7.2 , 6, 5), д) Прим6(0, 4, 8.2, 8, 0)

    0.5 байт=… бит.

    80 байт … 720 бит

    8192 бит … 1Кбайт

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(5, 4, 2); ро(5, 3, 1); ро(11, 2, 1)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (2*а, -а); сместиться на вектор(-2*а, -а)

сместиться на вектор (-2*а, а); сместиться на вектор(2*а, а); поднять перо

кон

ВАРИАНТ №15 Единицы измерения информации, ВА с аргументами, исполнитель Чертежник.

    Символ 6 измеряется … .

    0.25 байт=…бит.

    2 20 бит … 1Мбайт

    60 байт … 640 бит

    Имеется заголовок алгоритма с аргументами: алг рис1(арг вещ а, в, с, цел н, к). Какие записи являются вызовом (вызовами) этого алгоритма: а) рис1(2.1, 3, 6, 3, 0.6), б) рис(6, 7, 4.5, 0, 7), в) рис1(4, 2, 5, 3, 9), г) рим1(7.3, 2, 7.2 , 6, 5), д) рис1(0, 4, 8.2, 8, 0)

    Нарисуйте результат выполнения алгоритма:

алг деталь

нач

ро(1, 4, 2.5); ро(4, 4, 1); ро(11, 4, 1.5)

кон

алг ро (арг вещ х, у, а)

нач

сместиться в точку (х, у); опустить перо

сместиться на вектор (2*а, а); сместиться на вектор(2*а, -а)

сместиться на вектор (-2*а, -а); сместиться на вектор(-2*а, а)

поднять перо

кон

    2 20 2 10 байт

    2 13 2 10 бит

  1. 1024*8=8192 бит

  1. 4096 бит =4096

  1. 1024байтбайт

Задания рас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. Начертите фигуру, изображенную на рисунке, используя вспомогательный алгоритм с аргументами для рисования отдельного элемента. Количество повторений элементов и количество повторений квадратов внутри одного элемента задается пользователем.


Команды абсолютного и относительного смещения (х и у отсчитывается от начала координат 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)
кон

Хирьянов Тимофей Федорович


Алгоритм на языке КуМир записывается так:

алг тип_алгоритма имя_алгоритма (описание аргументов и результатов)
дано условие_применимости_алгоритма
надо цель_выполнения_алгоритма
нач
последовательность команд
кон

Описание алгоритма состоит из:
  • заголовка (часть до служебного слова нач),
  • тела алгоритма (часть между словами нач и кон).
Части "дано", "надо", а также "тип алгоритма" и "описание аргументов и результатов" могут отсутствовать.

Простейшие алгоритмы

Рассмотрим следующий вспомогательный алгоритм для исполнителя Чертежник.

Пример алгоритма

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

Он позволяет нарисовать квадрат 2х2 (начиная с левого нижнего угла). Для этого нужно использовать в основной программе команду вызова вспомогательного алгоритма, которая будет иметь вид:

Алгоритмы с аргументами

Для того, чтобы рисовать квадраты разных размеров, можно использовать алгоритм с аргументами .

Пример алгоритма

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

Слово арг означает, что у алгоритма есть аргумент (а), а вещ — то, что этот аргумент имеет вещественный тип. Команда вызова такого алгоритма может иметь вид

(в этом случае будет нарисован квадрат 2x2) или, например,
(в этом случае будет нарисован квадрат 5x5).

Алгоритмы с результатами

Алгоритм может не только получать информацию, но и отдавать ее. Для этого используется специальный вид величины — результаты .

Пример алгоритма с результатами

алг гипотенуза (вещ a, b, рез вещ c)
дано a >= 0 и b >= 0 | длины катетов треугольника
надо | c = длинa гипотенузы этого треугольника
нач
c:= sqrt(a ** 2 + b ** 2)
кон

Здесь служебное слово рез указывает на то, что величина c является результатом и ее значение будет меняться в процессе работы алгоритма. Например, после вызова

гипотенуза(3, 4, c)

Величина c примет значение 5.

Алгоритмы-процедуры и алгоритмы-функции

Рассмотренные выше примеры являются алгоритмами-процедурами . В Кумире также существуют алгоритмы-функции . Алгоритм-функция после выполнения возвращает значение-результат .
Правила описания алгоритмов-процедур и алгоритмов-функций имеют два отличия.
Во-первых, для алгоритмов-функций на месте тип_алгоритма должен быть указан один из простых типов алгоритмического языка (вещ, цел и т.д.), определяющий тип значений, которые возвращает данная функция.
Во-вторых, в теле алгоритма-функции необходимо использовать служебную величину знач , которой присваивается вычисленное значение функции. Ее описанием служит заголовок алгоритма, но в остальном величина знач используется так же, как и любая другая промежуточная величина. (В теле алгоритма-процедуры величину знач использовать нельзя .)
Вызов алгоритма-процедуры является отдельной командой алгоритмического языка и имеет вид:

Похожие статьи