Azotirovanie.ru

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

Билет № 16. Алгоритмическая структура «цикл». Циклы со счетчиком и циклы по условию

Билет № 16. Алгоритмическая структура «цикл». Циклы со счетчиком и циклы по условию.

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

Алгоритмическая конструкция «Цикл»:

Пример: Вычислить 2 n , где n вводится с клавиатуры.

4. Если К=N То Вывод А: Конец

NКАК=N
Начало;
Ввод N;
К:=1: А:=2
Если К=N
А:=А*2
К:=К+1
Если К=N
А:=А*2
К:=К+1
Если К=N
А:=А*2
К:=К+1
Если К=N+
Вывод А: Конец

Билет № 17 (убрать. ). Технология решения задач с помощью компьютера (моделирование, формализация, алгоритмизация, программирование). Показать на примере задачи (математической, физической или другой).

Рассмотрим процесс решения задачи на конкретном примере:

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

1. На первом этапе обычно строится описательная информационная модель объекта или процесса. В нашем случае с использованием физических понятий создается идеализированная модель движения объекта. Из условия задачи можно сформулировать следующие основные предположения:

1) тело мало по сравнению с Землей, поэтому его можно считать материальной точкой;

2) скорость бросания тела мала, поэтому:

— ускорение свободного падения считать постоянной величиной;

— сопротивлением воздуха можно пренебречь.

2. На втором этапе создается формализованная модель, т. е. описательная информационная модель записывается с помощью какого-либо формального языка.

Из курса физики известно, что описанное выше движение является равноускоренным. При заданных начальной скорости (V), начальной высоте (Н) и ускорении свободного падения (g = 9,8 м/с 2 ) зависимость скорости (V) и высоты (Н) от времени (t) можно описать следующими математическими формулами:

3. На третьем этапе необходимо формализованную информационную модель преобразовать в компьютерную на понятном для компьютера языке. Существуют два принципиально различных пути построения компьютерной модели:

— создание алгоритма решения задачи и его кодирование на одном из языков программирования;

— формирование компьютерной модели с использованием одного из приложений (электронных таблиц, СУБД и т. д.).

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

Второй путь требует создания компьютерной модели, которую можно исследовать в электронных таблицах. Для этого следует представить математическую модель в форме таблицы функции зависимости координаты от времени (таблицы функции , H=H+Vt-gt 2 /2 ) и таблицы зависимости скорости тела от времени (V=V-g • t).

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

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

Таким образом, технология решения задач с помощью компьютера состоит из следующих этапов:

1. построение описательной модели

3. построение компьютерной модели

4. компьютерный эксперимент

5. анализ результатов и корректировка модели.

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

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

Операторы цикла. Цикл со счетчиком и цикл с условием. Примеры использования циклических операторов на языке Visual Basic

Цикл — это алгоритмическая структура, при помощи которой реализуется многократное повторение блоков операторов.

В языке Visual Basic существует три основных вида циклов, которые реализуется при помощи конструкций For: Next, Do:Loop и While:Wend.

Цикл For:Next. Используется в том случае, когда количество повторов заданного блока операторов известно заранее. Данная конструкция выглядит следующим образом:

For счетчик = начальное значение To конечное значение [Step шаг]

Когда приведенные операторы выполняются первый раз, то переменной счетчику присваивается начальное значение, после чего возможны два варианта действий. Если в результате проверки условия счетчик > конечное значение было получено значение True, то происходит завершение цикла, при этом блоки операторы1 и операторы2 ни разу не выполняются. С другой стороны, если результатом проверки условия является False, то в этом случае блоки операторов выполняются первый раз, после чего происходит переход на начало цикла. Далее значение переменной-счетчика увеличивается на шаг, расположенный после ключевого слова Step (в случае его отсутствия устанавливается шаг = 1). После этого снова проверяется истинность условия счетчик > конечное значение и т.д., окончание цикла происходит в тот момент, когда результатом данной проверки станет значение True.

Цикл Do:Loop.Применяется в том случае, когда число повторений операторов тела цикла заранее неизвестно. Существуют четыре разновидности данной конструкции. При использовании первых двух цикл либо выполнится много раз, либо не выполнится вообще.

Читайте так же:
Счетчик национальный долг россии

Do Until условие

Do While условие

Операторы Loop Until условие

