1718

Алгоритмизация и программирование циклических алгоритмов

Контрольная

Информатика, кибернетика и программирование

Оператор цикла с предусловием While Wend. Повторяющаяся последовательность действий (в программе операторов). Оператор цикла For Next. Форматирование значений данных. Табулирование функций.

Русский

2013-01-06

112.5 KB

29 чел.

Алгоритмизация и программирование циклических алгоритмов

Циклическим называется алгоритм, в котором некоторая последовательность действий может выполняться несколько раз в зависимости от заданного условия. Повторяющаяся последовательность действий (в программе операторов) называется телом цикла. Условие, от которого зависит число повторений цикла, включает в себя, по крайней мере, одну переменную, которая называется параметром цикла. Параметр цикла должен обязательно изменяться в теле цикла. Циклические алгоритмы реализуются в программе с помощью операторов цикла. В VBA есть 3 оператора цикла (While, Do, For), которые имеют несколько разновидностей.

  1.  Оператор цикла с предусловием WhileWend

В программе:

While <условие> - заголовок цикла

<тело цикла>

Wend

Для записи условий используются логические выражения.

Выполнение оператора:

Устанавливается начальное значение параметра цикла. Вычисляется значение логического выражения в условии, если его значение true, то выполняются операторы в теле цикла и опять вычисляется значение логического выражения. До тех пор, пока значение логического выражения true выполняются операторы тела цикла. Как только значение логического выражения станет false, происходит выход из цикла и переход к следующему за While оператору.

Если перед первым выполнением цикла значение логического выражения false, то тело цикла не выполняется ни разу. При использовании оператора While необходимо правильно устанавливать начальное значение и изменение параметра цикла, иначе цикл может выполняться бесконечно. Для выхода из зациклившейся программы нужно нажать клавиши : Ctrl + Pause\Break (или ESC), в появившемся окне прерывания программы следует выбрать End.

Пример1. Вывести целые числа от 1 до 20, их квадраты и кубы в первые 3 столбца таблицы на рабочем листе.

i – число, которое нужно вывести, и номер строки, в которую нужно вывести число.

i=1

While i<=20

Cells(i,1)=i

Cells(i,2)=i^2

Cells(i,3)=i^3

i=i+1

Wend

Любой циклический алгоритм можно реализовать с помощью цикла While.

  1.  Оператор цикла ForNext

Цикл ForNext – частный случай цикла с предусловием. Существуют две формы цикла For:

 iнач<=iкон ∆i>0

 iнач >=iкон ∆i<0

For i = iнач To iкон [ Step ∆i ] – заголовок цикла

 <тело цикла>

Next i

Если параметр Step не указывается, то предполагается шаг изменения параметра цикла равный 1.

При выполнении оператора For все операторы тела цикла повторяются для всех значений параметра цикла от iнач до iкон с шагом i. Если i>0, то значение параметра цикла увеличивается от iнач до iкон. При i<0 уменьшается от iнач до iкон.

Если в первой форме iнач > iкон, а во втором iнач < iкон, то тело цикла не выполняется ни разу. Если iнач = iкон, то тело цикла выполняется один раз.

Если i<0, то тип переменной не может быть Byte.

Особенности цикла For:

  1.  Установка начального, конечного значения и шага изменения параметра цикла выполняется автоматически в соответствии с заголовком цикла. Их нельзя изменять в теле цикла.
  2.  Не рекомендуется использовать значение параметра цикла после выхода из цикла. Оно может быть не определено.
  3.  Цикл For используется тогда, когда число повторений цикла можно определить до начала выполнения цикла.

- число повторений цикла.

Количество повторений цикла:

For i = 2 To 20 Step 2 10

For i = 2 To 20 Step -2 0

For i = 2 To 2 Step -2 1

For i = 20 To 2 Step -2 10

For i = 20 To 2 Step 2 0

For i = 2 To 2 Step -2 1

For i = 2 To 2 Step 0 бесконечно

Пример. Вывести числа от 1 до 20 в первый столбец таблицы, а в обратном порядке от 20 до 1 – во второй.

For i=1 To 20 Step1

Cells(i,1) = i

Next i

For i=20 To 1 Step -1

Cells(21-i,2) = i

Next i

  1.  Форматирование значений данных

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

Синтаксис функции:

