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


 

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

25291. П.Копнін – засновник київської світоглядно-гносеологічної школи 29.5 KB
  Копнін засновник київської світоглядногносеологічної школи Павло Копнін 19221971. Основні праці Копніна: Боротьба матеріалізму та ідеалізму канд. Копніна був найпліднішим у його творчості. Починаючи з Копніна в Україні виникає нове культурне явище.
25292. Основні напрямки філософських пошуків В.Шинкарука 33 KB
  Радіщева дисертація Людина та світ людини Соціальноісторичні та світоглядові аспекти філософських категорій. В своїй дисертації Шинкарук висловлює такі думки: людина є внутрішня та зовнішня де перше визначає друге; зовнішня натура як ієрогліф внутрішньої; вирішальна значущість внутрішнього світу людини який уможливлює поставлення себе над усіма випадками; принцип самопізнання як наріжний для людини; обмеженість опосередкованості розуму та переваги безпосереднього спілкування з духовним світом. Відповідно...
25293. Проблема людини і світу у працях українських шестидесятників 32 KB
  Проблема людини і світу у працях українських шестидесятників Парадигмальні зрушення котрі було започатковано в українській філософії 60х років мали значущість не лише науковофілософську а й загальнокультурну й навіть політичну. Цінності культури розглядаються як квінтесенція духовного досвіду людини та як найважливіший регулятив її світовідношення. У центр своїх наукових пошуків Іванов поставив проблему людини. При розгляді цієї проблеми виходив з діяльних аспектів людського буття єдності онтологічних світоглядних та гносеологічних...
25294. Проблема методології та логіки наукового пізнання в Україні 60-80-х років 32.5 KB
  Проблема методології та логіки наукового пізнання в Україні 6080х років Головною орієнтацією наукового пізнання в цей період було звернення до матеріалізму в природознавстві.Копнін засновник світоглядногносеологічної школи орієнтував свою філософію на розкриття світоглядних методологічних і гносеологічних аспектів розвитку наукового пізнання проблеми діалектичної логіки розвиток діалектики як теорії пізнання діалектичного матеріалізму зясування взаємозвязку філософії з іншими науками обґрунтування творчої активності субєкта...
25295. Діалектичний матеріалізм – міф чи реальність 33 KB
  діалектичний матеріалізм міф чи реальність. Діалектичний матеріалізм позначає філософію в офіційній доктрині комуністичних партій але також у деяких її критиків напр. Анрі Лефевр Діалектичний матеріалізм 1940. Подальше застосування терміна належить Леніну Матеріалізм та емпіріокритицизм 1908.
25296. Українська філософська думка за умов постнекласичної науки та постмодерної культури 33.5 KB
  Українська філософська думка за умов постнекласичної науки та постмодерної культури Екологічна парадигма радикально змінює спрямованість сучасного філософськосвітоглядного розмислу. Микола Тарасенко 19391995 присвятив все життя вивченню взаємозвязку природи культури та технології. Вивчення взаємовідношення людини й природи приводить дослідника до роздумів щодо культури яка втілюючись у певних типах особистостей та типах суспільної діяльності задає рівень людяності цього взаємовідношення. В дослідженні Природа технологія культура:...
25297. Основні положення християнського віровчення і культу. Нікейський символ віри, його аналітичний виклад 33.5 KB
  Він для нас людей і для нашого спасіння зійшов з небес і тіло прийняв від Духа Святого і Діви Марії і став людиною. І в Духа Святого Господа Животворящого що від Отця походить що Йому с Отцем і Сином однакове поклоніння і однакова слава належить що говорить через пророків. 8 член Символу віри про віру в Духа Святого. За традицією це ім'я пов'язано з ім'ям святого якому присвячено день коли хрестили немовля.
25298. Філософські дискусії 20-30-х років та їх переломлення в Україні 32 KB
  Філософські дискусії 2030х років та їх переломлення в Україні У 2030х роках починає формуватися марксистськоленінський світогляд. У звязку з цим починається боротьба за утвердження марксистськоленінського природознавства яке розпочавшись з дискусії 30х років завершилося не тільки встановленням повного контролю політичноідеологічної системи над природознавством але й розгромом цілого ряду наукових напрямів фізичним знищенням їх представників. З перших днів утвердження радянської влади на Україні культура освіта наука...
25299. Філософський доробок С.Семковського 93 KB
  Тут він заснував першу в Україні кафедру марксизму і марксознавства яка потім перетворилася на Український інститут марксизму в якому до 1931 р. інституті марксизмуленінізму був створений філсоціолог. марксизму У 1918 р. кафедру марксизму і марксознавства яка потім перетв.