Практикум
.pdfЗадание 6.5.
Разработать модули для перевода числа из десятичной системы счисления в систему счисления с основанием p (2 ≤ p ≤ 16) и наоборот.
Число в десятичной системе счисления должно хранится в виде числа, в системе счисления с основанием p – в виде строки.
При переводе числа из системы счисления с основанием p проверять корректность исходных данных.
Пример такого перевода приведен ниже.
|
A |
B |
|
|
|
|
|
|
|
1 |
Число |
145 |
|
|
2 |
Основание СС |
2 |
|
Перевести |
3 |
Число в СС р |
10010001 |
|
|
4 |
|
|
|
|
5 |
Число в СС р |
10010001 |
|
|
6 |
Основание СС |
2 |
|
Перевести |
7 |
Число |
145 |
|
|
На рабочем листе разместить две кнопки для вызова модулей.
PDF created with pdfFactory Pro trial version www.pdffactory.com
Задание 6.6.
Табулирование функции и построение ее графика.
Разработать модули, которые на основании информации, находящейся на рабочем листе, вычисляют таблицу значений функции и строят ее график. График функции должен размещаться на отдельном листе диаграмм.
Перед обращением к функции в ячейках рабочего листа находится следующая информация:
B1 значение параметра a;
B2 значение параметра b;
B3 значение параметра n (n<=100);
B4 формула (текст), записанная по правилам Excel, в которой вместо независимой переменной x находится символ &.
Функция должна быть вычислена на отрезке [a,b] в узлах сетки:
xi=a+i*h, |
i= 0, 1, … , n, |
где h=(b-a)/n.
На рабочем листе разместить кнопки «Вычислить» и «График», которые вызывают соответствующие модули.
Перед началом своей работы модули должны удалять «старые» расчетные данные и диаграмму (если она уже была построена ранее).
PDF created with pdfFactory Pro trial version www.pdffactory.com
Задание 6.7. Решение уравнений
Разработать модули для приближенного решения уравнения f(x)=0 итерационными методами дихотомии и Ньютона.
Метод дихотомии. Пусть задана функция, отрезок [a;b], на концах которого функция принимает значения разного знака и ε – точность, с которой необходимо найти корень.
Описание метода приведено в задании 2.20.
Итерационная процедура продолжается, пока ∆ не станет меньше, чем заданная величина ε. В качестве корня выбирается значение с. Подсчитать и вывести n – количество выполненных итераций.
Перед началом итерационной процедуры выполнить проверку на выполнение условия f(a)*f(b) < 0. В случае невыполнения этого условия вывести соответствующее сообщение в окне диалога.
Метод Ньютона. Пусть задано уравнение f(x)=0, начальное приближение корня x0 и ε – точность, с которой необходимо найти корень. На каждом итерационном шаге вычисляется новое приближение xi+1 по формуле, которая приведена в задании 2.20.
Итерационная процедура продолжается, пока не будет выполнено условие: |xi+1- xi| ≤∆ . Подсчитать и вывести n – количество выполненных итераций.
Вариант 1. Функция задается функцией VBA. Недостаток такого метода: для изменения функции требуется редактировать программный модуль.
Вариант 2. Функция задается строкой, в которой записана формула по правилам Excel с знаком & вместо независимой переменной x.
PDF created with pdfFactory Pro trial version www.pdffactory.com
Пример таблицы, которую надо построить приведен ниже. На рабочем листе разместить две кнопки для вызова модулей.
|
A |
B |
1 |
f(&)= |
&^2+sin(&)-0,5 |
2 |
a= |
0 |
3 |
b= |
2 |
4 |
ε= |
0,00001 |
5 |
x= |
? |
6 |
n= |
? |
Уравнение, границы отрезка и начальное приближение получить у преподавателя.
Сравнить работу этих двух методов по количеству итераций и значениям функции в найденных точках.
Задание 6.8. Численное интегрирование
Разработать модули для численного интегрирования методом трапеций и методом Симпсона.
Постановка задачи. Пусть требуется вычислить определенный интеграл:
b
S = ò f (x) dx , где функция f (x) непрерывна на отрезке [a;b].
a
Методы трапеций и Симпсона приближенного вычисления определенного интеграла (численного интегрирования) основываются на разбиении интервала [a;b] на n достаточно малых отрезков и замене на каждом из них интеграла на его приближенное значение.
Обозначим через xi точки, полученные на отрезке [a;b] после его разбиения на n равных частей:
xi=a+i*h, |
fi = f(xi), |
i=0,1,…,n, |
h=(b-a)/n. |
Метод |
трапеций. Заменим функцию на отрезке [xi;xi+1] |
||
многочленом |
первой степени. |
Окончательная |
формула численного |
интегрирования имеет вид:
SТ = h*(f0/2 + f1 + f2 +…+ fn-1 + fn/2).
PDF created with pdfFactory Pro trial version www.pdffactory.com
Метод Симпсона. В методе Симпсона n выбирают четным. Функция на отрезке [xi-1;xi+1] (i = 1,2,…n-1) заменяется трапецией. Формула численного интегрирования методом Симпсона имеет вид:
SС = h*(f0 + 4*f1 + 2*f2 + 4*f3 +…+ 2*fn-2 + 4*fn-1 + fn)/3.
Перед началом вычисления интеграла необходимо выполнить проверку на четность n. В случае невыполнения этого условия вывести соответствующее сообщение в окне диалога.
Вариант 1. Функция задается функцией VBA. Недостаток такого метода: для изменения функции требуется редактировать программный модуль.
Вариант 2. Функция задается строкой, в которой записана формула по правилам Excel с знаком & вместо независимой переменной x.
Пример таблицы, которую надо построить приведен ниже. На рабочем листе разместить две кнопки для вызова модулей.
|
A |
B |
|
1 |
f(&)= |
&^2+sin(&)-0,5 |
|
2 |
a= |
0 |
|
3 |
b= |
2 |
|
4 |
n= |
10 |
20 |
5 |
ST= |
? |
? |
6 |
SC= |
? |
? |
7 |
∆= |
? |
? |
Уравнение и границы отрезка получить у преподавателя.
Сравнить работу этих двух методов по отклонению ∆ от точного значения интеграла.
PDF created with pdfFactory Pro trial version www.pdffactory.com
Задание 6.9.
Разработать приложение, позволяющее средствами диалогового окна (формы) заполнять в MS Excel «базу данных» регистрации клиентов гостиницы.
Дата |
|
Фамилия |
Пол |
Номер |
Завтрак |
Дней |
Сумма |
|
2.05.04 |
|
Иванов |
М |
одноместный |
нет |
10 |
|
|
11.05.04 |
|
Петрова |
Ж |
двухместный |
да |
14 |
|
|
В форме заполняется: |
|
|
|
|
||||
Дата |
|
– по умолчанию текущая дата |
|
|
||||
Фамилия |
– вводится в поле ввода |
|
|
|
||||
Пол |
|
– переключатель |
|
|
|
|||
Номер |
– поле со списком (люкс, одноместный двухместный); |
|||||||
Завтрак |
– флажок |
|
|
|
|
|||
Дней |
|
– счетчик |
|
|
|
|
Показатель «Сумма» должен рассчитываться исходя из:
–количества дней;
–категории номера:
люкс |
– 60$ за день, |
одноместный |
– 40$ за день, |
двухместный |
– 20$ за день; |
– предоставление завтраков – 2$ в день.
Форма должна содержать кнопки
"ОК" (эквивалентная клавиша Enter), "Отмена" (эквивалентная клавиша Esc).
PDF created with pdfFactory Pro trial version www.pdffactory.com
Задание 6.10.
Модифицировать Задание 6.9 следующим образом.
В форме должно быть поле, в котором отображается итоговая сумма. При изменении любых значений она должна модифицироваться.
Форма должна предоставлять возможность просмотра (кнопки "Вперед", "Назад") и изменения уже имеющихся записей в базе данных (в том числе, удаление записей).
Задание 6.11.
Модифицировать Задание 6.10, добавив функцию поиска клиента по первым введенным символам его фамилии. Добавить функцию фильтрации записей (отображения в форме) по типу номера (люкс, одноместный двухместный). На форме должны находиться кнопки «Установить фильтр» и «Снять фильтр».
PDF created with pdfFactory Pro trial version www.pdffactory.com