Лабораторная работа № 6 Использование процедур и функций Цель работы

advertisement
Лабораторная работа № 6
Использование процедур и функций
в табличном процессоре MS Excel
Цель работы
Освоить использование процедур и функций при создании
макросов в MS Excel 2010.
Задание
Даны матрицы А(6,6) и В(6,6). Выполнить указанные действия
для той матрицы, которая отвечает условию. Условия и действия приведены ниже. В случае если условие не выполняется ни для одной матрицы, действие не должно совершаться. Для каждой матрицы условие
должно проверяться только один раз.
Составить схему алгоритма решения задачи в соответствии с заданным вариантом. На основе разработанной схемы создать и протестировать макрос.
При решении задачи должна быть реализована как минимум одна процедура и как минимум одна функция. Матрицы должны передаваться в подпрограммы в качестве аргументов.
При решении задачи листы Excel разрешается использовать
только для чтения исходных данных и вывода результатов. Использовать листы или отдельные ячейки для хранения промежуточных данных
запрещается.
Программа должна быть разбита на три последовательных логических блока: чтение данных, обработка данных, вывод результатов.
Запрещается читать данные с листа и выводить результаты обработки в
процессе обработки.
Студент выбирает тот вариант задания, который соответствует его номеру в списке группы (НСГ). Если количество вариантов
задания (К) меньше, чем НСГ, то студенты, имеющие НСГ, превышающие К, руководствуются следующим правилом: № варианта=(НСГ –
К + 1).
1.
Условие: количество отрицательных элементов больше. Дей-
ствие: найти сумму положительных элементов в каждой строке.
2.
Условие: количество нулевых элементов больше. Действие:
найти сумму отрицательных элементов в каждой строке.
3.
Условие: количество ненулевых элементов больше. Дей-
ствие: найти сумму элементов в каждой строке, расположенных слева
от главной диагонали.
4.
Условие: количество строк, начинающихся с нуля, больше.
Действие: скопировать в вектор все положительные элементы.
5.
Условие: количество строк, начинающихся с ненулевого зна-
чения, больше. Действие: поменять между собой соответствующие элементы в соседних строках, если они не равны друг другу (пары строк:
1-2, 3-4, 5-6).
6.
Условие: количество строк, начинающихся с положительно-
го значения, больше. Действие: поменять между собой соответствующие элементы в соседних строках, если они имеют значения разных
знаков (пары строк: 1-2, 3-4, 5-6).
2
7.
Условие: количество строк, заканчивающихся положитель-
ным значением, больше. Действие: из каждой непересекающейся пары
соседних элементов в каждой строке большее значение скопировать в
вектор.
8.
Условие: количество столбцов, начинающихся с нуля, боль-
ше. Действие: найти сумму и количество всех отрицательных элементов, располагающихся выше главной диагонали.
9.
Условие: сумма положительных элементов больше. Дей-
ствие: в каждой строке элемент главной диагонали заменить суммой
элементов, располагающихся правее него.
10. Условие: сумма отрицательных элементов больше. Действие: в каждой строке, если она начинается с нуля, перемножить все
ненулевые значения и заменить этим значением первый элемент строки.
11. Условие: сумма элементов главной диагонали больше. Действие: в каждом столбце найти значение и позицию наибольшего элемента (любого, если их несколько).
12. Условие: количество нулевых элементов в главной диагонали больше. Действие: в каждой строке найти значение и позицию
наибольшего элемента (любого, если их несколько).
13. Условие: количество положительных элементов в главной
диагонали больше. Действие: в каждом столбце найти значение и позицию наименьшего элемента (любого, если их несколько).
14. Условие: количество отрицательных элементов в побочной
диагонали больше. Действие: в каждой строке найти значение и позицию наименьшего элемента (любого, если их несколько).
3
15. Условие: сумма положительных элементов в чётных строках
больше. Действие: найти значение и позицию максимального элемента
в матрице (любого, если их несколько).
16. Условие: модуль суммы отрицательных элементов в чётных
строках больше. Действие: найти значение и позицию нулевого элемента в матрице (если их несколько, то расположенного ближе к элементу
(1,1) матрицы – использовать декартово расстояние).
17. Условие: количество нулевых элементов в нечётных столбцах больше. Действие: найти значение и позицию положительного элемента в матрице (если их несколько, то расположенного ближе к элементу (1,1) матрицы – использовать декартово расстояние).
18. Условие: количество нулевых элементов в нечётных столбцах больше. Действие: найти в каждой строке позицию первого отрицательного элемента.
19. Условие: количество нулевых элементов в чётных столбцах и
нечётных строках больше. Действие: найти в каждой строке позицию
первого положительного элемента.
20. Условие: количество нулевых элементов в нечётных столбцах и чётных строках больше. Действие: найти в каждой строке позицию последнего отрицательного элемента.
Оформление отчетов
Отчет о выполнении лабораторной работы оформляется в печатном виде и должен включать титульный лист и состоять из следующих
структурных элементов и разделов:
– цель работы;
4
– постановка задачи;
– схема алгоритма;
– листинг программы (с комментариями основных действий);
– результаты работы программы и ручного тестирования;
– выводы по работе.
Схемы алгоритмов должны быть составлены в соответствии с
ГОСТ 19.701-90.
Оценка выполнения лабораторной работы
Лабораторная работа оценивается максимально в 6 баллов. Баллы начисляются с учетом полноты и правильности выполнения задания
(табл. 1). Минимальное количество баллов, при котором работа может
быть зачтена – 4.
Лабораторная работа оценивается только в случае предъявления
студентом корректной программы. В случае если программа неверна,
она должна быть переработана.
Таблица 1
Оцениваемые параметры
Максимальное
количество
баллов
1.
Отчет подготовлен в соответствии с действу-
0.5
ющим стандартом оформления
2.
Схема алгоритма оформлена в соответствии с
1
ГОСТ 19.701-90
3.
Структурное оформление исходного текста
1
программы
4.
Полнота представления в тестировании исход-
5
1
ных данных
5.
Качество ответа на вопросы к защите ЛР
Всего баллов
2.5
6
Примерный перечень вопросов к защите ЛР
1.
Шаблон объявления процедуры и функции.
2.
В чем отличие передачи параметров в подпрограмму по
ссылке (ByRef) от передачи по значению (ByVal)? Какой способ передачи используется по умолчанию? Могут ли массивы передаваться по
значению (ByVal)?
3.
Что означает тип Variant?
4.
Указание значений аргументов по умолчанию (Optional).
Вызов таких подпрограмм.
5.
В чём отличие локальных и глобальных переменных?
6.
Какой особенностью обладает имя функции как «перемен-
ная»? Может ли имя процедуры использоваться в качестве переменной?
7.
Каким образом осуществляется вызов процедуры/функции и
как он работает?
8.
Сколько значений может возвращать процедура/функция, и
каким образом это можно реализовать?
6
Download