Работа с циклами в с конспект
Обновлено: 05.07.2024
С повторяющимися действиями мы сталкиваемся и в обычной жизни и при решении задач. Проход стрелок часов каждую минуту, секунду, час, смена дня и ночи, ежедневные сборы в школу, еженедельная смена уроков, ежегодные поездки на море – примеров циклов повторения миллиарды. Несмотря на разнообразие происходящих процессов, большинство из них можно описать простыми конструкциями. Делая что-то раз за разом, мы не задумываемся, что ученые уже написали алгоритмы с повторением или циклы универсальными способами.
Циклы, их виды
Многие операции, действия выполняются однотипно много раз. Этот процесс повторения называют циклом, а повторяемая последовательность – телом цикла. Процедуру с повторяющимися этапами называют циклической.
Каждое повторение действий в алгоритмах – итерация.
Выделяют 3 основных вида повторяющихся структур:
- с условием выполнения цикла (предусловием);
- с критерием завершения (постусловием);
- с указанным числом повторений цикла.
Описывать подобные процессы удобно схематично или при помощи команд.
Цикл с предусловием
Описание цикла с условием двумя способами:
Особенность этой конструкции – существуют такие условия, когда команды не будут выполнены ни разу.
На этом уроке учащиеся изучат, как программируется последний тип циклов, циклы с заданным числом повторений. Рассматривается, как организована работа цикла с параметром и как оператор для его записи реализован в языке Pascal. Будет рассмотрено решение нескольких типовых задач с использованием этого типа циклов.
В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобретя в каталоге.
Получите невероятные возможности
Конспект урока "Программирование циклов с заданным числом повторений"
· Организация цикла с заданным числом повторений.
· Цикл с заданным числом повторений в программе.
Рассмотрим алгоритм чтения книги, в которой 100 страниц:
· прочесть 2 страницы,
Так, как количество повторений известно заранее, это пример цикла с заданным числом повторений, который является частным случаем цикла с параметром. Такие циклы организованы так, что для их работы не нужны условия, но нужна дополнительная переменная, которая будет выполнять роль счётчика повторений или параметра.
В начале параметру присваивается начальное значение, а также указывается значение шага изменения параметра и его конечное значение. При каждом выполнении тела цикла значение параметра изменяется, то есть уменьшается или увеличивается на значение шага. Цикл повторяется до тех пор, пока значение параметра не станет, в случае увеличения параметра больше или в случае уменьшения параметра меньше указанного конечного значения.
Блок-схема цикла с параметром.
Как видим в блок-схеме тело цикла размещается под блоком, обозначающим цикл. При этом в блоке указывается параметр, его начальное и конечное значение, а также значение шага. При этом если шаг равен единице, его можно не указывать.
for := to/downto do
Описание цикла с параметром
Задача: Написать программу, которая возводит число k в целую положительную степень n.
Составим блок-схему алгоритма решения задачи. В начале пользователь вводит значения k и n. Обозначим результат выполнения программы r и присвоим ему в начале значение k 0 , то есть 1. В дальнейшем мы будем умножать его на k необходимое количество n раз. Напишем для этого цикл с параметром. Назовём параметр i, начальным значением параметра будет 1, а конечным – n. Так как шаг будет равен 1, указывать его не требуется. В цикле будет следовать всего один блок, в котором переменной r присваивается его значение, умноженное на n. Таким образом с помощью цикла мы умножим r на k n раз. После цикла нам достаточно вывести на экран значение r. На этом наша программа завершит работу.
Напишем программу по составленной блок-схеме. Назовём её stepen. В разделе описания переменных объявим переменные n и i. n целое по условию задачи, а i – параметр цикла, значит обе они будут целочисленного типа byte. Дальше укажем переменные k и r, так как в условии задачи не сказано, что k целое, они будут принадлежать к вещественному типу real.
program stepen;
writeln ('Программа вычисления значения k^n.');
for i:=1 to n do
Исходный код программы
Запустим программу на выполнение. Введём k = 2, а n = 10.
Снова запустим программу и введём k = 0.5, а n = 2.
0.5 2 = 0.25. Программа работает правильно задача решена.
Циклы также, как и ветвления, могут содержать другие циклы. Такие циклы называются вложенными.
Задача: Вычислить значение суммы 1 1 + 2 2 + 3 3 + … + n n . Значение n пользователь вводит с клавиатуры. 2 ≤ n ≤ 10.
Запишем блок-схему алгоритма решения задачи. В начале пользователь вводит с клавиатуры значение n. Обозначим результат выражения s, и сразу учтём в нём первое слагаемое. Так, как 1 1 = 1, присвоим s значение 1. Далее будет следовать цикл для i от 2 до n. В нём нам нужно расcчитать значение очередного слагаемого, то есть i i и добавить его к результату выражения. Обозначим очередное слагаемое p, и присвоим ему значение i 0 , то есть 1. Дальше будет следовать вложенный цикл для j от 1 до i. Это будет цикл для расчёта значения i i . В нём будет всего один блок, присваивания переменной p её значения умноженного на i. После внутреннего цикла нам достаточно присвоить s её значение, увеличенное на p. После внешнего цикла нужно вывести на экран значение переменной s. На этом наша программа завершит свою работу.
Напишем программу по составленной блок-схеме. Назовём её summa. В программе на понадобится 5 переменных. Переменные s и p будут хранить значение итоговой суммы и отдельных слагаемых, они будут принадлежать к целочисленному типу integer. Так как n по условию задачи не превышает 9, а i и j изменяются в диапазоне от 1 до n, для их хранения нам будет достаточно типа byte.
program summa;
s, p, i, j, n: integer;
for i:=2 to n do
for j:=1 to i do
Исходный код программы
Запустим программу на выполнение. Введём n = 5.
1 1 + 2 2 + 3 3 + 4 4 + 5 5 = 3413. Программа работает правильно. Задача решена.
Задача: Написать программу для перевода целых положительных чисел из двоичной системы счисления в десятичную.
Мы помним, что для того, чтобы перевести число из двоичной степени в десятичную нужно представить его в виде суммы его цифр, умноженных на два в степени на единицу меньшей разряда числа.
10102 = 0 × 2 0 + 1 × 2 1 + 0 × 2 2 + 1 × 2 3
Составим блок-схему алгоритма решения задачи. Число в двоичной системе счисления будем хранить в виде строки, назовём её s. В начале пользователь вводит её значение с клавиатуры. Обозначим число в десятичной системе счисления d. Так как мы ещё не рассчитали его значение, присвоим ему значение 0. Так же нам понадобится множитель слагаемых суммы, обозначим его m, присвоим ему начальное значение 2 0 , то есть 1. Мы будем рассчитывать сумму начиная с цифры, младшей по разряду. Запишем цикл для i от значения равного длине s до 1. Он будет начинаться с преобразования i-того символа строки s, в число равное соответствующей цифре двоичного числа, назовём её c. Дальше присвоим d:=d+c*m. После этого присвоим m его значение, умноженное на основание системы счисления, то есть 2. После завершения работы цикла выведем на экран значение переменной d. На этом наша программа завершит свою работу.
program BinToDec;
d, i, m, c, e: integer;
writeln ('Программа перевода чисел из двоичной системы счисления в десятичную. Введите двоичное число.');
- Для учеников 1-11 классов и дошкольников
- Бесплатные сертификаты учителям и участникам
Операторы цикла
Для повторения некоторого множества команд несколько раз можно использовать оператор do. while.
Главной особенностью оператора do. while является тот факт, что тело цикла, заключенное между do и while выполняется хотя бы один раз, т.е. вначале выполняется тело цикла, а затем идет анализ условия.
Таким образом, смысл рассматриваемого оператора заключается в следующем: "Выполняй тело цикла до тех пор, пока истинно условие".
Оператор while. в отличие от do. while вначале анализирует условие, а затем выполняет тело цикла.
В данном примере инициализирована переменная A:=0;. Это сделано потому, что вначале идет анализ равна она 9 или нет. Если не равна, то выполняется тело цикла. Смысл рассматриваемого оператора заключается в следующем:
Оператор for. используется , когда известно сколько раз необходимо выполнить тело цикла . Рассмотрим пример .
for (A = 1; A означает A=A+1 */
В этом примере A хранит состояние счетчика цикла. Первоначально A содержит 1. Выполняется оператор printf("Zifra %d\n",A). Далее значение A увеличивается на единицу. Идет анализ A
В следующем примере рассмотрим вариант оператора for. когда начальное значение переменной больше конечного, а переменная во время работы цикла уменьшается на единицу.
for (A = 5; A >= 1; A--) /* A-- означает A=A-1 */
Существует множество модификаций оператора for. например:
- пустой оператор - для временной задержки:
- использование различного шага:
Рассмотрим пример, в котором инициализируются две переменные и каждая из которых, изменяется после итерации цикла:
for (y = 1,t=f; y означает t=t+n*/
printf(" %3d %7d\n",y,t);
Далее рассмотрим операторы перехода из одной части программы в другую).
Оператор goto позволяет передавать управление на любую строку программы. Для этой цели используется метка. Пример.
label_1:/* метка */ printf("? \n");
if (A != 'y') goto label_1; >
Хороший стиль программирования рекомендует использовать оператор goto только в тех ситуациях, где без его использования не обойтись другими средствами.
Для прерывания цикла по некоторому условию можно использовать оператор break. Пример .
Для прерывания итерации цикла и перехода к следующей итерации используется оператор continue. Пример .
if (A == 'y') continue;
printf(" Работает %c\n",A);
Для прерывания программы также используются операторы return() и exit().
Краткое описание документа:
Язык C++ – это язык программирования общего назначения, цель которого – сделать работу серьёзных программистов более приятным занятием. За исключением несущественных деталей, язык C++является надмножеством языка С. Помимо возможностей, предоставляемых языком С, язык C++ обеспечивает гибкие и эффективные средства определения новых типов.
Язык программирования служит двум взаимосвязанным целям: он предоставляет программисту инструмент для описания подлежащих выполнению действий и набор концепций, которыми оперирует программист, обдумывая, что можно сделать. Первая цель в идеале требует языка, близкого к компьютеру, чтобы все важные элементы компьютера управлялись просто и эффективно способом, достаточно очевидным для программиста. Язык С создавался на основе именно от этой идеи. Вторая цель в идеале требует языка, близкого к решаемой задаче, чтобы концепции решения могли быть выражены понятно и непосредственно. Эта идея привела к пополнению языка С свойствами, превратившими его в язык C++.
Тип урока: Изучение нового материала.
- Познакомить с новыми понятиями “цикл”, “ переменные цикла”, “тело цикла” и подвести учащихся к понятию о существовании различных видов циклических структур в программировании.
- Cоздать условия для развития познавательного интереса и логического мышления учащихся через анализ условия задач, возникающих на практике.
- развивать личностное отношение к учебным предметам;
- создавать условия для развития умения высказывать своё мнение, аргументировать его,
- повышать самооценку учеников.
- активизировать деятельность учащихся по повторению изученного ранее материала,
- определить и объяснить понятие цикла, показать построение алгоритма с использованием циклических структур,
- организовать практическую работу учащихся на компьютере.
- организовать на уроке атмосферу сотрудничества и свободу высказываний,
- повышение мотивации учащихся путем использования игрового изложения материала,
- интерес к предмету через применение компьютерных технологий.
- организовать исследовательскую деятельность учащихся в рамках урока,
- провести интеграцию информатики с предметами естественно-географического цикла,
- развить логическое мышление, воображение, умение анализировать, выделять главное, обобщать и делать выводы.
Оборудование урока: презентация, учебники, тетради по информатике.
Участники: учащиеся 9 класса, учитель.
1. Актуализация деятельности учащихся.
Ребята, сегодняшний урок я хочу начать с эпиграфа
Проблемы никогда нельзя разрешить с тем же образом мыслей, который их породил.
А. Эйнштейн.
Я думаю, сегодня нам все удастся и мы узнаем много нового и интересного.
- С какими алгоритмическими структурами мы знакомы?
- Что такое линейный алгоритм?
- Что такое ветвление?
- Какие ветвления бывают?
- Как выглядит структура ветвления?
2. Активизация умственной деятельности
Я задумаю целое число от 1 до 100, а вы постараетесь его отгадать. Например: мною загадано число 17. Кто-либо из вас называет число. После первого ответа, если число не отгадано, возникает неопределенность действий. Возникает проблема - что же делать дальше? - Нужно вернуться назад и назвать новое число. И так продолжать несколько раз до того, пока не отгадаем число.
3. Исследовательская работа учащихся.
Учитель обозначает проблему: какие задачи мы можем решить, организуя неоднократный повтор действий. (Здесь могут появиться самые разные ответы. В ходе диспута принимаются возможные варианты. Это могут быть различные задачи, где несколько раз производятся вычисления по одной формуле и многое другое).
- Назовите явления природы, в которых происходит повтор действий?
- Как происходит смена времен года?
- Как происходит смена дня и ночи?
- Как происходит фотосинтез?
- Как происходит круговорот воды в природе?
- Как происходит жизнь растений?
- Какой повтор действий происходит в вашей жизни?
- Расскажите о режиме дня.
— Какие образы, впечатления, ассоциации у вас вызывает слово "цикл"? (Высказывания учеников).
— Попробуйте сформулировать определение цикла на основе того, что мы только что услышали. (Высказывания учеников).
— Цикл, дословно с греческого – круг. Какие действия можно назвать циклом? (Высказывания учеников).
— Итак, цикл – повторяющееся действие. А может действие повторяться бесконечно? (Высказывания учеников).
— Итак, цикл – повторяющееся действие + условие.
Можно вспомнить сказки – дед тянул репку, позвал бабку, позвал внучку, позвал Жучку и т.д. Какое действие? Тянул. Какое условие? Пока не вытянул. Другие примеры циклов.
— А теперь вспомните "семь раз отмерь – один раз отрежь". Какое условие? (Высказывания учеников).
— Да, здесь считаем. Для счёта надо задать начало и конец – от .. и до .. (Высказывания учеников).
— Начинать можно с "0", с "1", да и вообще с чего угодно! Как Робинзон Крузо считал дни? (Ставил зарубки).
А начал он с какого числа? (С того, когда попал на остров).
4. Изучение нового материала
Алгоритм циклической структуры – это алгоритм, в котором предусмотрено неоднократное выполнение одной и той же последовательности действий.
На практике часто встречаются задачи, в которых одно или несколько действий бывает необходимо повторить несколько раз.
Многократное повторение последовательности действий называется циклом, а многократно повторяющиеся действия – телом цикла.
Применение циклов демонстрирует главное преимущество компьютера перед человеком – выполнение большого числа действий за короткое время. Ведь даже весьма короткий циклический алгоритм, составить который не так уж долго, при исполнении может потребовать выполнения нескольких сотен действий, с которыми компьютер справится намного быстрее, чем человек.
Существует три формы циклов: цикл с параметром, цикл с предусловием, цикл с постусловием. Каждая форма имеет стандартное описание на языке схем, а также соответствующий оператор алгоритмического языка.
Определение 1. Цикл с параметром – это цикл, в котором тело цикла выполняется заранее известное количество раз, т.е. известен диапазон изменения параметра. Параметр – это переменная целого типа, которая либо увеличивается, либо уменьшается на единицу.
Цикл реализуется следующим образом:
1) параметру присваивается начальное значение;
2) если значение входит в заданный диапазон, то выполняется тело цикла, параметр изменяется на единицу и выполняется пункт 2;
3) если значение не входит в заданный диапазон, то выполнение цикла прекращается и управление передаётся команде, следующей сразу за циклом.
При такой организации цикла тело цикла может не выполниться ни разу, если начальное и конечное значение цикла образуют пустой диапазон.
Общий вид команды:
for параметр:= начальное значение to конечное значение do тело цикла; ( цикл с шагом +1).
Непустой диапазон будет в том случае, если начальное значение конечного значения
Определение 2. Цикл с предусловием – это цикл, в котором тело цикла выполняется только в случае выполнения условия. Если условие становится неверным, то работа цикла прекращается и управление передаётся команде, следующей сразу за циклом.
При такой организации цикла тело цикла может не выполниться ни разу, если условие цикла сразу задано неверным.
Общий вид команды: while условие do тело цикла;
Определение 3. Цикл с постусловием – это цикл, в котором тело цикла выполняется до тех пор, пока условие, заданное после тела цикла не станет верным. Если условие становится верным, то работа цикла прекращается и управление передаётся команде, следующей сразу за циклом.
При такой организации цикла тело цикла обязательно выполниться хотя бы один раз, даже если условие цикла сразу задано верным.
Общий вид команды: repeat тело цикла until условие ;
Правила оформления циклов в программе Паскаль
Правило 1. Выполнять одну и ту же последовательность команд, в которых есть изменяющийся на единицу параметр.
Правило 2. Циклы ”while” и ”repeat” применяются для записи любой задачи, в которой есть повторяющиеся действия.
Правило 3. Запись команды повторения, в которой параметр увеличивается на единицу:
а) for i : = iнач to iкон do команда;
б) for i : = iнач to iкон do begin команды end;
в) i := iнач ; while i iкон;
Правило 4. Запись команды повторения, в которой параметр уменьшается на единицу:
Читайте также: