Решение. Этап 1. Математическая часть
Этап 1. Математическая часть Дано: Eps – точность. Условие остановки выражение: 2n/n!< e. Найти: n – число шагов, u – результат возведения в степень. Мы можем запрограммировать возведение в степень и вычисление факториала,
u = 1 'первый множитель n = 0 'количество шагов Range("C1:E20").Clear Do Until (u < Eps) Or (n >= Limit) n = n + 1 q = 1 For i = 1 To n q = q * i Next i u = 2 ^ n / q 'очередной множитель Cells(n, 4).Value = n Cells(n, 5).Value = u Loop
но при таких вычислениях может быстро накапливаться ошибка и мы можем получить не верный результат. Обратим внимание, что u1=2\1/1!, u2=2\2/2!=2*2/(1*2)= u1*21/2, u3=2\3/3!=22*2/(1*2*3)= и2*2/3 и т.д, т.е. у нас возникает множитель 2/n, умноженный на значение предыдущего шага. Нам необходимо учесть, что число шагов может быть невообразимо много, поэтому мы введет константу для ограничения шагов Limit = 100. (!) Самостоятельно разработать алгоритм на естественном языке и составить блок-схему. Этап 2. Ввод данных в таблицу Excel В ячейку А1 вводится “Eps =”, В ячейку B1 – значение числа Eps. Этап 3. Определение переменных Константа Limit = 100 (тип Integer) Вводятся: Eps (тип Single). Промежуточные переменные: (счетчик цикла) u1 (тип Single) – значение на предыдущем шаге. Выводятся (результат): u (тип Single) – результат возведения в степень, n (тип Integ) – количество шагов. Этап 4. Написание процедуры На рабочем листе Лист1 при помощи Элементов управления создать элемент Кнопка (СommandBatton1). Навести курсор мыши на Кнопку в режиме конструктора (на панели Элементы управления нажата первая кнопка (линейка с треугольником)). Вызвать контекстное меню ПКМ Выбрать пункт Свойства ® закладку Alpabetic, в списке свойств выбрать Caption, справа в поле ввода удалить старое название и ввести новое название кнопки 2n/n < Eps. Навести курсор на Кнопку в режиме конструктора. Вызвать контекстное меню ПКМ. Выбрать пункт Исходный текст. Автоматически попадаем в режим редактора VBA и появляется заголовок Процедуры-События:
Private Sub CommandButton1_Click() Степень_двух End Sub
Для создания новой процедуры (функции) необходимо набрать выполнить команду меню редактора VBA: Insert(Вставка)\Procedure(Процедура) ® в открывшемся диалоговом окне рис.3 Add Procedure (Вставка процедуры) ® установить переключатель Sub(Подпрограмма) ® В окне Name(Имя) ® ”Степень_двух” ® OK. После выполнения этих действий в окне модуля появится заготовка подпрограммы (функции) (заголовок и окончание), между которыми нужно поместить код тела подпрограммы (функции).
Набирать процедуру на месте курсора: Public Sub Степень_двух() 'Описание констант Const Limit As Integer = 100 'Описание переменных Dim Eps As Single Dim u As Single Dim u1 As Single Dim n As Integer 'Ввод переменных Eps = Range("b1").Value 'Задание начальных значений u = 1 'первый множитель n = 0 'количество шагов Range("C1:E20").Clear 'Вычисление значений Do Until (u < Eps) Or (n >= Limit) Cells(n, 4).Value = n u1 = u u = u1 * 2 / n 'очередной множитель n = n + 1 Cells(n - 1, 5).Value = u Loop
'Вывод результатов Range("A6:A7").Clear If n >= Limit Then Range("A7").Value = n & " шагов не хватило для достижния точночти." End If End Sub
Этап 5. Выполнение Перейти на рабочий лист (View®Microsoft Excel или Alt+F11). Выйти из режима Конструктора, левой клавишей мыши (ЛКМ) нажать Кнопку. В ячейках D1:E6 появится результат. Этап 6. Переименование листа Навести курсор на закладку Лист1, правой клавишей мыши (ПКМ) вызвать контекстное меню, выбрать пункт Переименовать, удалить старое название листа и с клавиатуры набрать новое Eps2, нажать Enter.
Задачи для самостоятельной работы Задача 12. Текущее среднее. Числа x1, x2, … последовательно поступают с устройства ввода. Все числа хранить в памяти нет необходимости; после ввода каждого числа нужно вычислить и напечатать среднее значение всех введенных чисел: .
Задача 13. Для заданных a и p вычислить по рекуррентному соотношению Ньютона:
Задача 14. Проверить численно справедливость следующего разложения: и оценить скорость сходимости, найдя число слагаемых, необходимое для достижения заданной погрешности e. Примечение. Нам необходимо учесть, что число, возведенное в степень 0, равно 1, т.е. 20=1, и факториал 0!=1.
Задача 15. Для заданных значений n и x вычислить выражение: . Лабораторная работа № ПР6 «Работа со строковыми переменными» Цель работы: научиться работать со строковыми переменными типа String. Теоретические сведения Строковые переменные
Функции преобразования типов
Функции обработки строк
Пример. Функция Mid(«Иван Николаевич», 6, 3) Возвращает «Ник». Пример. Функции Chr(13) и Chr(10). 13 и 10 – это коды ASCII особых, невидимых символов, которые используются при выдаче или печати текста, – символа перехода на новую строку и символа возврата на левую сторону страницы (иначе, символ переноса и символ возврата каретки).
Задача 16 (работа со строковыми переменными). Написать программу, которая считает количество точек в строке. Строка вводится из ячейки MS Excel, код ASCII вводится с клавиатуры.
|