Операторы Loop While условие

Цикл While:Wend. Также используется в том случае, когда число повторений операторов тела цикла заранее неизвестно, и имеет следующий синтаксис:

Если результатом проверки условия является значение True, то блок операторы выполняется, иначе осуществляется переход на оператор, расположенный после служебного слова Wend. С другой стороны, если первая проверка условия даст результат False, то цикл не выполнится ни разу.

Выбор: If. Then

Примеры использования циклических операторов на языке Visual Basic.

Otwet = MsgBox("Как дела?" ,4)

If Otwet = 6 Then ‘ выбрано "да"

MsgBox "Это чудесно!"

Else ‘ иначе, т.е. выбрано "нет"

MsgBox "Ну тогда удачи!"

В зависимости от того, правильно или ложно решение "Otwet = 6" (пользователь выбрал "да"), будут выполнены различные команды. Те команды, которые находятся между Then и Else будут выполнены если условие истинно, а команды между Else и End If, если условие ложно. Но в любом случае после End If исполнение команд будет продолжено.

11. Графические методы в системе проектирования и программирования VB 6. Пример циклического использования графических методов Scale, Print, Line и PSet при создании приложения «Построение графика функции». Примеры использования графических методов при создании графических Windows-приложений «Прямоугольная диаграмма» и «Круговая диаграмма». Реализация ввода и редактирования данных в указанных приложениях с помощью Редактора Меню и элемента управления Окно списка (List Box).

В элементе управления PictureBox использовались различные графические методы и свойства. Графика в Visual Basic 6.0 основывалась на API-интерфейсах Windows Graphics Device Interface (GDI).

В Visual Basic .NET графические возможности предоставляются пространством имен System.Drawing, инкапсулирующим новый набор API GDI+. GDI+ расширяет графические возможности Visual Basic 6.0, но новые методы несовместимы со старыми. При обновлении приложения Visual Basic 6.0 графические методы не обновляются.

Список графических свойств и методов Visual Basic 6.0, а также их эквиваленты для Visual Basic .NET: Свойство AutoRedraw, Метод Circle, Свойство ClipControls, Метод Cls, Свойство CurrentX, Свойство CurrentY, Свойство DrawMode, Свойство DrawStyle, Свойство DrawWidth, Свойство FillColor и другие

Пример:»Построение графика функций»

прорисовка графика функции sin(x):

Private Sub Command1_Click()

Dim x As Single

Picture1.Scale (-12, 2)-(12, -2)

Picture1.Line (-12, 0)-(12, 0)

Picture1.Line (0, 2)-(0, -2)

For x = -10 To 10 Step 0.01

Picture1.PSet (x, Sin(x))

Пример создания проекта приложения «Линейная диаграмма – график изменения температуры больного». В этом приложении реализуется действие графических методов PSet и Line, а также демонстрируются возможности работы с элементом управления ListBox (Поле списка):Заполнять значениями поле списка, а также редактировать эти значения, пользуясь четырьмя командами меню: Добавить, Вставить, Заменить, Удалить. Закончив редактирование, щелкаем графическое поле, после чего на нем появляется диаграмма для списка указанных значений.

Записываются коды следующих процедур,приведем для пример 2 прогр.кода(Это для прямоугольной и круговой диаграммы):Измерение температуры.

Dim n As Integer

Private Sub mnuAdd_Click()

NewT = InputBox("Введите новое значение температуры")

Private Sub mnuInsert_Click()

If OldT < 0 Then

MsgBox "Выделите значение, перед которым будет вставка"

NewT = InputBox("Введите новое значение температуры")

List1.AddItem NewT, OldT

Private Sub mnuUpdate_Click()

If OldT < 0 Then

MsgBox "Выделите модифицируемое значение"

