Решение. Этап 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(Процедура) ® в
Набирать процедуру на месте курсора: 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. Выполнение
Этап 6. Переименование листа Навести курсор на закладку Лист1, правой клавишей мыши (ПКМ) вызвать контекстное меню, выбрать пункт Переименовать, удалить старое название листа и с клавиатуры набрать новое Eps2, нажать Enter.
Задачи для самостоятельной работы Задача 12. Текущее среднее. Числа x1, x2, … последовательно поступают с устройства ввода. Все числа хранить в памяти нет необходимости; после ввода каждого числа нужно вычислить и напечатать среднее значение всех введенных чисел:
Задача 13. Для заданных a и p вычислить
Задача 14. Проверить численно справедливость следующего разложения:
Задача 15. Для заданных значений n и x вычислить выражение: Лабораторная работа № ПР6 «Работа со строковыми переменными» Цель работы: научиться работать со строковыми переменными типа String. Теоретические сведения Строковые переменные
Функции преобразования типов
Функции обработки строк
Пример. Функция Mid(«Иван Николаевич», 6, 3) Возвращает «Ник». Пример. Функции Chr(13) и Chr(10). 13 и 10 – это коды ASCII особых, невидимых символов, которые используются при выдаче или печати текста, – символа перехода на новую строку и символа возврата на левую сторону страницы (иначе, символ переноса и символ возврата каретки).
Задача 16 (работа со строковыми переменными). Написать программу, которая считает количество точек в строке. Строка вводится из ячейки MS Excel, код ASCII вводится с клавиатуры.
|