ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Нижегородский государственный университет им. Н.И.Лобачевского М.В. Маркина, В.В. Денисов, О.Г. Савихин Практические задания по созданию пользовательских приложений с помощью VBA Учебно-методическое пособие Рекомендовано методической комиссией механико-математического факультета для студентов высших учебных заведений, обучающихся по направлению подготовки 080116 «Математические методы в экономике» НИЖНИЙ НОВГОРОД 2010 Задание 1 Тема: Создание приложений с помощью MacroRecorder MacroRecorder – транслятор, создающий программу (макрос) на языке VBA, которая является результатом перевода на язык VBA действий пользователя с момента запуска MacroRecorder до окончания записи макроса. Макрос может быть создан в абсолютных и относительных ссылках. Абсолютная ссылка – указывает на ячейку или группу ячеек, безотносительно к активной ячейке электронной таблицы. Относительная ссылка – указывает на ячейку или группу ячеек, исходя из текущего выбора активной ячейки электронной таблицы. Запустить созданный макрос на выполнение можно следующими способами: 1) с помощью команд меню (Сервис/ Макрос/ Макросы, выбрать из списка имя нужного макроса, Выполнить); 2) с помощью нажатия комбинации клавиш клавиатуры, указанной при создании макроса; 3) с помощью назначения макроса кнопке на панели инструментов (Вид/ Панели инструментов/ Настройка, закладка Команды, выбрать вид кнопки из списка Макросы, перетащить мышью ее на панель инструментов, выполнить команду “Изменить выделенный объект/ Назначить макрос”; 4) с помощью назначения кнопки в поле рабочего листа (Вид/ Панель инструментов/ Формы, мышью перетащить кнопку из появившейся панели в поле рабочего листа, назначить макрос); 5) с помощью вставки новой строки в существующее меню (Вид/ Панели инструментов/ Настройка, закладка Команды, выбрать строку из списка Новое меню, мышью перетащить ее в строку основного меню, выполнить команду Изменить выделенный объект/ Назначить макрос). Варианты задания 1 Вариант 1 Создать макрос, строящий шаблон таблицы ежемесячных расходов по некоторым фиксированным стать- 2 ям расходов (например, питание, коммунальные платежи, транспорт и др.). При запуске макроса должен появляться шаблон таблицы с названиями всех строк и столбцов, а после заполнения таблицы числами, автоматически должна строиться вертикальная столбцовая диаграмма для наглядного представления доли каждой статьи расходов. Вариант 2 Создать макрос, строящий шаблон таблицы соответствия значений аргумента x некоторой функции одной переменной f(x). Область изменения аргумента x, а также шаг разбиения этой области задаются числами, помещенными в некоторые ячейки. Макрос должен по таблице строить график зависимости f(x). Вариант 3 Создать макрос, строящий шаблон таблицы соответствия значений аргументов x и y некоторой функции двух переменных f(x,y). Область изменения аргументов x,y, а также шаги разбиения этих областей задаются числами, помещенными в некоторые ячейки. Макрос должен по таблице строить график зависимости f(x,y). Вариант 4 Создать макрос, строящий шаблон таблицы рейтинга некоторых известных политиков. При запуске макроса должен появляться шаблон таблицы с названиями всех строк и столбцов, а после заполнения таблицы числами (рейтингами), автоматически должна строиться горизонтальная столбцовая диаграмма для наглядного представления соотношения рейтингов. Вариант 5 Создать макрос, строящий шаблон таблицы соответствия между факультетами университета и количеством заявлений, поданных на этот факультет. При запуске макроса должен появляться шаблон таблицы с названиями всех строк и столбцов, а после заполнения таблицы числами, автоматически должна строиться круговая диаграмма для наглядного представления соотношения количества абитуриентов каждого факультета. Вариант 6 3 Создать макрос, строящий шаблон таблицы заработной платы сотрудников за несколько месяцев работы в некоторой фирме. При запуске макроса должен появляться шаблон таблицы с названиями строк и столбцов, а после заполнения таблицы числами автоматически должна строиться диаграмма (График объемный вариант) для наглядного представления соотношения зарплаты . Вариант 7 Создать макрос, строящий шаблон таблицы соответствия члена знакопеременного числового ряда от его порядкового номера (Числовой ряд должен содержать факториал). Макрос должен по таблице строить диаграмму зависимости an от n. Вариант 8 Создать макрос, строящий шаблон таблицы соответствия суммы членов функционального ряда от их количества и от значения аргумента Значение аргумента x задается числом, помещенными в некоторую ячейку. Макрос должен по таблице строить диаграмму зависимости an от (n, x). Дополнительные задание для всех вариантов. Отредактировать записанный макрос: 1. Переименовать полученную диаграмму, вставив в макрос вручную две строчки: k = ActiveSheet.Shapes.Count ‘ Свойство Count объекта Shapes ‘ дает количество диаграмм на ‘ активном листе. ActiveSheet.Shapes(k).Name = "MyDiagr" ‘Свойство Name определяет имя ‘ объекта Shapes с порядковым ‘ номером k. 2. Переименовать все обращения к диаграмме (если такие существуют) в макросе в соответствии с новым присвоенным ей именем. Создать второй макрос, который очищает результаты работы первого. 4 Задание 2 Тема: Создание пользовательских функций. VBA предоставляет возможность пользователю создавать собственные функции, работать с которыми на рабочем листе можно при помощи мастера функций точно так же, как и с любой встроенной функцией. Для создания такой функции необходимо воспользоваться командами Excel Сервис/ Макрос/ Редактор Visual Basic и командами редактора Вставка/ Модуль. Программа на VBA должна быть оформлена в виде подпрограммы Function. Вызов собственной пользовательской функции осуществляется командами Вставка/ Функция, а затем выбором категории Функции определенные пользователем. Варианты задания 2 Вариант 1 Найти наименьшее общее кратное двух натуральных чисел. Вариант 2 Найти наибольший общий делитель двух натуральных чисел. Вариант 3 Определить количество цифр в натуральном числе. Вариант 4 Найти сумму цифр натурального числа. Вариант 5 Перевести заданное в двоичной системе счисление число в восьмиричную систему . Вариант 6 Даны три числа. Определить, можно ли построить треугольник с длинами сторон равными этим числам. Вариант 7 Для произвольных коэффициентов квадратного уравнения определить количество корней этого уравнения 5 Вариант 8 Определить, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр. Вариант 9 Определить, есть ли среди цифр заданного пятизначного числа одинаковые. Вариант 10 Перевести произвольное десятичное целое число в в двоичную систему. Задание 3 Тема: Работа со встроенными диалоговыми окнами. Функции обработки строк В проектах VBA часто встречаются две разновидности диалоговых окон: окна сообщений и окна ввода. Они встроены в VBA, и если их возможностей достаточно, то можно обойтись без проектирования диалоговых окон. Окно сообщений (MsgBox) выводит простейшие сообщения для пользователя, а окно ввода (InputBox) обеспечивает ввод информации. Функции обработки строк 1. Asc – возвращает ASC|| - код начальной буквы строки. Asc (строка) Если строка пустая, то возникает ошибка выполнения. 2. Chr – преобразует ASC|| код в строку. Chr (код) 3. Lcase – преобразует все буквы строки в строчные. Lcase (строка) 4. Ucase – преобразует все буквы в заглавные. Ucase (строка) 5. Left – возвращает подстроку, состоящую из заданного числа первых символов исходной строки. Left (строка, длина) 6 6. Right – возвращает строку, состоящую из заданного числа последовательных символов исходной строки. Left (строка, длина) 7. Mid – возвращает указанную часть строки Mid (строка, стартовая позиция [, длина]) Если 3 параметр не указан, то возвращаются все символы от стартовой позиции до конца строки. 8. Len – возвращает длину строки. Len (строка) 9. LTrim – возвращает копию строки без пробелов в начале. Ltrim – (строка) 10. RTrim – удаляет пробелы в конце. 11. Trim – удаляет пробелы как в начале, так и в конце. 12. Space – создаёт строку, состоящую из указанного числа пробелов. Space (число) 13. String - создаёт строку, состоящую из указанного числа повторений одного и того же символа. String (количество, символ) 14. StrComp – сравнивает 2 строки StrComp (строка1, строка2, способ сравнения) 15. InStr – возвращает позицию 1 вхождения одной строки внутри другой. InStr (строка1, строка 2) Варианты задания 3 Вариант 1 В символьной строке удалить все повторяющиеся слова и вывести полученную строку на экран. Вариант 2 7 В символьной строке каждое слово НН заменить на слово Нижний Новгород и полученную строку вывести на экран. Вариант 3 Определить, содержит ли строка слова - полиндромы (слова, читающиеся одинаково слева направо и справа налево) и если содержит, то вывести их на экран. Вариант 4 Символьная строка представляет собой запись числа, записанного в некоторой произвольной системе счисления. Основание системы записывается десятичным числом через подчеркивание после последней цифры числа. Например, 1101_2 число 1101 в двоичной системе счисления. Перевести введенное число в десятичную систему счисления и вывести результат на экран. Вариант 5 Написать программу, шифрующую и расшифровывающую сообщение заменой каждой буквы на букву циклически сдвинутую на N позиций в алфавите. Вариант 6 Символьная строка содержит арифметическое выражение, состоящее из чисел, соединенных знаками сложения, вычитания и умножения. Вычислить значение этого выражения и результат вывести на экран. Вариант 7 Символьная строка представляет собой шестнадцатеричную запись числа. Перевести это число в двоичную систему счисления. Вариант 8 Отсортировать слова во введенной символьной строке по возрастанию длины слов. Результат вывести на экран. Вариант 9 Отсортировать слова во введенной символьной строке по алфавиту. Результат вывести на экран. 8 Вариант 10 Введенную символьную строку разделить на подстроки заданной длины. Результирующие подстроки вывести в столбик на экран. Задание 4 Тема: Функции времени и даты. Функции времени и даты Дата должна быть заключена между #. VBA распознаёт следующие форматы #January 1, 1998# #Jan 1 2003# #1 – Jan – 03# #1 Jan 2003# #1 1 03# 1. Date – возвращает 8 символов в формате mm.dd.yy – текущую системную дату. 2. Time – возвращает 8 символов в формате hh.mm.ss – текущее системное время. 3. Now – возвращает системную дату и системное время компьютера. 4. Hour Minute Second – возвращает значение типа Variant, содержащее целое число, которое представляет часы, минуты, секунды в значении времени. 5. Day Month Year – возвращает значение типа Variant, содержащее целое число, которое представляет день, месяц, год в значении даты. 6. Weekday -– возвращает значение типа Variant, содержащее целое число, которое представляет день недели. Weekday (date, [firstdayofweek]) 7. Timer - возвращает значение типа Single, которое представляет число секунд, прошедших после полуночи. 9 8. DateDiff - возвращает значение типа Variant, указывающее число временных интервалов между двумя датами. DateDiff(interval, date1,date2) 9. DateAdd - возвращает значение типа Variant, содержащее дату, к которой добавлен указанный временной интервал. DateAdd (interval, number, date) 10. TimeSerial (час,мин,сек) - возвращает значение типа Variant, содержащее значение времени, соответствующее указанным часу, минуте и секунде. 11. DateSerial (год, месяц, день) 12. TimeValue – преобразует строку в формат времени. 13. DatePart – возвращает указанный компонент даты. DatePart (interval, date, [, firstdayofweek]) Варианты задания 4 Вариант 1 Определить количество дней между двумя введенными датами. Вариант 2 Определить количество полных недель между двумя введенными датами. Вариант 3 По введенной дате выдать ее словесное описание. Вариант 4 Определить количество воскресений между двумя введенными датами. Вариант 5 Проверить, выпадает ли введенная дата на воскресенье. Вариант 6 10 Определить, сколько пятниц из диапазона между двумя введенными датами выпадает на 13 число. Вариант 7 По введенному времени выдать его словесное описание. Вариант 8 Указать дату ближайшего к введенной дате воскресенья. Вариант 9 Подсчитать количество воскресений в месяце, название которого вводится. Вариант 10 Определить количество минут между двумя введенными моментами времени. Задание 5 Тема: Элементы управления и пользовательская форма VBA обладает встроенным набором элементов управления. Используя этот набор и редактор форм можно создать любой пользовательский интерфейс, который будет удовлетворять всем требованиям, предъявляемым к интерфейсу в среде Windows. Варианты задания 5 Доступ к диалоговому окну должен быть разрешен только при правильно набранном пароле, выводимом на экран символами *. Вариант 1 Разработать приложение, с помощью которого можно выполнять любые арифметические операции над числами, вводимыми в поля диалогового окна «Калькулятор». Операция, выполняемая над числами должна выбираться из списка. Вариант 2 11 Разработать приложение, с помощью которого можно выполнять арифметические операции (сложение, умножение, вычитание) над комплексными числами, вводимыми в поля диалогового окна “Калькулятор”. Операция, выполняемая над комплексными числами должна выбираться из списка. Вариант 3 Разработать приложение, с помощью которого можно выполнять арифметические операции (сложение, умножение, вычитание, деление) над рациональными дробями, вводимыми в поля диалогового окна “Калькулятор”. Операция, выполняемая над рациональными дробями должна выбираться из списка. Вариант 4 Разработать приложение, с помощью которого можно выполнять арифметические операции (сложение, вычитание, определение модуля) над трехмерными векторами, вводимыми в поля диалогового окна “Калькулятор”. Операция, выполняемая над трехмерными векторами должна выбираться из списка. Вариант 5 Разработать приложение, с помощью которого можно выполнять арифметические операции (сложение, вычитание, нахождение определителя) над матрицами 2*2, вводимыми в поля диалогового окна “Калькулятор”. Операция, выполняемая над матрицами , должна выбираться из списка. Вариант 6 Разработать приложение с диалоговым окном «Решение уравнения» для нахождения корня некоторого уравнения вида F(x)=0, x[a,b] методом Ньютона (касательных). Вид уравнения и область изменения переменной x вводятся в поля диалогового окна. Используя свойство Visible элементов управления, сделайте так, чтобы при отсутствии корней вместо поля отображался бы элемент управления Caption c текстовым сообщением об их отсутствии. Метод Ньютона основан на замене F(x) в точке начального приближения x=x0 касательной, пересечение которой с осью x дает первое приближение x1 , и т.д. Таким образом, итерационный процесс схождения к корню реализуется формулой 12 Xn+1=xn-F(xn)/F’(xn), до тех пор, пока соблюдается условие xn+1-xn Вариант 7 Разработать приложение с диалоговым окном «Решение уравнения» для нахождения корня некоторого уравнения вида F(x)=0, x[a,b] методом хорд. Вид уравнения и область изменения переменной x вводятся в поля диалогового окна. Используя свойство Visible элементов управления, сделайте так, чтобы при отсутствии корней вместо поля отображался бы элемент управления Caption c текстовым сообщением об их отсутствии. При методе хорд каждое значение xn+1 находится как точка пересечения оси абсцисс с хордой, проведенной через точки F(a) и F(b), причем одна из этих точек фиксируется – та, для которой знаки F(x) и F’’(x) одинаковы. Если неподвижен конец хорды x=a, то xn+1=xn-F(xn)/(F(xn)-F(a)) (xn-a), А если неподвижен конец хорды x=b, то xn+1=xn-F(xn)/(F(b)-F(xn)) (b-xn). Условие остановки xn+1-xn. Задание 6 Тема: Связь полей диалоговых окон с ячейками рабочего листа Excel Варианты задания 6 Вариант 1 Составить программу нахождения среднего балла оценок, полученных студентами на экзамене. Фамилии студентов заданы в диалоговом окне «Средний балл». Список фамилий заполняется из данных, введенных из диапазона на рабочем листе. Создайте в программе обработчик ошибок , который будет проверять, являются ли данные из второго столбца списка числами. Если хотя бы одно из этих данных не является числом, программа 13 должна проинформировать об этом пользователя с просьбой исправить найденную некорректность. Вариант 2 Разработать приложение с диалоговым окном «Регистрация клиентов отеля». В текстовые поля вводится следующая информация: фамилия,имя, продолжительность проживания. В раскрывающемся списке выводится три типа номеров: одноместный, двухместный, люкс, стоимость проживания в которых равна 150, 100 и 250 руб. в сутки. Если постоялец заказывает завтраки в номер, то суточная оплата возрастает на 15 руб. При нажатии кнопки OK в поле Стоимость проживания должна выводиться суммарная стоимость проживания клиента, и все данные из диалогового окна должны вводится в базу данных на рабочем листе. Вариант 3 Построить приложение, учитывающее поступление товара на склад магазина. В диалоговом окне приема товара на склад предусмотреть ввод наименования товара, цену, количество, дату приема и единицу измерения товара. Поступающие товары должны записываться в базу данных рабочего листа. Вариант 4 Разработать приложение с диалоговым окном “Продажа железнодорожных билетов ”. В текстовые поля вводится следующая информация: фамилия, имя, конечная станция, номер вагона, номер места в вагоне, тип вагона. В раскрывающемся списке выводится все возможные направления (конечные станции, информация о которых хранится в отдельной таблице, там же указано расстояние). При нажатии кнопки OK в поле Стоимость билета должна выводиться стоимость билета в зависимости от типа вагона и расстояния проезда. Все данные из диалогового окна должны записываться в таблицу на рабочий лист. Вариант 5 Создать приложение для продажи билетов в театральной кассе с полями: название спектакля, тип места в зрительном зале (партер, бельэтаж и т.д.), ряд, место, дата, время спектакля. Организовать проверку, не продан ли би- лет на место, которое введено в поле ввода. В рас14 крывающемся списке выводится все возможные спектакли (информация о которых хранится в отдельной таблице). При нажатии кнопки OK в поле Стоимость билета должна выводиться суммарная стоимость билета в зависимости от типа места. Результаты продажи билетов сохранять в отдельной таблице Задание 7 Тема: Построение графиков функций Варианты задания 7 Вариант 1 Разработать приложение с диалоговым окном «Парабола», которое позволит по введенным в поля значениям коэффициентов квадратного уравнения a, b, c 1. Найти количество корней квадратного уравнения, с полученными коэффициентами. 2. Построить график полученной параболы. Вариант 2 Разработать приложение с диалоговым окном «Уравнение с двумя параметрами», которое позволит 1. Находить при всех возможных комбинациях значений параметров a и b корни уравнения с одной неизвестной, зависящего от этих двух параметров. Например, x3-ax2+b=0. 3. Строить график, показывающий зависимость корня от значений параметров a и b. Вариант 3 Разработать приложение, которое по введенному уравнению функции двух переменных, начальному и конечным значениям аргументов, а также по шагам их изменения строит поверхность. Кроме того, используя полосы прокрутки, предусмотреть возможность изменения ориентации пространственного местоположения поверхности. 15 Задание 8 Тема: Работа с файлами Варианты задания 8 Вариант 1 Разработать приложение, которое позволяет в текстовое поле диалогового окна «Редактор» загрузить из файла уже существующий текст, отредактировать его и записать измененный текст в файл. Вариант 2 Разработать приложение, работающее с файлом произвольного доступа. Данный файл предназначен для хранения информации о студентах: фамилии, имени, номере группы. Диалоговое окно «Информация» позволяет перемещаться от записи к записи, редактировать существующие и создавать новые записи. Переход от записи к записи производится при помощи счетчика. При активизации диалогового окна доступным для пользователя являются только поле со списком и кнопка Открытие файла. В поле со списком отображаются все файлы текущей папки с расширением dat. Пользователь может выбрать файл из этого списка или ввести в поле имя нового файла. После ввода имени файла поле со списком и кнопка Открытие файла становятся недоступными для пользователя, а кнопки Новая запись, Записать изменения, Закрыть, счетчик Номер записи и поля ввода-вывода информации становятся, наоборот, доступными. Задания для зачета Задание №1. Расчет квартплаты за месяц Часть 1 1. Разработать диалоговое окно для заполнения таблицы исходных данных, содержащей следующие поля: 16 № квартиры (адрес) Отв. квартиросъемщик Общая площадь Жилая площадь Кол-во человек Наличие льгот. Учесть, что если льгот нет, то графа виды льгот – недоступна. (Виды льгот: ВОВ, ветеран труда.) Предполагаем, что используется только одна льгота. 2. Присвоить листу исходных данных имя. 3. Заполнить таблицу исходных данных. Часть 2 1. На отдельном листе составить таблицу значений тарифов оплаты ком. платежей вида: Вид тарифа Кол-во м на 1 чел-ка жилой площади Тариф за 1 кв. м Тариф за излишки Мусор Отопление за 1 кв. м жилой площади Льгота для ВОВ (в % ) Льгота для ветерана труда в (в %) Пени (в %) за просрочку оплаты Дата оплаты (т.е. до какого числа месяца необходимо внести плату) Значение 2. Заполнить таблицу. Часть 3. 1. Разработать диалог оплаты коммунальных услуг. 2. На отдельном листе создать таблицу расчета. 3. Заполнить таблицу. Вычисление пени оформить в виде функции пользователя. 4. Вставить комментарии в итоговую сумму. Часть 4. 1. Создать бланк квитанции в Word. 2. Внести в бланк данные для конкретного человека. Задание № 2. Расчет платы за электричество за месяц 17 Часть 1 1. Разработать диалоговое окно для заполнения таблицы исходных данных, содержащей следующие поля: № квартиры (адрес) Отв. квартиросъемщик Наличие льгот. Учесть, что если льгот нет, то графа виды льгот – недоступна. (Виды льгот: ВОВ, ветеран труда.) Предполагаем, что используется только одна льгота. 3. Присвоить листу исходных данных имя. 4. Заполнить таблицу исходных данных. Часть 2. 1. На отдельном листе составить таблицу значений тарифов оплаты за электричество: 3. Вид тарифа Кол-во КВ по первому тарифу Тариф за 1 КВ Тариф за излишки Льгота для ВОВ (в % ) Льгота для ветерана труда в (в %) Дата оплаты (т.е. до какого числа месяца необходимо внести плату) Пени (в %) за просрочку оплаты Заполнить таблицу. Значение Часть 3. 1. Разработать диалог платы за электричество. 2 На отдельном листе создать таблицу расчета. 3. Заполнить таблицу. Вычисление пени оформить в виде функции пользователя. 4. Вставить комментарии в итоговую сумму. Часть 4. 1. Создать бланк квитанции в Word. 2. Внести в бланк данные для конкретного человека. Задание № 3. Создание макета наличия книг в букинистическом магазине 18 Часть 1 1. На рабочем листе изготовить макет наличия книг в букинистическом магазине: № регистрации Продавец Название книги Автор Отпускная цена Степень качества (%) Коэффициент закупки Цена закупки Цена продажи Дата поступления В отдельной ячейке ввести наценку магазина в %. 2. Разработать диалоговое окно для заполнения таблицы исходных данных (поступление книг) с вычислением цены продажи. 3. Присвоить листу исходных данных имя. Часть 2. 1. Разработать диалог продажи книг. При работе должна заполнять графа дата продажи (для этого используйте системную дату.). Если разница между датой продажи и датой закупки > 30 дней, то происходит уценка (%). Цена уцененной книги должна быть >= цены закупки. Вычисление значения уценки оформить в виде функции. 2. Разработать диалог с графами: поступление книг, продажа книг, отчет за день. 3. На отдельном листе создать таблицу продажи книг за день с вычислением прибыли. Задание № 4. Создание макета наличия книг в электронном магазине Часть 1 1. На рабочем листе изготовить макет наличия книг на базе: № регистрации Название книги Автор Цена одного экземпляра Кол-во Стоимость 19 2. Разработать диалоговое окно для заполнения таблицы поступление книг. Учесть возможность добавления новых книг и добавление новых экземпляров существующих на базе книг (первый раз при заполнении таблицы все книги – новые). Присвоить листу исходных данных имя. Часть 2. 1. Разработать диалог продажи книг за день с графами название книги, кол-во экземпляров. Дата продажи – это системная дата. На листе наличия книг после продажи кол-во книг должно уменьшаться. 2. На отдельном листе создать таблицу продажи книг за выбранный день месяца с вычислением прибыли за день. Задание №5. Создания макета наличия товаров Часть 1 1. На рабочем листе изготовить макет наличия косметических средств на базе: № регистрации Тип продукта (крем, помада, пудра и т.д.) Список типов дол жен существовать на отдельном листе. Фирма изготовитель Цена одной штуки Кол-во Наценка в % Стоимость 2. Разработать диалоговое окно для заполнения таблицы поступление косметики. Учесть возможность добавления новых косметических средств и добавление новых экземпляров существующих косметических средств (первый раз при заполнении таблицы все косм. средства – новые). Присвоить листу исходных данных имя. Часть 2. 1. Разработать диалог продажи косм. средств за день с графами название, фирма, кол-во экземпляров. Дата продажи – это системная дата. На листе наличия косм. средств после продажи кол-во косм. средств должно уменьшаться. 2. На отдельном листе создать таблицу продажи косм. средств за выбранный день месяца с вычислением прибыли за день. 20 Задание №6. Расчет платы за телефон за месяц Часть 1 1. Разработать диалоговое окно для заполнения таблицы исходных данных, содержащей следующие поля: ФИО № телефона Наличие льгот. Учесть, что если льгот нет, то графа виды льгот – недоступна. (Виды льгот: ВОВ, ветеран труда.) Предполагаем, что используется только одна льгота. 2. Присвоить листу исходных данных имя. 3. Заполнить таблицу исходных данных. Часть 2. 1. На отдельном листе составить таблицу значений тарифов оплаты за телефон: Вид тарифа Кол-во мин по первому тарифу Тариф за мин Тариф за излишки Льгота для ВОВ (в %) Льгота для ветерана труда в (в %) Дата оплаты (т.е. до какого числа месяца необходимо внести плату) Пени (в %) за просрочку оплаты Значение 2. Заполнить таблицу. Часть 3. 1. Разработать диалог платы за телефон. 2. На отдельном листе создать таблицу расчета. 3. Заполнить таблицу. Вычисление пени оформить в виде функции пользователя. 4. Вставить комментарии в итоговую сумму. 21 Часть 4. 1. Создать бланк квитанции в Word. 2. Внести в бланк данные для конкретного человека. Задание №7. Решение линейных алгебраических уравнений методом Крамера и при помощи обратной матрицы. Часть1. 1. Разработать диалоговое окно для ввода информации о системе линейных уравнений, содержащее элементы управления для а) ввода кол-ва уравнений и неизвестных (кол-во уравнений = кол-ву неизвестных) б) ввод коэффициентов уравнения с) выбор метода решения д) необходимые управляющие кнопки Часть 2. 1. Создать два листа для двух методов решения. На рабочий лист должна вы водиться следующая информация : а) Начальные данные б) промежуточная информация с) решение. Задание №8. Регистрация в гостинице 1. Создать таблицу регистрации приезда постояльцев в гостиницу, содержащую следующие поля: № регистрации ФИО Паспортные данные Тип номера (люкс, 1 класс, 2 класс и т.д.) Список типов должен существовать на отдельном листе. № комнаты – выбирается из списка номеров свободных комнат для выбранного типа номера. Цена номера за сутки Нужны ли дополнительные услуги: телевизор, газеты, компьютер и т.д. Дата заселения 22 2. . Разработать диалоговое окно регистрации приезда постояльцев в гостинице Диалог для регистрации приезжающих должен состоять из двух диалоговых окон. Второе диалоговое окно – для номера (типы номеров, списки свободных номеров для данного типа и т.д.). Разработать диалоговое окно для заполнения таблицы отъезда. ФИО Дата выезда необходимые графы для расчета оплаты ( в зависимости от цены номера, доп. услуг и т.д.) 3. 4. Создать бланка счета в Word. Внести данные для конкретного человека. Заполнение необходимых полей (где это возможно производить с листа исходных данных, который должен быть заготовлен заранее). Задание № 9. Регистрация продажи железнодорожных билетов 1. На отдельном листе создать таблицу продажи билетов, содержащее следующее поля: ФИО покупателя Список возможных регионов Тип вагона (плацкарт, купе) Кол-во билетов № вагона и № места (выбирать из списка свободных мест в вагонах) Наличие льгот Стоимость билета (в зависимости от типа вагона и льгот) 2. Разработать диалоговой окно для заполнения таблицы продажи железнодорожных билетов. Все необходимые данные для формирования диалога должны находиться на листе исходных данных. Задание № 10. Продажа билетов в театральной кассе. 23 1. Создать таблицу продажи билетов в театральной кассе с полями: название спектакля тип места в зрительном зале (партер, бельэтаж и т.д.) ряд, место дата, время спектакля кол-во билетов цена билета в зависимости от типа места итоговая сумма 2. Разработать диалоговое окно для заполнения таблицы продажи билетов. Все необходимые данные для формирования диалога должны существовать на листе исходных данных. Диалог должен состоять из двух диалоговых форм. Вторая диалоговая форма должна содержать информацию о местах (типы, , списки свободных мест и т.д.). После продажи билетов кол-во мест на листе исходных данных должно уменьшаться. Задание № 11. Регистрация клиентов салона компьютерных игр 1. Создать таблицу регистрации клиентов компьютерного салона, содержащую следующие поля: № компьютера- выбирается из списка номеров свободных компьютеров ФИО Тип игры (логические, карточные, аркады, квест, 3д-шутер, гонки и т.д.). Список типов должен существовать на отдельном листе. Название Игры Время начала игры. Цена за час 2. 3. 4. 24 Разработать диалоговое окно для заполнения таблицы регистрации клиентов компьютерного салона. Разработать диалоговое окно для заполнения таблицы расчета платы за использованное компьютерное время. Создать бланка счета в Word. Внести данные для конкретного человека. Заполнение необходимых полей (где это возможно производить с листа исходных данных, который должен быть заготовлен заранее). Задание № 12. Решение кубических уравнений 1. 2. 3. Разработать диалог №1 для решения кубических уравнений для ввода коэффициентов уравнения. Разработать диалог № 2, состоящий из двух страниц, для создания таблицы данных для построения графика решения. График вывести на вторую страницу. Все необходимые расчеты проводить на рабочих листах. Всем рабочим листам присвоить имена. Задание № 13. Регистрация продажи авиабилетов 1. На отдельном листе создать таблицу продажи билетов, содержащее следующее поля: ФИО покупателя Страна Город № рейса (выбирать из списка свободных мест по выбранному типу) Тип места (слон 1 класса, места для некурящих, …) № места (выбирать из списка свободных мест по выбранному типу) Кол-во билетов Наличие льгот (детский билет) Стоимость билета (в зависимости от типа и льгот) Итоговая сумма. 2. Разработать диалоговое окно для заполнения таблицы продажи авиабилетов. № рейса должен выбираться: либо ближайший рейс, либо бронирование места заранее. Диалог должен состоять из двух диалоговых окон. Во втором диалоговом окне должна отображаться информация о рейсах и наличии свободных мест для выбранных типов мест. 3. Заполнить таблицу продажи авиабилетов. 4. Все необходимые данные для формирования диалога должны находиться на листе исходных данных. 25 Задание № 14.Автоматизация работы туристической фирмы 1. На отдельном листе создать таблицу регистрации путешественников, содержащее следующее поля: ФИО Паспорт Страна Курорт Тип обслуживания (полный пансион и т.д.) Надо ли покупать билеты на транспорт. Тип гостиницы (*****,**** и т.д.) Дополнительные услуги (экскурсии и т.д.) Кол-во путевок Льготы (детская путевка, ветеран ВОВ). Стоимость путевки (в зависимости от типа и льгот) Итоговая сумма. 2. Разработать диалоговое окно для заполнения таблицы продажи путевок. Диалог должен состоять из двух диалоговых окон. Во втором диалоговом окне должна отображаться информация о наличии свободных путевок для выбранных типов стран и курортов, наличии гостиниц. 3. Заполнить таблицу продажи путевок. 4. Все необходимые данные для формирования диалога должны находиться на листе исходных данных. 26