NewT = InputBox("Введите значение температуры", , _

Private Sub mnuRemove_Click()

If OldT < 0 Then

MsgBox "Выделите удаляемое значение"

Private Sub Picture1_Click()

For i = 0 To n — 1

If It > Max Then Max = It

If It < Min Then Min = It

Setka n, Min, Max

Private Sub Setka(n As Integer, Min As Double, Max As Double)

Picture1.Scale (0, Max + 1)-(n + 1, Min — 1)

For y% = CInt(Min) — 1 To CInt(Max) + 1

Picture1.Line (n + 1, y)-(0, y), RGB(200, 200, 200)

Picture1.Line (x, Min — 1)-(x, Max + 1), RGB(200, 200, 200)

Private Sub Graphic(n As Integer)

For i% = 0 To n — 2

Picture1.Line (i + 1, Val(List1.List(i)))- _

(i + 2, Val(List1.List(i + 1))), vbRed

For i = 0 To n — 1

Picture1.PSet (i + 1, Val(List1.List(i)))

Список каталогов (Directory List Box ) используется для отображения иерархического списка каталогов в пользовательской системе. Список файлов (File List Box) используется для отображения списка файлов в пользовательской системе и управления ими (открытие, удаление, сохранение и др.).

12. Массив объектов. Пример создания и использования массивов объектов – элементов управления на экранной форме приложения «Калькулятор». Программный массив как обобщение понятия переменной. Пример обработки одномерного массива в приложении «Пузырьковая сортировка». Динамический массив в языке VB 6. Пример циклического ввода данных в одномерный динамический массив. Пример использования динамического двумерного массива в приложении «Сканирование и обработка изображений».

Массивом называют упорядоченную последовательность элементов одного типа, обращение к которым осуществляется при помощи имени и индекса (т.е. порядкового номера элемента). Как правило, работа с элементами массива выполняется в циклах, где в качестве индекса выступает счетчик цикла.

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

Существует две разновидности массивов: статические и динамические. Статические массивы значения его верхней и нижней границ не могут быть изменены в программе. Данный вид массивов описывается в программе так же, как и переменные – при помощи одного из служебных слов: Dim, Private, Public или Static с последующим указанием типа после служебного слова As. При этом может быть указана как верхняя, так и обе границы одновременно

Читайте так же:
Задолженность за общедомовой счетчик

Dim arrA(9) As Byte

Dim arrB(1 To 10) As Byte

В данном случае оба массива содержат одно и тоже количество элементов одинакового типа. Однако нумерация элементов arrA начинается с нуля, в то время как нумерация arrB – с единицы. Заполнение элементов массива, как правило, выполняется в цикле

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

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

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

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

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

Private Sub Operacia_Click(Index As Integer)

If Ravno.Tag = "" Then ‘ нет изменения выбора операции?

‘ если операция была задана — вычисляем её значение:

If deystvie "нет" Then vtoroe = Val(Tablo.Caption): rezultat

Select Case Index ‘ запишем выбранное действие

Case 0 deystvie = "разделить"

Case 2 deystvie = "вычесть"

Case 4 deystvie = "сложить"

Case 5 deystvie = "умножить"

pervoe = Val(Tablo.Caption) ‘ первое число операции — то что на табло при выборе операции

Ravno.Tag = "второе" ‘ режим ввода второго числа

Private Sub rezultat()

Select Case deystvie

Tablo.Caption = pervoe + vtoroe

Tablo.Caption = pervoe — vtoroe

If vtoroe 0 Then

Tablo.Caption = pervoe / vtoroe

Else ‘ на ноль действительно нельзя делить!

Tablo.Caption = "на ноль не делят!"

Tablo.Caption = pervoe * vtoroe

Private Sub Sbros_Click()

deystvie = "нет" ‘ стираем, возможно, указанное действие

Tablo.Caption = "0" ‘ на табло — ноль
Tablo.Tag = "" ‘ по умолчанию — вводится целое число

13. Средства языка VB 6 для работы с файлами – текстовыми файлами, бинарными файлами и файлами произвольного доступа. Использование пользовательского типа данных. Использование объектов Общий диалог (Common Dialog) и Rich Textbox для открытия и сохранения файлов RTF, выбора шрифта и выбора цвета на примере создания простейшего текстового редактора в системе VB 6. Использование объектов Общий диалог (Common Dialog) и графических методов для открытия, редактирования и сохранения графических (BMP) файлов на примере создания простейшего графического редактора в системе проектирования VB 6.

Visual Basic (и не только Visual Basic) различает три вида файлов (или, что практически то же самое, три режима доступа к файлу): Файлы последовательного доступаВсе текстовые (ASCII-, ANSI-файлы) состоят из последовательности строк символов, при этом каждая строка может иметь произвольную длину и доступ к этим строкам может быть только последовательным. Файлы произвольного доступаФайл произвольного доступа состоит из записей фиксированной длины, поэтому местоположение записи в файле можно вычислить умножением номера записи на ее длину. Благодаря этому оказывается возможным позиционироваться на произвольную запись. Бинарные (двоичные) файлыБинарный файл представляет собой частный случай файла произвольного доступа — достаточно принять длину записи равной одному байту и становится возможным позиционироваться на произвольный байт в файле. Что означают все эти байты и как они организованы — дело самой программы.

Циклы содержание Циклы 1

На блок-схеме представлен пример программы с циклом. Конструкция цикла помещена в прямоугольник голубого цвета. Посмотрим на нее повнимательней и разберемся, как в этом случае будет работать программа. Выполнится действие 1, затем действие2, затем будет проверено условие 1. Если оно истинно, то выполнятся действия 3 и 4. Затем программа вернется к действию 2. Очевидно, что далее все команды, помещенные внутри прямоугольника, повторятся снова, снова и снова. Это будет продолжаться до тех пор, пока при проверке условия 1 не окажется, что оно ложно. В этом случае программа выйдет из цикла, выполнит действие 5 и закончит свою работу. Таким образом, на блок-схеме цикл реализуется при помощи стрелки, идущей обратно, к уже пройденным действиям.

Действия, которые выполняются на каждом шаге цикла, образуют тело цикла. Условие, одна из ветвей которого реализует выход из цикла, называется условием продолжения цикла. На фрагменте блок-схемы, изображенном на рисунке, тело цикла образуют действия 2, 3, 4. Условие 1 – условие продолжения цикла. Если исполнитель подошел к блоку “условие”, и оно истинно, то действия цикла повторяются еще раз, а если ложно – исполнитель выходит из цикла по ветке 0 и переходит к выполнению действия 5, следующего после цикла. Каждый проход исполнителя по циклу называется шагом цикла.

Читайте так же:
Epson r2400 счетчик очистить

При разработке циклических алгоритмов необходимо обратить внимание на 3 момента:

  1. присвоить начальные значения всем переменным, которые предполагается использовать
  2. продумать, что должен делать алгоритм на каждом шаге цикла
  3. до каких пор будут выполняться шаги цикла – это условие представляется блоком условия, одна из веток в конечном итоге опять возвращается к этому блоку условия, а другая выходит из цикла

Вопросы по блок-схеме циклического алгоритма

  1. Какое условие продолжения цикла на представленной блок-схеме?
  2. Какие действия повторяются на каждом шаге цикла?
  3. Что выведет программа, если будет введено n=4?
  4. Какую задачу решает представленный алгоритм?

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

Цикл с предусловием – одна из простейших конструкций цикла. По формату она похожа на сокращенную форму оператора ветвления, только вместо if следует писать слово while, а вместо then – слово do:

WHILE условие DO оператор;

Здесь “условие” после слова while является условием продолжения цикла. В качестве условия можно записать любое логическое выражение. Оператор, записанный после слова do, образует тело цикла и выполняется многократно, пока при проверке «условие» продолжения цикла будет истинным. Блок-схема цикла while показана на рисунке. Конструкция цикла на блок-схеме помещена в зеленый прямоугольник. Заметим, что блок условия продолжения цикла находится до тела цикла, поэтому цикл while называется цикл с предусловием. Еще одно название цикла while следует из русского перевода – цикл «пока».

Как следует из блок-схемы, если компьютер встретит цикл while, он проверяет условие, и если оно истинно, выполняет оператор, затем опять возвращается к условию. Эти действия повторяются многократно до тех пор, пока при проверке условие не окажется ложным. В этом случае компьютер переходит к выполнению оператора 2, который идет после конструкции цикла на блок-схеме.

Если на каждом шаге цикла необходимо выполнить несколько операторов, то их нужно объединить в один составной оператор, в результате получится конструкция вида:

WHILE условие DO

Пример 1. Вывести на экран в порядке возрастания все нечетные числа, меньшие заданного числа n.

Выводимые числа будем хранить в переменной i. Сначала i:=1, так как 1 – самое маленькое нечетное число. На каждом шаге цикла нужно выводить значение i на экран и прибавлять к ней 2 – переход к следующему нечетному числу. эти операторы составляют тело цикла. Поскольку их 2, нужно поставить begin и end. Цикл нужно выполнять, пока i while i do

Вычисление сумм, произведений и количеств

Пример 2. Вычислить произведение четных чисел, меньших заданного числа m.

Итак, нужно вычислить произведение 2*4*6*8*. Видно, что необходимо много раз выполнять умножение, поэтому необходим цикл. Произведение будем накапливать в переменной s. Сначала s=1, далее ее нужно умножить на 2, затем на 4, далее на 6 и т.д. Число, на которое умножаем, будем хранить в переменной x. Сначала x=2.

Чему равны начальные значения переменных, теперь ясно.

Далее разберемся, что будем делать на каждом шаге цикла. Нужно умножить s на очередное число, то есть s:=s*x. Смысл этого оператора – взять старое значение s, умножить на x, а результат снова записать в переменную s. Кроме того, на каждом шаге цикла необходимо увеличить значение x на 2, так как нас интересуют только четные числа(x:=x+2). На каждом шаге цикла нужно выполнить два оператора, значит необходимо создать составной оператор – begin..end.

Осталось разобраться, до каких пор нужно выполнять умножения, то есть, определить условие продолжения цикла. Оно было указано в условии задачи: x while x mod 7<>0 do readln(x);

writeln(‘делится!’);

Пример 4. Вычислять значение выражения 1 2 +3 2 +5 2 +. до тех пор, пока эта сумма не превысит 1000. Ответ вывести на экран.

Решение. Сумму накапливаем в переменной s. Условие продолжения цикла s while s do

end.
Основные ошибки при разработке программ с циклами, что необходимо проверить в первую очередь, если программа не работает или работает неверно:

Убедитесь, что после слова do нет точки с запятой. Если она есть, то тело цикла – пустой оператор, при его выполнении ничего не происходит. Следовательно, условие цикла никогда не изменится, и цикл будет выполняться вечно. Операторы, которые вы программировали как тело цикла, из-за этой ошибки оказались уже после конструкции вашего вечного цикла, поэтому до них программа никогда не дойдет.

Убедитесь, что в теле цикла вы не забыли изменить какую-нибудь переменную, присутствующую в условии продолжения цикла. Если нет, то цикл будет продолжаться вечно.

Тело вашего цикла должно состоять из нескольких операторов? Убедитесь, что вы не забыли поставить begin и end, причем там, где они должны находиться. Если нет, то телом цикла будет только первый из операторов, он будет выполняться многократно, а остальные выполнятся только один раз уже после завершения цикла (если, конечно, он не будет выполняться вечно).

Читайте так же:
Что измеряет счетчик моточасов

Проверьте еще раз операторы тела цикла

Правильно ли вы присвоили им начальные значения

Нет ли ошибки в условии продолжения цикла.

Ситуация, когда цикл выполняется вечно, называется зацикливание.

Задачи по теме «цикл while»

  1. Вывести на экран в порядке возрастания все нечетные числа, меньшие 20.
  2. Вывести на экран произведение всех четных чисел, меньших 16.
  3. Прочитать с клавиатуры число. Вывести на экран произведение всех нечетных чисел, меньших этого числа.
  4. Прочитать с клавиатуры число. Вывести на экран его наименьший делитель, не считая 1.
  5. Прочитать с клавиатуры число. Вывести на экран его наибольший делитель, не считая самого числа.
  6. Прочитать с клавиатуры число. Вывести на экран его наибольший четный делитель, не считая самого числа.
  7. Прочитать с клавиатуры два числа. Вывести на экран их наибольший общий делитель.
  8. Прочитать с клавиатуры два числа. Вывести на экран их наименьшее общее кратное.
  1. Прочитать с клавиатуры три числа. Вывести на экран их наибольший общий делитель.
  2. Прочитать с клавиатуры число. Вывести на экран произведение всех положительных чисел, делящихся на 3 и меньших этого числа.
  3. Прочитать с клавиатуры два числа. Вывести на экран их наибольший общий нечетный делитель.
  4. Прочитать с клавиатуры число. Вывести на экран сумму всех положительных чисел, делящихся на 3 и меньших этого числа.
  5. Прочитать с клавиатуры два числа. Вывести на экран их наибольший общий четный делитель.
  6. Прочитать с клавиатуры число. Вывести на экран произведение всех четных чисел, меньших этого числа.
  7. Прочитать с клавиатуры число n. Вывести на экран максимальное число, не превосходящее n и делящееся на 27. Например, если n=84, то ответ 81
  8. Прочитать с клавиатуры число. Вывести на экран сумму всех четных чисел, меньших этого числа.
  9. Прочитать с клавиатуры число. Вывести на экран сумму всех нечетных чисел, меньших этого числа.
  10. Прочитать с клавиатуры число n. Вывести на экран минимальное число, превосходящее n и делящееся на 27. Например, если n=84, то ответ 108

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

Цикл со счетчиком оформляется следующим образом

FOR пер:=нач TO кон DO оператор;

Здесь вместо слова «пер» может стоять имя любой переменной типа integer, boolean (и некоторых других типов). Эта переменная называется счетчик цикла. «Нач» и «кон»– любые выражения, типы которых совпадают с типом переменной пер. Конструкция FOR пер:=нач TO кон DO называется заголовок цикла. Оператор, следующий после ключевого слова do образует тело цикла. Когда компьютер встречает заголовок цикла for, он выполняет следующие действия:

вычисляет значения выражений «нач» и «кон»

присваивает счетчику «пер» значение выражения «нач»

если «пер» меньше или равно «кон», то выполняет пункты 4-6.

прибавляет к счетчику «пер» единицу

возвращается к пункту 3.

Цикл for можно заменить следующей конструкцией цикла while

while пер =кон. На каждом шаге цикла значение переменной нач уменьшается на 1.

На каждом шаге цикла for выполняется один оператор. Если нужно выполнить несколько – образуйте из них составной оператор, например рассмотрим задачу.

Пример 5. Прочитать с клавиатуры число n и вывести на экран факториалы чисел от 1 до n включительно.

Факториал числа – это произведение всех чисел от 1 до этого числа, т.е. k!=1*2*3*. *k. Много умножений, значит необходим цикл. Количество повторений для вычисления n! фиксировано, кроме того, нужно умножать числа, отличающиеся на 1. Значит удобно использовать цикл for. Факториал числа будем хранить в переменной f. Перед циклом f=1. На первом шаге цикла умножим f на 1. Это 1! Ответ сразу нужно вывести на экран, так как по условию нужно вывести все факториалы. Далее нужно умножить на 2,получим 2!, далее на 3 и т.д. В цикле for счетчик как раз на каждом шаге увеличивается на единицу, поэтому для хранения чисел, на которые умножаем, не нужно специальной переменной – используем счетчик. Назовем счетчик i. Начальное значение счетчика указывается в заголовке цикла for: i:=1, конечное значение n. На каждом шаге цикла умножаем f на i (f:=f*i) и выводим его на экран.

for i:=1 to n do

Задачи по теме «цикл for»

  1. Прочитать число n и вывести на экран n!
  2. Прочитать с клавиатуры число n и вывести на экран n раз слово «привет»
  3. Прочитать с клавиатуры значения переменных n и m и вывести на экран квадраты целых чисел от n до m.
  4. Прочитать с клавиатуры значение n и вывести на экран все четные числа, не большие 2*n.
  5. Вывести на экран первые 20 натуральных чисел в порядке убывания, то есть 20 19 18… 2 1
  1. Прочитать с клавиатуры число n и вывести на экран квадраты чисел от 1 до n в порядке возрастания.
  2. Прочитать с клавиатуры число n и вывести на экран сумму квадратов чисел от 1 до n
  3. Прочитать с клавиатуры число n и вывести на экран квадраты чисел от 1 до n в порядке убывания.
  4. . Прочитать с клавиатуры числа n и m и вывести на экран числа от n до m в порядке возрастания.
  5. . Прочитать с клавиатуры числа n и m и вывести на экран произведение чисел от n до m.
  6. Прочитать с клавиатуры число n. Вычислить произедение чисел от 1 до n и сумму чисел от 1 до n. Вывести на экран разность между найденной суммой и произведением.
  7. Прочитать с клавиатуры число n. Далее прочитать с клавиатуры n чисел и вывести на экран их сумму.
  8. Прочитать с клавиатуры число n. Далее прочитать с клавиатуры n чисел и вывести на экран их произведение.
  9. Прочитать с клавиатуры число n. Далее прочитать с клавиатуры n чисел и вывести на экран сумму их последних цифр.
  10. Прочитать с клавиатуры число n. Далее прочитать с клавиатуры n чисел и вывести на экран произведение их последних цифр.
Читайте так же:
Будут ли устанавливаться общедомовые счетчики

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

Конструкция цикла с постусловием такова

REPEAT

UNTIL условие;

Соответствующая блок-схема показана на рисунке. Принципиальные отличия от цикла while видны из особенностей конструкции и блок-схемы (конструкция цикла на блок-схеме помещена в зеленый прямоугольник):

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

«Условие» на самом деле является условием прекращения цикла. Если при проверке условия оно оказалось истинным, то выполнение цикла прекращается, а компьютер переходит к следующему после цикла оператору. На блок-схеме это оператор 3.

Строки “REPEAT” и «UNTIL условие;» образуют операторные скобки, поэтому между тело этого цикла может состоять из любого числа операторов, begin. end не требуется.

В остальном особенности применения этого цикла и подводные камни совпадают с оными для цикла while.

Циклы repeat. until и while вполне взаимозаменяемы, хотя существуют ситуации, когда удобнее применить ту или иную конструкцию, учитывая их отличия.

Пример 6. Дана непустая последовательность целых чисел, оканчивающаяся числом 0. Найти сумму чисел.

Поскольку чисел будет несколько, необходимо многократно повторять чтение числа с клавиатуры и его прибавление к сумме. Значит, необходим цикл. В переменной x будем хранить очередное число, в переменной s – сумму. Удобней использовать цикл repeat..until, так как нужно сначала прочитать число (то есть выполнить тело цикла) и только потом проверять, не равно ли оно 0. Для сравнения в рамке приведено решение задачи с циклом while. Из сравнения видно, что программа с while сложнее.

Тема: Цикл со счетчиком.

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

Можно, конечно, циклы со счетчиком моделировать при помощи операторов while и Repeat, но структура цикла со счетчиком проще.

Общая форма записи цикла со счетчиком

for i := A to B do
begin
. . .
end;

for i := A downto B do
begin
. . .
end;

Здесь переменная i — управляющая переменная или переменная цикла,

А — начальное значение переменной цикла,

В — конечное значение переменной цикла.

При переходе к обработке оператора цикла for управляющей переменной присваивается заданное начальное значение. Затем в цикле выполняется исполнительный оператор (или составной оператор). каждый раз при выполнении исполнительного оператора управляющая переменная увеличивается на 1 (для for. to) или уменьшается на 1 (для for. downto). Цикл завершается при достижении управляющей переменной своего конечного значения.

1) for i := 1 to ListSize do
begin
readln (Number):
S := S +Number;
end;

