Teres-1t.ru

Инженерные решения
13 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Цикл с предусловием ( while ) и постусловием ( repeat )

Цикл с предусловием ( while ) и постусловием ( repeat )

обучение PascalABC

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

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

Блок-схема цикла while

Пример 1: отображение чисел от 1 до 5

Вот как работает программа.

ИтерацияПеременнаяi <= 5Действие
1-йi = 1trueПечатается 1, а i увеличивается до 2
2-йi = 2trueБудет напечатано 2, а i увеличится до 3
3-йi = 3true3 печатается, а i увеличивается до 4
4-йi = 4trueРаспечатывается 4, а i увеличивается до 5
5-йi = 5trueБудет напечатано 5, а i увеличится до 6
6-йi = 6falseЦикл завершен

Пример 2: сумма положительных чисел

В этой программе пользователю предлагается ввести число, которое хранится в переменной number .

Чтобы сохранить сумму чисел, мы объявляем переменную sum, и инициализируем ее значением 0.

Цикл while продолжается до тех пор, пока пользователь не введет отрицательное число. Во время каждой итерации число, введенное пользователем, добавляется к переменной sum .

Когда пользователь вводит отрицательное число, цикл завершается. В итоге отображается общая сумма.

Виды циклов.

Цикл со счетчиком.

Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать. В примере выше с приседаниями именно такой случай.

Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:

нц < количество повторений > раз

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

Давайте рассмотрим это на примере.

Закрасим 7 клеток, как на рисунке. Рекомендую почитать про стартовую обстановку Робота и про его простые команды.

Задание на цикл со счетчиком

Задание на цикл со счетчиком

Изначально Робот находился в левой верхней клетке.

Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:
использовать Робот
алг
нач

Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.

Читайте так же:
Отзыв счетчик нева мт 113

Так вот, наша программа с циклом будет выглядеть так:

Если мы ее запустим, то увидим, что в результате получится тоже самое — 7 закрашенных клеток. Однако программа стала короче и значительно грамотней с алгоритмической точки зрения!

В качестве разминки и закрепления предлагаю самостоятельно написать программу для Робота, которая нарисует квадрат со стороной 7 клеток. Естественно, используя цикл. Жду решения в комментариях.

Цикл с условием.

При решении задачи 19 ГИА по информатике с Роботом использовать цикл со счетчиком не получится. Так как там поле, как правило, бесконечное и стены не имеют конкретной длины. Поэтому мы не сможем определить количество повторений для цикла со счетчиком. Но не беда — нам поможет цикл с условием.

Вернемся к физкультуре и изменим задачу. Ведь кто-то может и не сделать 7 приседаний, а другой способен сделать 27. Можно ли учесть это при создании цикла? Конечно. Только теперь мы будем использовать не счетчик (количество повторений), а условие. К примеру, пока не устал, делай приседания. В этом случае человек будет делать не конкретное число приседаний, а приседать до тех пор, пока не устанет. И наш цикл на абстрактном языке примет такой вид:

пока не устал

Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий

сверху свободно

снизу свободно

слева свободно

справа свободно

сверху стена

снизу стена

слева стена

справа стена

, но в условии задачи 19 ГИА указаны только первые 4. Так что будем пользоваться только ими.

Теперь давайте решим следующую задачу для Робота — нарисовать вертикальную линию от левой до правой границы поля использую цикл с условием. Изначально Робот находится в левом верхнем углу.

Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:

«Пока справа свободно делай шаг вправо и закрашивай клетку»

В результате Робот пробежит по всем клеткам вправо и будет их закрашивать до тех пор, пока справа не окажется стена.

Исходный код нашей программы для Робота будет примерно такой:

Читайте так же:
Счетчики банкнот docash 3050

нц пока справа свободно

В результате выполнения этой программы мы увидим вот такую картину:

Задание для Робота цикл с условием

Задание для Робота цикл с условием

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

Решение задачи с циклом

Решение задачи с циклом

Для закрепления прошу написать программу, которая будет делать рамку вокруг рабочего поля Робота независимо от его размера. Конечно же с использованием циклов с условием. В итоге должно получиться так:

