Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа № 9. Программирование алгоритмов циклической структуры c использованием оператора цикла DO

Поиск

9.1 Цель работы: изучение методов алгоритмизации и программирования алгоритмов циклической структуры c использованием оператора цикла DO

Теоретические сведения.

Цикл Do…Loop

Повторяет блок операторов, пока заданное условие является истинным или пока оно не станет истинным.

Имеется четыре варианта синтаксиса этого цикла. В двух первых вариантах условие проверяется в начале цикла:

Do [{ While | Until } условие ]

тело цикла

Loop

В других вариантах условие проверяется в конце цикла:

Do

тело цикла

Loop [{ While | Until } условие]

Здесь условие является числовым или строковым выражением со значениями True или False. Вообще, оно необязательно. Значение Null условия трактуется как False. Тело цикла – это последовательность операторов, которая будет выполняться, пока условие остается истинным, если перед ним стоит ключевое слово While, или пока оно остается ложным – в в варианте цикла с ключевым словом Until. Таким образом, циклы вида While условие эквивалентны циклам вида Until Not условие. Кроме того, в тело цикла может входить оператор Exit Do, выполнение которого сразу прекращает цикл и передает управление оператору, непосредственно следующему за Loop. В случае нескольких вложенных циклов Do…Loop оператор Exit Do завершает лишь самый внутренний цикл, в теле которого он расположен.

 

Пример.

В данном примере реализованы три варианта поиска по образцу с проверкой условия в начале цикла, в конце цикла, и в середине цикла для варианта поиска по образцу с барьером:

Public Sub Loop1()

Const Size = 5

Dim X() As Integer

Dim i As Integer

Dim Found As Boolean

Const pat = 7

‘Инициализация случайными числами в интервале [1-10]

ReDim X(1 To Size)

Randomize

For 1 = 1 To Size

X(i) = Int(11*Rnd)

Next i

‘Поиск по образцу с проверкой в начале цикла

i = 1: Found = False

Do While (i<=Size) And (Not Found)

If X(i) = pat Then

Found = True

Else: i=i+1

End If

Loop

If Found Then

MsgBox “Найден образец!”

Else: MsgBox “Образец не найден!”

End If

‘Поиск по образцу с проверкой в конце цикла

i = 1: Found = False

Do

If X(i) = pat Then

Found = True

Else: i=i+1

End If

Loop Until Found 0r (i=Size+1)

If Found Then

MsgBox “Найден образец!”

Else: MsgBox “Образец не найден!”

 

‘Поиск с барьером

ReDim Preserve X(1 To Size+1)

X(Size+1)=pat

i=1

Do

If X(i) = pat Then Exit Do

i=i+1

Loop

If i=Size+1 Then

MsgBox “Образец не найден!”

Else: MsgBox “ Образец найден!”

End If

End Sub

Задание к работе.

 

Вычислить таблицу значений функции для значений х в интервале от хн до хк с шагом ∆х. c использованием оператора цикла DO. Варианты заданий приведены в таблице 9.1. организовать вывод значения аргумента и вычисленного значения функции в виде таблицы.

 

Таблица 9.1. Таблица функции у(х).

 

Варианты задания Расчетные формулы Исходные данные
а b хн хк ∆х
  y=arctg bx/(1+sin2x) - 0,75 1,35 6,5 0,8
  19,6 7,6 14,6 34,8  
  1,38 -1,26      
  - 1,68 1,2 2,4 0,2
  0,36 5,5      
  0,9 1,85   1,2 0,15
  1,24 0,67 10,2 12,4 0,45
  2,8 0,45     4,5
  20,2 7,65 3,5   0,1
  4,6 2,5 0,75 1,8 0,3
  0,55 0,78 4,2 5,8 0,25
  7,83 0,3     0,35
  0,28 1,35 1,2 7,5 0,5
  0,9 0,66 2,3 8,9 1,3
  0,85 - 17,2 24,6  
  1,16 - 0,25 1,28 0,33
  0,4 10,8 0,84 1,25 0,15
  1,28 0,03 12,6 34,9 7,6
  0,25 0,68 11,6 15,8 0,6
  1,6 1,24 0,2 1,4 0,35
  1,8 0,34 6,44 9,1 0,25
  0,44 2,28 6,5 7,3 0,12
  3,2 0,45 0,6 1,5 0,2
  17,5 10,45 1,9 3,8 0,3
  8,24 - 14,9 24,8 1,5

 

9.4 Методика выполнения задания

 

Заранее, до выполнения лабораторной работы)

 

1. Изучить возможности языка программирования для реализации:

- вычислительных процессов циклической структуры с известным числом повторений в цикле;

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

2. Разработать алгоритм табулирования функции.

3. Составить программу табулирования функции.

4. Выполнить на ПЭВМ разработанную программу.

 

9.5 Пример выполнения задания

Необходимо вычислить при изменении х в промежутке от хн=0,6 до хк=0,92 с шагом ∆х=0,05 при а=2.

Блок 3 – блок модификации. Вначале х присваивается х=хн, вычисляется у(хн), выводится х=0,6 и у(0,6), затем возврат к блоку 3, х присваивается значение х=х+∆х, т.е. х=0,6+0,05=0,65 и вычисляется у(0,65), и т.д., до тех пор пока х не превысит хк.

 

Схема алгоритма

 
 

 

 


Sub Tabul()

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

A=Val(IприtBox(“ВводА”))

XN=Val(IприtBox(“ВводXN”))

XK=Val(IприtBox(“ВводXK”))

DX=Val(IприtBox(“ВводDX”))

MsgBox “A=” & Str(A) & “XN=” & Str(XN)

MsgBox “XK=” & Str(XK) & “DX=” & Str(DX)

For X=XN To XK Step DX

Y1=EXP(A*X)

Y=(Y1+A^X)/SQR(1+Y1)

MsgBox “X=” & Str(X) & “ Y=” & Str(Y)

Next X

End Sub

 

Содержание отчета.

Цель работы.

Краткие теоретические сведения.

Задание к работе

Схема алгоритма

Текст процедуры на VBA с пояснениями.

Анализ результатов. Выводы.

 

Библиографический список

1. Р.Персон. Microsoft Exсel 97 в подлиннике: В 2т. – BHV – Санкт-Петербург. 1998. Том 2 – 640с.

2. Васильев А., Андреев А. VBA в Office 2000: учебный курс. – СПб.: Питер, 2001. – 432 с.: ил.



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 460; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.98.29 (0.008 с.)