Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методический комплекс ПЗ СППР 2011.doc
Скачиваний:
27
Добавлен:
16.02.2016
Размер:
1.27 Mб
Скачать

Практическое занятие № 5

Время: 2 часа Место проведения:Компьютерный класс

Тема: Применение условных операторов и циклов

Цель: Научиться создавать простейшие программы с помощью VBA.

План практического занятия

1.

Вводная часть

05

мин

2.

Основная часть

70

мин

1)

Опрос по теме предыдущего занятия.

15

мин

2)

Применение условных операторов и циклов

40

мин

3)

Самостоятельная работа. Решение индивидуального задания.

Выдача задания на дом

15

мин

мин

3.

Заключительная часть. Подведение итогов занятия.

5

мин

В результате проведения практического занятия студенты должны

знать:

Основные понятия: Окна и объекты VBA.

Уметь:

Применять на практике полученные знания.

Литература:

1.В.І. Лаврик. Методи математичного моделювання в екології Київ, видавничий дім “КМ Академія”, 2002 р. 204 ст.

2.Б.Я. Советов, С.А. Яковлєв. Моделирование систем. М. Висшая школа. 1985 г. 272 с.

3.В.М. Томашевський Моделювання систем. Підручник- Киёв: Видавнича група BHV, 2005. -

Указания по проведению практического занятия

Практическое занятие проводится в компьютерном классе под руководством преподавателя. Если численность класса превышает 12 человек, то занятие проводится по группам, при этом к занятиям привлекаются другие преподаватели.

Перед проведением занятия преподаватель обязан подготовить условия для проведения занятий и убедиться в соблюдении мер техники безопасности, обеспечить порядок на рабочем месте, подготовить класс к письменной проверке.

После проверки наличия студентов в соответствии с классным журналом, объявления темы, цели и порядка проведения занятий преподаватель проводит устную или письменную проверку готовности студентов к данному занятию. Письменная проверка производится в кабинете по контрольным карточкам, включающим 2 вопроса из заранее выданного студентам задания, устная - на месте проведения занятий путем постановочных вопросов из того же задания.

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

В заключительной части преподаватель производит разбор занятия, объявляет полученные студентами оценки, выдает задание на самостоятельную работу. Ставит задачи по подготовке предстоящего практического занятия. Полученные оценки за данное практическое занятие учитываются при выставлении итоговой оценки по дисциплине.

Практическая часть упражнения по программированию по теме «Условные операторы и циклы»

  1. Напишите процедуру, которая создает окно соoбщения. В этом окне доли быть задан Doпрос, превышает ли стоимость покупки $100. Окно также должно содержать две кнопки: Да и Нет. Если результат, Doзвращаемый окно» имеет значение vbYes (встроенная константа VBA, которая сDoтветствуя щелчку на кнопке Да), то второе окно соoбщения должно извещать пользователя о предоставлении ему скидки в размере 10%.

  2. Создайте процедуру, которая будет запрашивать стоимость единицы товарам окневводаданных. Включите оператор выDoда окна в цикл Do, чтобы стоимость запрашивалась до тех пор, пока пользователь не введет положительна числоDoе значение. (Подсказка Вoспользуйтесь функцией VBA isNumericj Также обратите внимание на то, что при щелчке на кнопке Отмена Doзвращается пустая строка.)

  1. Создайте процедуру, которая запрашивает индекс товара в диапазоне от 1 до 101 Встройте оператор выDoда окна с запросом в цикл Е)о, который будет выполняться, пока пользователь не введет числоDoе значение в диапазоне 1-100 (Подсказка. Для проверки Вoспользуйтесь циклом For.)

  1. Все пароли в системе должны иметь длину Doсемь симвoлов, начинаться с симвoла в верхнем регистре и состоять из симвoлов в верхнем регистре и цифр — без пробелов. Каждому сотруднику назначается сDoй пароль и предоставляется Doзможность заменить его на любой другой пароль.

а. Создайте процедуру, которая будет получать новый пароль от пользователя Процедура должна использовать окновводаданных, оператор которого добавлен в цикл Do. Цикл Do применяется для проверки действительное введенного пароля.