2) for Dlina := 15 downto 1 do
writeln (Sqr(Dlina));

3) for x := 1 to 10 do
for y := 1 to 10 do
writeln (x,’*’,y,’=‘,x*y);

4) for Range := Number+1 to Multi*3 do
writeln (Sqrt(Range));

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

for i := 1 to 10 do
begin
. . .
i := i-1;
. . .
end;

Управляющая переменная должна описываться, как и любая другая переменная. Обычно переменная цикла имеет тип integer, но позднее Вы рассмотрите другие типы данных, которые могут указываться в цикле for.

Внимание! Следует помнить, что управляющая переменная не может быть типа real.

Исполнительная часть цикла может быть либо простым, либо составным оператором. Если начальное значение цикла for . to больше конечного значения, то никакие операции не выполнятся. Таким образом, следующий оператор не приведет ни к каким действиям

for j := 1 to 0 do
writeln (j);

Однако цикл, представленный в такой форме, распечатает целые числа от единицы до десяти:

for j := 1 to 10 do
writeln (j);

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

for j := 10 downto 1 do
writeln (j);

Часто исполнительная часть одного из циклов For является новым оператором цикла For. Структуры такого рода называются вложенными циклами. При завершении внутреннего цикла управляющая переменная внешнего цикла увеличивается. Повторение этих действий будет продолжаться до вавершения внешнего цикла. Приведенный ниже вложенный цикл печатает пары чисел, начиная от (1,1), (1,2). и кончая (10,10):

for х:= 1 to 10 do
for у:= 1 to 10 do
writeln (‘(‘,х,’,’,y,’), ’);

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

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