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.  вычислить значение функции для нескольких значений х


 

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

50239. Вивчення явища фотолюмінесценції 600 KB
  Прилади і обладнання Монохроматор УМ2 джерела випромінювання неонова лампочка ртутна лампа конденсорна лінза світлофільтр фотоюмінофор Опис установки Лабораторна установка зібрана на базі монохроматора УМ2 який використовується як спектроскоп.1 виділені оптичні елементи що входять до складу монохроматора. Випромінювання з люмінофора фокусується лінзою 5 на вхідну щілину монохроматора 7 і далі потрапляє на дисперсійну призму 9 через обєктив коліматора 8. За допомогою барабана довжин хвиль монохроматора на якому нанесені відносні...
50240. Г. Спенсер как основатель органической школы в социологии 15 KB
  Герберта Спенсера считают основателем органической школы в социологии. В фундаментальном труде Основы социологии (1877) Спенсер проводил аналогии между биологической и социальной эволюцией, между живым организмом и обществом
50241. Принципы построения бухгалтерского финансового учета 80.5 KB
  Информация, которая формируется в системе бухгалтерского учета хозяйствующих субъектов, должна отвечать требованиям всех заинтересованных пользователей. В зависимости от круга интересов различных групп пользователей информацией в системе бухгалтерского учета можно выделить взаимосвязанные подсистемы
50242. ЭЛЕКТРОИСКРОВОЕ ЛЕГИРОВАНИЕ МЕТАЛЛИЧЕСКИХ МАТЕРИАЛОВ 411 KB
  Этот способ имеет следующие специфические свойства: материал анода легирующий материал может образовывать на поверхности катода легируемая поверхность прочно сцепленный с ней слой покрытия. В этом случае между материалом основы и покрытием существует промежуточный слой в котором протекают диффузионные процессы элементов катода и анода; процесс легирования может происходить так что материал анода не образует покрытия на поверхности катода а диффузно обогащает ее своими составляющими элементами; легирование можно проводить...
50243. ОПРЕДЕЛЕНИЕ МОМЕНТОВ ИНЕРЦИИ ТЕЛ МЕТОДОМ КРУТИЛЬНЫХ КОЛЕБАНИЙ 183.5 KB
  Инертные свойства тела при вращении определяются не только массой тела, но и расположением отдельных частей тела по отношению к оси вращения. Для характеристики этих свойств вводится понятие момента инерции.
50245. Понятие отчета в СУБД Access и его основных элементов 117 KB
  Понятие отчета в СУБД ccess и его основных элементов Отчеты представляют собой наилучшее средство представления информации из базы данных в виде печатного документа. Основные сведения об отчетах Рис.1 Вид окна Новый отчет Для создания отчета в окне базы данных выбираем пункт Отчет в раскрывающемся списке кнопки Новый объект на панели инструментов или кнопку Создать на вкладке Отчеты . Мастер отчетов запускает основного мастера для создания отчетов позволяющего выбрать поля для отчета задать форматы условия группировки и итоговые...
50246. Пояснить создание и настройку отчета в режиме конструктора СУБД Access 22.5 KB
  Настройка отчетов Чтобы изменить размер выделенного элемента управления можно воспользоваться маркерами изменения размера находящимися на сторонах в нижних углах и в правом верхнем углу. Для перемещения невыделенного элемента управления используйте указатель мыши. Если элемент управления имеет присоединенную надпись она перемещается вместе с ним. перемещать элемент управления и присоединенную надпись можно независимо друг от друга с помощью маркеров перемещения расположенных в левых верхних углах элемента управления и надписи.
50247. Визначення енергії дисоціації молекул йоду 896.5 KB
  Лабораторна установка для вивчення спектрів поглинання розчинів йоду зібрана на базі монохроматора УМ2 який використовується як спектроскоп. 3 виділені оптичні елементи що входять до складу монохроматора. 2 сфокусоване конденсорною лінзою 3 світло проходить через досліджуваний розчин 4 і потрапляє на вхідну щілину 6 монохроматора. Градуювання монохроматора Для цього потрібно див.