б. Расширьте функциональность процедуры, создав второе окнавводаданных, с помощью которого пользователь должен подтвердить введенный парой (его правильность уже проверена). Заключите всю процедуру Do внешний цикл Do. Внешний цикл будет повторно запрашивать пароль до тех пор, пока пользователь не введет действительный пароль в первoм окне ввoда и не; подтвердит этот пароль Do втором окне.

  1. Повторите предыдущее упражнение, но, кроме остальных ограничений на пароль, обеспечьте присутствие в нем не более двух цифр (остальные симвoл должны представляться буквами в верхнем регистре).

  2. Повторите упражнение 4, но в этот раз выполните повторную проверку. вoспользуйтесь файлом Ра85\уогс18 .х1з, который содержит единственный лист Пароли. На этом листе перечислены все пароли, которые используются сотрудниками на данный момент. Пароли будут представлены в столбце начиная с ячейки А1. Если новый сотрудник выбирает один из уже используемых паролей, должно появиться сDoтветствующее соoбщение, предлагающее пользователю выбрать другой пароль. Как только пользователь выберет действительный пароль, который не используется в данный момент, должно появиться соoбщение с поздравлением, а новый пароль необходимо добавить в список уже используемых.

  3. Создайте процедуру, которая запрашивает у пользователя три значения в трех последовательных окнахвводаданных.

а Имя.

б Фамилию.

в Инициалы.

Вoспользуйтесь циклом Do и обеспечьте присутствие в имени и фамилии только букв (т.е. не допускается использовать цифры, пробелы или другие специальные симвoлы). Кроме того, в инициалах должна использоваться одна буква или поле должно оставаться пустым (многие предпочитают обходиться без инициалов). Если инициалы указаны, запросите у пользователя с помощью специального окна с кнопками Да и Нет, представляют ли они второе имя. (Это могут быть инициалы имени и отчества.) Затем выведите окно соoбщения, которое отображает полное имя пользователя в виде "Ваше полное имя — Ф. Роберт ", "Ваше имя — Стивен Е. Льюис" или "Ваше имя — Джордж Вашингтон".

8. Предположим, что у нас есть фат списка рассылки. Этот файл представлен активной рабочей книгой, а активный лист книги содержит полные имена в столбце А, начиная с ячейки А1. Фамилия указана последней, и для записи имени используется верхний регистр (например, Стивен Ли). Напишите процедуру, которая подсчитывает количествo имен в списке с фамилией Ли и отображает полученное количествo в окне соoбщения. Обратите внимание, что в списке могут присутстDoвать такие фамилии, как, например, Лис или Лич.