Format (<выражение>, <формат>), 

где <выражение> – арифметическое выражение или дата,

<формат> – это именованный или определенный пользователем формат.

Предопределенные или именованные форматы:

  •  LongDate, ShortDate – длинный и короткий формат даты в соответствии с установками этих форматов в ОС Windows;
  •  Currency – денежный формат, формат числа с разделителем тысяч, двумя десятичными разрядами и знаком денежной единицы (по умолчанию р.);
  •  Fixed – формат числа с двумя десятичными разрядами и хотя бы одним разрядом в целой части числа;
  •  Percent – процентный формат, число умножается на 100 и добавляется знак %.

Разделители тысяч (пробел) и целой и дробной части (,) устанавливаются в ОС Windows.

Примеры:

  •  MsgBox Format (#2/10/09# , ”LongDate”) → 10 февраля 2009
  •  MsgBox Format (#2/10/09# , ”ShortDate”) → 10.02.2009

a=1234.5

  •  MsgBox Format (a,”Currency”) → 1 234,50 р.
  •  MsgBox Format (a,” Fixed”) → 1234,50
  •  pr=0.25
  •  MsgBox Format (pr,” Percent”) → 25%

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

Символы-заполнители:

0 – отображает цифру, если она есть в этой позиции и 0, если ее нет;

# – отображает цифру, если она есть в этой позиции, если ее нет, не отображает ничего, аналогичен 0, но не отображает начальные и конечные пробелы;

. – отображает разделитель целой и дробной части в указанной позиции;

, – отображает разделитель тысяч в указанной позиции;

% – число умножается на 100 и добавляется знак %;

$ – отображает знак денежной единицы (р.) в указанной позиции.

Примеры:

a=1234.5

  •  MsgBox Format (a , ”00000.00”) → 01234,50
  •  MsgBox Format (a , ”#####.##”) → 1234,5
  •  MsgBox Format (a, ”0.00”) → 1234,50
  •  MsgBox Format (a, ”#,###.0#$”) → 1 234,5 p.

pr=0.25

  •  MsgBox Format (pr, ”#.00%”) → 25,00%

При выводе в ячейки рабочего листа числовых данных для их форматирования устанавливаются значения различных свойств ячейки или диапазона. Для установки числовых форматов используется свойство NumberFormat. Формат задается с помощью строки из символов-заполнителей.

Cells(1,1) = a

Cells(1,1) . NumberFormat = ’’0.0#%’’

Range (’’A1:A7’’) . NumberFormat = ’’0.00$’’

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

Cells(1,1) = Format (pr,” Percent”)

Табулирование функций

Табулирование функции – это вычисление значений функции для ряда значений аргумента. Аргумент может быть задан в виде набора произвольных значений (массива) или в виде набора чисел от некоторого начального значения до конечного значения с фиксированным шагом.

Результаты табулирования функции обычно выводятся в таблицу.

y=x2

x= (-1,8,4,0,-3.5)

x=-1, -0.5,0,0.5,1….3 xнач=-1; xкон=3, ∆x=0.5

Задача. Вычислить значение функции y = f(x) для значений аргумента xнач, xнач + ∆x, xнач + 2 ∆x, ..., xкон. Результаты вывести в таблицу вида:

Таблица значений функции

 xнач = xкон = шаг x =

 № п/п

 X

Y

1

2

 xнач

 xнач + ∆x

xкон

 f (xнач)

 f (xнач + ∆ x )

f (xкон)

Таблица используемых переменных

Имя переменной в задаче

Имя переменной

в программе

Тип

переменной

Комментарий

xнач

xкон

∆х

х

у

-

хn

хk

dx

x

y

i

Real

Real

Real

Real

Real

byte

нач. значение аргумента, исх дан

кон. значение аргумента, исх дан

шаг изменения аргумента, исх дан

аргумент функции, промежут. рез.

значение функции, результат

№ строки, промежут. результат


Графическая схема алгоритма
:

Текст процедуры:

Sub Tabul()

' Вывод данных на рабочий лист

' Табулирование функции

Dim xn As Single, xk As Single, dx As Single, x As Single, y As Single

Dim i As Byte

xn = InputBox("Введите Xнач", "Ввод исходных данных")

 xk = InputBox("Введите Xкон", "Ввод исходных данных")

dx = InputBox("Введите шаг X", "Ввод исходных данных")

Cells.Clear

Range("A1") = "Таблица значений функции"

 Range("A2") = "Xнач=" & xn

Cells(2, 2) = "Xкон=" & xk

Cells(2, 3) = "Шаг X=" & dx

Cells(4, 1) = " N п/п "

Cells(4, 2) = " X "

Cells(4, 3) = " Y "

i = 1

x=xn

While x<=xk

y = 2 * Sqr(x) + 1

Cells(i + 4, 1) = i

Cells(i + 4, 2) = x

Cells(i + 4, 2).NumberFormat = "0.00"

Cells(i + 4, 3) = y

Cells(i + 4, 3).NumberFormat = "0.000"

x=x+dx

i = i + 1

 Wend

 End Sub 

Можно использовать и оператор цикла For:

For x = xn To xk Step dx

 --------------

Next x

Не записываются операторы x=xn и x=x+dx

Тесты:

  1.  k=[(xкон-xнач)/∆x] +1 - количество строк таблицы
  2.  вычислить значение функции для нескольких значений х


 

А также другие работы, которые могут Вас заинтересовать

83172. Иммунитет. Иммуная система человека 31.24 KB
  Существенное значение в возникновении инфекционного процесса его развитии и исходе заболевания имеют также свойства и состояние зараженного организма которые зависят от условий жизни материальной обеспеченности характера и условий труда быта питания человека и других факторов.
83173. Финансовая ответственность и правонарушение 22.87 KB
  Самостоятельность финансовой ответственности подчеркивают специфические особенности финансового правонарушения. Понятие финансовое правонарушение носит собирательный характер оно объединяет бюджетные налоговые валютные и банковские правонарушения. Помимо конкретного перечня правонарушений Бюджетный кодекс содержит и само понятие...
83174. History of Basketball 23.7 KB
  Basketball is an extremely popular all around the world. The object is to put a ball through a hoop, or basket, and thus score more points than the opposing team. Teams comprise of ten players, with a maximum of five on court at any one time. Substitutions are unlimited during the course of the game.
83175. Нормы международного таможенного права в правовой системе Российской Федерации 32.46 KB
  Таможенное право комплексная отрасль права представляющая собой систему правовых норм различной правоотраслевой принадлежности которые устанавливаются санкционируются государством и предназначены для регулирования общественных отношений связанных с перемещением товаров и транспортных средств через таможенную границу взиманием таможенных...
83176. Развитие экономической теории в России 578.25 KB
  Успешное восстановление послевоенной экономики зависело не только от решения таких основных задач как собственно реконструкция восстановление разрушенного реконверсия перевод военного производства на выпуск гражданской продукции но и самого выбора варианта послевоенного хозяйственного развития страны.
83177. Сердечно – сосудистая система 606.63 KB
  В состав сердечно-сосудистой системы входит сердце орган который заставляет кровь двигаться нагнетая ее в кровеносные сосуды полые трубки различного калибра по которым она циркулирует. Кровь состоит из плазмы и приблизительно равного ей объема форменных элементов преимущественно красных клеток крови.
83178. Органы исполнительной власти Республики Беларусь 47.15 KB
  Исходя из данного определения - следующий уровень системы исполнительных органов – это республиканские органы государственного управления и иные государственные организации. Согласно Указу № 289 сюда входят министерства, государственные комитеты, являющиеся республиканскими органами государственного управления...
83179. Анализ природных ресурсов Кемеровской области 94.13 KB
  Кузнецкий бассейн расположен в Западно-Сибирском экономическом районе на территории Кемеровской области. Крайний юг области обширная территория средне-высоких гор Горной Шории. С 1943 центр Кемеровской области. Минерально-сырьевые ресурсы На территории области выявлены полезные ископаемые: уголь каменный бурый и горючие сланцы; чёрные металлы руда железная марганцевая; цветные и благородные металлы руда серебро ртуть свинец цинк медь барит бокситы нефелиновые руды...
83180. Несиметричні короткі замикання 71.15 KB
  Найбільш частим виглядом КЗ є несиметричні КЗ – однофазні, двофазні, двофазні на нейтраль. Вони є граничним випадком несиметричного навантаження. При несиметричних коротких замиканнях сталі струми короткого замикання досягають максимальних значень.