Задача для самостоятельного решения

Задача для самостоятельного решения

Решение жду в комментариях. И напоминаю, до ГИА осталось совсем немного времени, готовимся активнее.

Как добавить текст к элементу

Для большинства элементов блок-схемы нужно добавить текст, который будет пояснять выбранную часть алгоритма программа. Для этого кликните по фигуре правой кнопкой мыши и выберите пункт « Добавить текст ».

добавить текст к элементу блок-схемы

После этого можно будет ввести поясняющий текст. Обратите внимание, если текст не отображается, то скорее всего вы пишите белым по белому, поменяйте цвет текста на вкладке « Главная ».

ГДЗ Информатика 9 класс Семакин — Циклические алгоритмы

Вопросы и задания
1. Что такое цикл? Как записывается команда цикла?
2. Что такое условие цикла? Что такое тело цикла?
3. В каком случае происходит зацикливание алгоритма?
4. Что такое блок-схема?
5. Из каких блоков составляются блок-схемы (как они изображаются и что обозначают)?
6. Что обозначают стрелки на блок-схемах?
7. Составьте программу, переводящую ГРИС в угол поля из любого исходного состояния.
8. Составьте программу рисования прямоугольной рамки вдоль края поля при любом начальном состоянии исполнителя.

Ответы на вопросы параграф 6 из учебника Семакина 9 класс

1. Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода). Команда цикла изображается не отдельным блоком, а целой структурой

2. Это условие при котором цикл будет выполняться. теле цикла находятся операции, которые будут выполняться при работе цикла.

3. Когда нет условия выхода из цикла или используется вечный цикл

4. Схе́ма — графическое представление определения, анализа или метода решения задачи, в котором используются символы для отображения данных, потока, оборудования и т. д.

ГДЗ Информатика 9 класс Семакин - Циклические алгоритмы

5. Овал-начало и конец. Параллелограм — ввод и вывод данных, ромб-условие, прямоугольник — действие.

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

Читайте так же:
Счетчик по другому называется

8. Программа РАМА

Литература: Учебник:Информатика, 9 класс. ФГОС Автор: И. Г. Семакин, Л. А. Залогова, С. В. Русаков, Л. В. Шестакова.

Правила применения

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

Основной принцип программиста — максимальное упрощение кода или оптимизация. Простым примером являются конструкторы сайтов. При генерации web-страницы в ее теле появляется много ненужных элементов. Например, специалист при создании одной страницы уложится в 200 строк html-кода, а конструктор способен сгенерировать в 4 или 5 раз больше.

Упрощение кода

Циклы в некотором случае могут быть тоже лишними. Однако не всегда целесообразно их использовать, поскольку этот подход существенно влияет на скорость вычислений. Для примера следует разобрать случай, когда необходимо вывести всего лишь несколько строк на экран. Проще использовать специальный оператор write или writeln, который занимает незначительный объем оперативной памяти. Для организации кода приложений с учетом признаков «хорошего тона» необходимо воспользоваться следующей инструкцией:

  • Цель приложения.
  • Количество генерируемой информации (маленький или большой объем).
  • Простота кода.
  • Количество строк.

Цикл с предусловием

Первый элемент инструкции — основное предназначение программы. Если она применяется для вывода массивов информации, то при использовании циклов объем кода существенно сократится, но будет нагрузка на «железо», поскольку для цикла формируется область в оперативной памяти, занимающая некоторое место. Это связано с тем, что нужна запись итератора, его интервал изменения, а также постоянное сравнение его значения с условием, которое задано в теле цикла. Кроме того, необходима отдельная динамическая ячейка для записи временных значений.

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

В любой программе следует избегать дублирования кода, поскольку такая парадигма значительно облегчает его читабельность, а это очень важно для доработки приложения. Несмотря на то что язык Турбо Паскаль не поддерживает объектно-ориентируемую структуру, следует помнить о блоках. Несоблюдение блочной структуры может привести к серьезным последствиям.

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

Читайте так же:
Нужно ли согласие жильцов для установки счетчиков

Достоинства и недостатки