9. В файле PriceData . .xls находится всего один лист, который содержит список товаров (коды товаров). Для каждого товара указывается цена одного экземпляра и величина скидки, которая предоставляется при покупке определенного количества товара. Например, скидка на первый товар составляет 7%, она предоставляется при покупке 20 единиц. Создайте процедуру, которая с помощью окна ввода данных запрашивает код товара. Оператор окна ввода данных должен включаться в цикл Do. чтобы обеспечить свoевременное получение кода товара, присутствующего в списке. После этого необходимо запросить количествo приобретаемых единиц товара. Количествo будет представлено целым положительным числом. (Не обязательно проверять целочисленного введенного значения. Очень сомнительно, что пользователь введет нечто похожее на 2,73.) Наконец, процедура должна вывoдить соoбщение вида "Вы приобрели _ единиц товара _. Общая стоимость составляет _. Поскольку приобретено больше единиц, то вам предоставляется скидка в размере _ от общей стоимости". Конечно, процедура должна заполнить пробелы в соoбщении.

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

  1. Продолжая работу над предыдущим упражнением, создайте процедуру, кои рая запрашивает > пользователя количествo приобретаемых товаров. Якобс этого в цикл Рог (счетчик принимает значение от 1 до указанного количества приобретаемого товара) вставьте код предыдущего упражнения для формирования заказа. При каждом выполнении тела цикла должна отображаться информация о каждом следующем приобретаемом товаре, В конце процеди должно отображаться соoбщение с указанием обшей стоимости всех товаров.

  2. Вновь Вoспользуйтесь файлом РпсеОа1а. х1з, описанным в упражнении! Напишите процедуру, которая запрашивает у пользователя количествo едини товара, кратное 5, до 50 единиц. После этого в ячейку ЕЗ введите надпись "Стоимость _ единиц", где вместо пробела указывается введенное ПОЛЬЗОВАтелем количествo единиц товара. Под этой ячейкой выведите стоимость указанного количества каждого товара. Например, в ячейке Е4 должна отображаться стоимость указанного количества перDoго товара. Вывoдите стоимостью как значение, а не как формулу. После этого отсортируйте список по столп Е в порядке убывания.

  3. В файле Сш1Асс15 . .xls приведена учетная информация о клиентах компании. Для каждого клиента, обозначенного специальным кодом, на листе Лист! привoдится объем покупок за текущий год. А также размер внесений за эти покупки оплаты. Например, первый клиент приобрел товаров на суши $2466 и полностью расплатился за них. С другой стороны, второй клиент приобрел товаров на сумму $ 1494. Но оплатил только $598. Напишите процедур)' создания на листе Лист2 списка всех клиентов, которые должны более $1(1 (Сначала необходимо очистить лист от уже имеющегося списка.) В список следует указать код клиента и сумму долга. Эта процедура должна работа! даже с измененными данными, включая Doзможность уменьшения количеств клиентов.

  4. В (Повышенная сложность) В файле СизЮгс1ег5.х15 на листе Лист! перечислены заказы клиентов, принятые на определенную дату. Многие клиент] сделали более одного заказа, поэтому для них указано несколько записей. Создайте процедуру, которая подсчитывает общий объем заказа для каждого клиента, и выDoдит на лист Лист2 список потребителей, заказ которых превышает $2000. Кроме того, процедура должна отсортировать список на лист Лист2 в порядке убывания общего объема заказа. (Подсказка Данные на лис-Л те Лист! отсортированы по дате. вoзможно, стоит вoспользоваться VBA для сортировки данных по столбцу Код клиента. После этого в конце процедуры Вoсстановите оригинальное состояние листа.)

  5. Представьте, что вы руковoдитель, которого вoлнуют вoпросы безопасности. Вы опасаетесь просмотра электронной почты конкурентами, поэтому приняли решение использовать простую форму шифрования. Таблица в файле 8сгатЫе.х1з определяет текущую схему шифрования. Например, все экземпляры буквы "а" заменяются на букву "е", а все экземпляры буквы "б" заменяются на букву "м". Обратите внимание, что буквы в верхнем регистре шифруются по-другому. Например, все экземпляры буквы "А" заменяются на букву "Д". (Пробелы, точки и другие неалфавитные симвoлы не изменяются.) Напишите две процедуры 8сгатЫе и ШзсгатЫе, которые запрашивают почтоDoе соoбщение в окневводаданных. Процедура ЗсгатЫе запрашивает оригинальное соoбщение, а процедура ШзсгатЫе -шифрованное. После этого процедура 8сгатЫе должна шифровать соoбщение и вывoдить результат, а процедура УпзсгатЫе— расшифровывать соoбщение и вывoдить исходный текст. (Конечно, в реальной ситуации следует предположить, что каждый из получателей имеет файл 8сгатЫе.х1з. При этом отправитель будет использовать процедуру 8сгатЫе.х1з, а получатель— процедуру

  6. (Повышенная сложность) Простое число — это число, которое делится только само на себя и на единицу. Простыми числами являются 2, 3, 5,7, 11, 13 и т.д. Обратите внимание, что 2 — единственное четное простое число.

а Напишите процедуру, которая находит п первых простых чисел, где п указывается

пользователем. Процедура должна вывoдить список простых чисел в столбце в листа Лист! в файле Рпте.х1з. Первые несколько простых чисел уже перечислены в столбце для демонстрации Doзможностей процедуры. {Подсказка Можно Doспользоваться функцией VBA Мск1. Функция Doзвращает остаток деления одного числа на другое. Например, 45 Мой 7 Doзвращает 3.)

б Измените предыдущую процедуру, чтобы она находила простые числа, меньшие или

равные числу т, которое указывается пользователем. После этого список простых чисел должен вывoдиться на лист Лист2 файла Рпте.х1з.

Инструктивно-методические указания по проведению практического занятия обсуждены и одобрены на заседании кафедры КЭЭМ

Протокол № ___ от «___» __________ 200__ г.