Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_Metod_2009_VVYeD.doc
Скачиваний:
6
Добавлен:
06.12.2018
Размер:
1.14 Mб
Скачать

Пример 3

'Имя файла: Fib.vbs

'Задача: При помощи рекурсивной функции найти и вывести на экран

' к-й элемент последовательности Фибоначчи. Последовательность Фибоначчи:

' 1, 1, 2, 3, 5, 8, 13, ... Нумерация данных чисел начинается с 0.

'-----------------------------------------

FUNCTION Fib(k)

If k=0 or k=1 Then

Fib=1

Else

Fib=fib(k-1)+Fib(k-2)

End If End FUNCTION

'-----------------------------------------

dim k

k=Cint(InputBox("Введите k: ", "Вычисление к-го элемента посл-ти Фибоначчи: "))

MsgBox k&"-й"&" элемент последовательности фибоначчи: "&_

vbCrlf& Fib(k), vbInformation, "Результат: "

Пример 4

'Имя файла Koren.vbs

'Задача:'Вычислить, используя рекурсию: 'sqr(1+(n+1)*sgr(1+(n+2)*sqr(1+(n+3)*sqr(1+...

' где n - натуральное число,

' k - количество корней

'--------------------------------------

FUNCTION Kor(i, n)

If i=k Then

Kor=sqr(1+(n+k))

Else

Kor=sqr(1+(n+i)*Kor(i+1,n))

End If

End FUNCTION

'---------------------------------------

Dim n,k,i

n=CInt(InputBox("Введите натуральное число n: ", "Ввод параметров:","1"))

k=CInt(InputBox("Введите количество корней k: ", "Ввод параметров:","1"))

i=1

MsgBox "Значение вычисленного корня: "&CStr(Kor(i,n)), vbInformation, "Результат: "

5.4 Задачи для самостоятельного решения

  1. Дано натуральное число n. Вычислите (2n)! и 2n!; при этом используйте рекурсивную функцию вычисления факториала.

  2. Переделайте программу Fib.vbs, так чтобы она находила к-й член последовательности Фибоначчи, но последовательность начиналась бы не с 1, а с 0:

0, 1, 1, 2, 3, 5, 8, 13, 21, ...

  1. Проверьте, будет ли к-й член последовательности Фибоначчи делиться на 5.

  2. Опишите рекурсивную функцию Stepen(x,n), формальными параметрами которой являются вещественная переменная x и натуральная переменная n, вычисляющую величину xn следующим образом:

  1. Напишите рекурсивную процедуру, при выполнении которой на экран будет выводиться отрезок натурального ряда чисел.

  2. Напишите программу вычисления первого числа Фибоначчи, большего m (m>1), включающую рекурсивную функцию, которая основана на непосредственном использовании соотношения un=un-1+un-2.

  3. Числа Фибоначчи второго порядка u0, u1, u2,... определяются следующим образом:

Напишите программу вычисления un  для данного неотрицательного целого n. Используйте рекурсивную функцию.

  1. Вычислите, используя рекурсию:

  1. Опишите семантику приведённой ниже программы:

Function koren(i)

If i=0 Then

koren=sqr(11)

Else

koren=sqr(11-2*sqr(11+2*sqr(11-2*koren(i-1))))

End If

End Function

Dim n,k,i

i=CInt(InputBox("Введите количество рекурсий", "Ввод параметров","1"))

msgbox "Результат: "&koren(i)

Лабораторная работа 6. Массивы

6.1 Цель работы

Познакомиться с понятиями "массивы", закрепить практические навыки работы с одномерными и многомерными массивами

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

Массив - это упорядоченный набор элементов. Массивы можно создавать из элементов любого типа (в отличие от многих других императивных языков программирования), и они могут иметь одно или несколько измерений.

Одномерный массив принято называть вектором, а двухмерный - матрицей.

Одномерный массив - это последовательность элементов любых типов. Каждому элементу массива соответствует индекс - целое неотрицательное число, определяющее его номер в последовательности. Первому элементу массива соответствует индекс 0. Во многих языках программирования элементы массива размещаются в памяти последовательно (другими словами, друг за другом).

Таблица 10 – Одномерный массив

0-й

Элемент

1-й

элемент

2-й

элемент

3-й

элемент

4-й

элемент

5-й

элемент

6-й

элемент

7-й

элемент

19,3

309,01

12,13

0,09

12,8

14

89,1

65

Данные, хранящиеся в таблице 10 олицетворяют собой одномерный массив, состоящий из 8-ми элементов.

Объявление одномерного массива имеет вид:

Dim NameArray1 (N)

где: 1) Dim - служебное слово (объявление переменной);

2) NameArray1 - имя переменной массива;

3) N – индекс последнего элемента в данном массиве

Зная все элементы одномерного массива, то его можно объявить и другим образом:

NameArray2=Array (Num1, Num2,…, NumN)

где: 1) NameArray2 - имя массива ;

2) Array – название функции языка VBS;

3) Num1 – 0-й элемент одномерного массива

Num2 – 1-й элемент одномерного массива

NumN – N-й элемент одномерного массива

Для доступа к данным, хранящимся в определённом элементе одномерного массива, следует указать имя массива и индекс элемента массива. Индекс всегда заключается в круглые скобки. Например, если вектор имеет имя Arr, то следующий оператор присваивает переменной x значение i-го элемента вектора Arr:

x=Arr(i), где i – индекс нужного элемента одномерного массива Arr

Пример:

Задача: расположить в памяти компьютера одномерный массив, состоящий из 7-ми элементов, каждый из которых соответствует соответственно дню недели:

“Понедельник” , “Вторник”, “Среда”, “Четверг”, “Пятница”, “Суббота”, “Воскресенье”

Программа:

1-й способ:

2-й способ:

Dim Arr1 (6)

Arr1(0)= “Понедельник”

Arr1(1)= “Вторник”

Arr1(2)= “Среда”

Arr1(3)= “Четверг”

Arr1(4)= “Пятница”

Arr1(5)= “Суббота”

Arr1(6)= “Воскресенье”

Dim Arr2

Arr2=Array(“Понедельник” ,_

“Вторник”, “Среда”,_

“Четверг”, “Пятница”,_

“Суббота”,_

“Воскресенье”)

Замечание: Нумерация элементов в массиве (не только одномерном, но и в многомерном) начинается с 0, поэтому не стоит забывать, что i-тый элемент массива на самом деле по счёту является (i+1)-ым.

Примечание: Для получения имен дней недели лучше использовать функцию WeekDayName(i), которая возвращает название дня недели в соответствии с целочисленным параметром i. См. пример: 1Weekdays.vbs.

Например: WeekDayName(1)=Воскресенье

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]