Перед применением циклов необходимо разобраться в их достоинствах и недостатках. К первым можно отнести следующее:

  • Простота применения.
  • Уменьшение количества кода.
  • Универсальность.
  • Читабельность.
  • Обработка и вывод больших массивов информации.

Цикл с постусловием

Если знать синтаксис циклов, то можно создавать простые приложения, процедуры и функции для конечных и промежуточных вычислений. У них упрощенная структура, в которой довольно легко разобраться. Во втором случае они уменьшают количество программного кода, а этот момент очень важен. Универсальность достигается гибкостью настройки для процедур и функций, а также возможностью использования вложенных циклов.

Читабельность кода приложения зависит от его структуры. Кроме того, при их применении количество кода существенно уменьшается. Последним достоинством является специфика применения элемента. Если требуется обработать или вывести большое количество информации, то применение циклов — крайняя необходимость. Этот подход позволит не только сохранить драгоценное время, но и избежать множества ошибок.

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

  • Ресурсоемкость.
  • Зацикливание (зависание).

В первом случае цикл потребляет некоторое количество ресурсов, что сказывается на быстродействии программного продукта. Если в коде произошла ошибка, то возможно «зависание» приложения, которое приводит к существенному снижению быстродействия компьютера, а также к системным ошибкам в операционной системе. При возникновении последних может потребоваться экстренная перезагрузка вычислительной машины, в результате чего вероятна потеря данных, находящихся в оперативной памяти.

Вложенные циклы

Виды алгоритмов

Все алгоритмы можно разделить на группы по структуре и принципу работы. От типа программы зависит последовательность действий и вид алгоритма:

  • последовательные (линейные);
  • разветвляющиеся (условные);
  • циклические.

Типы алгоритмов

Точно и доступно излагает информацию по основам алгоритмизации известные информатики Л. Л. Босова, И. Г. Семакин. На основе их разработок проводятся курсы и лекции. Многие учителя их конспекты используют для проведения уроков информатики по алгоритмизации и программированию в 9 классе. На основе их работ пишут рефераты, составляют презентации, получают практические навыки.

Последовательные варианты

Линейная программа — это команды для решения задачи, которые выполняются последовательно друг за другом, но только 1 раз. Блок-схема представляет собой прямоугольники, которые следуют один за другим. В аналогичной последовательности выполняются и команды.

Читайте так же:
Приложение счетчик дней вместе

Первоначальные данные, полученные при выполнении задачи, не оказывают влияние на последовательность действий.

Примером линейного алгоритма может послужить решение любого арифметического выражения: у=3*х+8, где значение Х вводят с клавиатуры.

Алгоритм вычислений выглядит следующим образом.

  1. С клавиатуры вводят значение Х.
  2. Переменной У присваивают результат вычисления простого выражения 3*х+8.
  3. Выводят полученный результат.

Аналогично можно составить алгоритм для любой арифметической задачи.

Разветвляющаяся структура

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

Для описания разветвления используется условный оператор if.

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

Алгоритм для решения задачи на определение четности, состоит из 5 команд.

Выполняют решение задач на уроке информатики

  1. С клавиатуры (или другим способом) вводится значение переменной X.
  2. Промежуточной переменной А присваивают остаток от деления числа Х на 2.
  3. Условие: если А=0, то выполняют п. 4, если нет, то п. 5.
  4. Вывод результата: число четное.
  5. Вывод результата: число нечетное.

При одновременном использовании линейных и разветвляющихся алгоритмов можно решать более сложные задачи.

Циклические программы

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

Существует два варианта циклических схем.

Циклические программы

  1. В первом случае проверка условия выполняется до выполнения тела цикла (список команд).
  2. Второй тип циклических алгоритмов подразумевает, что тело цикла выполняется 1 раз, а уже в конце проверяется условие.
  3. Также есть циклы, в которых первоначально прописано количество повторов команд, заключенных в тело.

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

После изучения основ алгоритмизации можно приступать к более сложному этапу — непосредственному составлению программ с использованием языков программирования (информатика в 9 классе подразумевает такой момент). Но сначала нужно научиться составлять блок-схемы и использовать на практике алгоритмы с разными структурами.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector