Л.р. 1 Линейные алгоритмы. Циклы, вспомогательные алгоритмы и переменные

Любой алгоритм можно составить из нескольких базовых структур. Простейшей из них является линейная (следование).

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

Например, линейным является следующий алгоритм нахождения среднего арифметического двух чисел:

1) Задумать два числа.

2) Сложить два задуманных числа.

3) Полученную сумму поделить на 2.

Другой базовой структурой является цикл.

Цикл - подразумевает многократное повторение одних и тех же действий или команд.

Циклический алгоритм - это алгоритм, содержащий конструкцию повторения, т.е. содержит цикл.

Последовательность действий, выполняемая многократно, называется телом цикла.

Задание 1.

Начертите желтым цветом контур буквы «Д». Размеры буквы – произвольные.

Программа на представлена на рисунке 1. Результат на рисунке 2.

Рисунок 1.

Рисунок 2.

Задание 2.

Составьте программу рисования квадрата с вершинами, лежащими на осях координат. Координаты одной из вершин (0; 11).

Программа на представлена на рисунке 3. Результат на рисунке 4.

Рисунок 3.

Рисунок 4.

Задание 3.

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

Программа на представлена на рисунке 6. Ввод размеров фигуры на рисунке 7. Результат на рисунке 8.

Рисунок 5.

Рисунок 6.

Рисунок 7.

Рисунок 8.

Вспомогательный алгоритм или подпрограмма - это алгоритм, целиком используемый в составе другого алгоритма.

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

алг тип_алгоритма имя_алгоритма (описание_параметров)

· дано условие_применимости_алгоритма

· надо цель_выполнения_алгоритма

нач

· последовательность команд

кон

Описание алгоритма состоит из:

∙ заголовка (часть до служебного слова нач), может отсутствовать.

∙ тела алгоритма (часть между словами нач и кон)

В системе КуМир в начале программы пишется главный алгоритм, который может не иметь имени. Вспомогательные алгоритмы записываются после основного, и обязательно указываются их имена.

Переменная — это именованная область памяти для хранения данных, которые могут изменяться в процессе исполнения программы.

Переменная характеризуется:

  • Именем («обозначением ячейки памяти»)

  • Значением (данными, содержащимися в переменной в конкретный момент времени)

  • Типом (определяющим:

    • а) какие значения может принимать переменная;

    • б) какие операции можно производить с этими значениями;

    • в) как данные представлены в памяти компьютера)

Имена и типы переменных указываются в разделе описаний и не могут изменяться в процессе выполнения программы.

Простые типы

Дискретные (можно перечислить возможные значения):

  • целые

  • символьный

  • логический

  • диапазон (часть значений стандартного дискретного типа, например, 1..100)

  • перечисляемый (явно перечислены все допустимые значения)

Вещественные — служат для представления действительных чисел с ограниченной точностью.

Структурированные типы

  • Массив (фиксированное количество данных одного типа)

  • Строка

  • Запись (связанные данные, в общем случае, разных типов)

  • Множество

  • Файл (данные одного типа, хранящиеся на внешнем носителе)

Задание 4.

Начертите фигуру, изображенную на рисунке 9, используя алгоритм с циклом.

Программа на представлена на рисунке 10. Ввод размеров фигуры на рисунке 11. Результат на рисунке 12.

Рисунок 9.

Рисунок 10.

Рисунок 11.

Рисунок 12.

Задание 5.

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

Программа на представлена на рисунке 14. Ввод размеров фигуры на рисунке 15. Результат на рисунке 16.

Рисунок 13.

Рисунок 14.

Рисунок 15.

Рисунок 16.

Цикл «для»

Общий вид цикла для:

нц для i от i1 до i2

· тело_цикла

кц

Здесь i - величина типа цел (она называется параметром цикла), а i1 и i2 - целые выражения, т. е. выражения типа цел. При выполнении цикла для тело цикла выполняется последовательно для i = i1, i = i1+1, ... ,i = i2. Если i1 = i2, то тело цикла выполняются один раз для i = i1. Если же i1>i2, то тело цикла не выполнится ни разу.

Общий вид цикла для с шагом:

нц для i от i1 до i2 шаг i3

· тело_цикла

кц

Если шаг i3 равен положительному числу d, то тело цикла будет выполняться последовательно для i = i1, i = i1 + d, i = i1 + 2d.. до тех пор, пока значение i удовлетворяет условию i<=2i.

Если шаг i3 равен отрицательному числу d, то тело цикла будет выполняться последовательно для i = i1, i = i1 - d, i = i1 - 2d.. до тех пор, пока значение i удовлетворяет условию i<=i1.

Задание 6.

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

Программа на представлена на рисунке 18. Ввод размеров фигуры на рисунке 19. Результат на рисунке 20.

Рисунок 17.

Рисунок 18.

Рисунок 19.

Рисунок 20.