Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_4.doc
Скачиваний:
8
Добавлен:
27.03.2015
Размер:
1 Mб
Скачать

6. Программирование повторений

Задание

Найдите значения функции у=sin(x) на интервале [a;b].

Важными конструкциями в языке Visual Basic является циклы. Именно они обеспечивают один из способов обработки информации.

  • Повторение – это многократное выполнение одного или нескольких предписаний алгоритма.

  • Цикл – это оператор языка программирования, с помощью которого это повторение будет выполнять компьютер – исполнитель алгоритма.

Цикл с использованием конструкции For...Next . Конструкция For...Next выполняет последовательность команд определенное число раз. Такую конструкцию называют циклом, а выполняемые ею программные коды — телом цикла.

Синтаксис конструкции For.. .Next следующий:

For счетчик = начЗначение То конЗначение [Step шаг]

Конструкции

[Exit For]

[инструкции]

Next [счетчик]

Первый аргумент конструкции — счетчик — определяет имя переменной, которая будет "считать" количество выполнении цикла. Параметр начЗначение указывает числовое значение, которое присваивается переменной-счетчику перед первым проходом цикла. Цикл выполняется до тех пор, пока значение счетчика не превысит конечного значения, указанного после ключевого слова То.

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

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

Циклы Do While

Оператор Do While — еще один тип циклической структуры, представленной в VB. В отличие от цикла For-Next, цикл Do while выполняется до тех пор, пока удовлетворяется заданное условие. Цикл Do While может иметь один из двух представленных ниже синтаксисов:

Do While условие

инструкции

[Exit Do]

[инструкции]

Loop

или

Do

инструкции

[Exit Do]

[инструкции]

Loop While условие

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

Это цикл работает пока значение условия равно Истина

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

VB позволяет проверять условие While в начале или в конце цикла. Разница между этими двумя синтаксисами связана с моментом, когда оценивается условие. В первом синтаксисе содержимое цикла может вообще не выполнятся. Во втором содержимое цикла всегда выполняется (как минимум один раз).

Циклы Do Until

Do Until условие

конструкции

[Exit Do]

[инструкции]

Loop

или

Do

конструкции

[Exit Do]

[инструкции]

Loop Until условие

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

Это цикл работает пока значение условия равно Ложь

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

Существуют определённые правила выбора типа цикла:

  1. Если вам известно заранее число повторений тела цикла, лучше всего использовать оператор цикла For;

  2. Если вам заранее не известно число повторений тела цикла и если окончание цикла зависит от выполнения некоторого условия, лучше использовать конструкции Do WhileLoop или Do UntilLoop.

  3. Если необходимо, чтобы цикл всегда выполнялся хотя бы один раз, то используйте конструкции DoWhile Loop или DoUntil Loop.

Составим блок-схему для нашей задачи:

Разработайте пользовательский интерфейс, расположив на форме следующие объекты управления: Label (Метка), TextBox (Текстовое поле), CommandButton (Командная кнопка), ListBox (Список).

В окне Properties (Свойства) для каждого объекта управления установить свойства, приведённые в табл.4.

Таблица 4

Элемент управления

Свойства

Значения

UserForm

Caption

Программирование повторений

Label1

Caption

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

Label2

Caption

а=

Label3

Caption

b=

Label4

Caption

Значение функции

TextBox1

Name

txtA

TextBox2

Name

txtB

TextBox3

Name

txtSin

CommadButton1

Name

cmdSinus

Caption

Пуск

CommadButton2

Name

cmdClear

Caption

Очистка

Примерный интерфейс программы может выглядеть так:

Код программы:

Private Sub cmdSinus­_Click()

а!=Val(txtA)

b!=Val(txtB)

For i%=a To b

y!=Sin(i)

txtSin = txtSin +”x=” + Str(i)+ “, y=”+Str(y) + vbCrlf

Next i

End Sub

Private Sub cmdCleaR_Click()

txtA = ""

txtB = ""

txtSin = ""

End Sub

Сделайте расчёты для разных а и b. Внимание a<b!!!

Добавьте в код программы строку в которой бы шла проверка на сравнение а и b. И если a>b, то программа завершает работу, либо в текстовое поле помещается предупреждающая надпись.

Для вывода информации на форму можно воспользоваться объектом ListBox (Список). Он позволяет выводить значения табулируемых функций, списков, массивов.

Свойства объекта Список

Свойство

Описание

ListIndex

Возвращает номер выбранного элемента списка. Нумерация элементов списка начинается с нуля

ListCount

Возвращает число элементов списка

TopIndex

Возвращает элемент списка с наибольшим номером

ColumCount

Устанавливает число столбцов в списке

List

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

Синтаксис:

List(строка, столбец)

Text

Возвращает выбранный в списке элемент

Методы

Метод

Описание

Clear

Удаляет все элементы списка

AddItem

Добавляет элемент в список

RemoveItem

Удаляет заданный элемент

  • Удалите текстовое поле с именем «txtSin»

  • На место удалённого объекта вставьте ListBox (Список) и именем «lstSin» (обратите внимание, впереди стоит латинская буква «L» малая, а не «1 (единица)»)

  • Удалите следующую строку «txtSin = txtSin +”x=” + Str(i)+ “, y=”+Str(y) + vbCrlf»

  • На место удалённой строки в коде программы вставьте следующую запись:

lstSin.AddItem ”x=” + Str(i)+ “, y=”+Str(y)

Посмотрите, как работает программа

Напишите программу для табуляции функции у = Cos(x)

Сохраните файл под именем «Табуляция функции»