Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика_ЗФ / Лабораторный практикум по программированию / Лабораторный_практикум_по_программированию_4

.pdf
Скачиваний:
142
Добавлен:
22.03.2016
Размер:
1.4 Mб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования

«Южно-Российский государственный университет экономики и сервиса» (ГОУ ВПО «ЮРГУЭС»)

Г.Д. Диброва

ЛАБОРАТОРНЫЙ

ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ

для студентов очной и заочной форм обучения специальностей:

260704 «Технология текстильных изделий»;

260901 «Технология швейных изделий»;

260902 «Конструирование швейных изделий»;

260905 «Технология изделий из кожи»;

260906 «Конструирование изделий из кожи»;

200503 «Стандартизация и сертификация»;

260800 «Технология, конструирование изделий и материалы легкой промышленности»

В четырёх частях

Часть 4

ШАХТЫ ГОУ ВПО «ЮРГУЭС»

2009

УДК 004.45(076) ББК 32.973-018.2я73

Д442

Рецензенты:

д.ф.н., профессор, зав. кафедрой «Информатика»

Е.Б. Ивушкина

к.э.н., доцент кафедры «Информатика»

И.Б. Кушнир

Рекомендован к внутривузовскому изданию редакционно-издательским советом ЮРГУЭС

Д442 Диброва, Г.Д. Лабораторный практикум по программированию : в 4 ч. / Г.Д. Диброва. – Шахты : ГОУ ВПО «ЮРГУЭС», 2009. –

Ч. 4. – 64 с.

В практическом пособии подробно рассмотрены вопросы организации работы с массивами в среде программирования QBasic (для начинающих программистов) и в среде Visual Basic for Applications (VBA). Изложены необходимые теоретические сведения, даны методические указания к выполнению лабораторной работы, рассмотрен пример выполнения лабораторной работы, даны требования к содержанию отчета. В пособии дано 30 вариантов заданий для выполнения лабораторной работы, приведены вопросы для самоконтроля, даны образцы тестовых заданий и задачи для самостоятельного выполнения. Практикум помогает получить начальные навыки работы в интегрированной среде VBA. Использованные материалы отражают опыт проведения занятий по дисциплине «Информатика».

Рекомендуется для выполнения лабораторных работ по дисциплине «Информатика», а также для самостоятельного изучения темы «Алгоритмизация и программирование» в рамках дисциплины «Информатика» студентами очной и заочной форм обучения.

Полезно всем начинающим программистам, самостоятельно осваивающим алгоритмизацию и программирование.

УДК 004.45(076) ББК 32.973-018.2я73

© ГОУ ВПО «Южно-Российский государственный университет экономики и сервиса», 2009

2

СОДЕРЖАНИЕ

 

ПРЕДИСЛОВИЕ..............................................................................................

4

Лабораторная работа. Организация работы с массивами...........................

5

Задания для самостоятельной работы .........................................................

5

Задание А...................................................................................................

5

Задание В...................................................................................................

5

Задание к работе...........................................................................................

6

Задание А...................................................................................................

6

Задание B...................................................................................................

7

Методические указания к выполнению задания А.....................................

8

Определение массива ...................................................................................

8

Обращение к элементам массива.................................................................

9

Описание массива.........................................................................................

9

Ввод и вывод массивов...............................................................................

11

Статические и динамические массивы......................................................

11

Пример выполнения задания A лабораторной работы.............................

23

Задачи для самостоятельного выполнения ...............................................

34

Методические указания к выполнению задания B...................................

35

Пример выполнения задания В лабораторной работы.............................

50

Контрольные вопросы................................................................................

60

Содержание отчета.....................................................................................

62

БИБЛИОГРАФИЧЕСКИЙ СПИСОК...........................................................

63

3

ПРЕДИСЛОВИЕ

Пособие является продолжением пособия «Лабораторный практикум по программированию» (1, 2, 3 части) [10, 11, 12]. В пособии подробно рассматриваются вопросы организации работы с массивами в среде программирования QBasic (для начинающих программистов) и в среде Visual Basic for Applications (VBA).

Практическое пособие разработано в соответствии с требованиями государственного образовательного стандарта высшего профессионального образования (ГОС ВПО) по направлению подготовки дипломированного специалиста 260704 «Технология текстильных изделий»; 260901 «Технология швейных изделий»; 260902 «Конструирование швейных изделий»; 260905 «Технология изделий из кожи»; 260906 «Конструирование изделий из кожи»; 200503 «Стандартизация и сертификация» в соответствии с учебным планом и примерной программой дисциплины «Информатика» для направлений 550000 «Технические науки» от 28.07.2000 г. Данный стандарт предусматривает в рамках дисциплины «Информатика» изучение алгоритмизации и программирования; языков программирования высокого уровня. Причем перечисленные дидактические единицы являются наиболее трудными для усвоения студентами. При их изучении возникает проблема выбора языка программирования, которая не решается однозначно в пользу объектно-ориентированных языков.

Преимущества и недостатки преподавания объектно-ориентирован- ных языков были подробно рассмотрены в [10]. Объектно-ориентированное программирование (ООП) не исключает, а охватывает технологию процедурного программирования.

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

Учитывая необходимость индивидуализации обучения, изложение сначала ведется в рамках процедурного подхода к программированию на примере языка Basic и системы программирования QBasic. Использование языка Basic не является основополагающим, а преследует доступность изложения.

Для студентов, освоивших основы алгоритмизации и программирования в школьном курсе информатики, в качестве языка программирова-

ния предлагается Visual Basic, а точнее – Visual Basic for Applications (VBA). VBA – это версия языка программирования Visual Basic для приложений Microsoft Office. Причины этого выбора объясняются в [10].

4

Лабораторная работа ОРГАНИЗАЦИЯ РАБОТЫ С МАССИВАМИ

Цель работы – закрепление навыков по разработке циклических и разветвляющихся структур алгоритмов на примере обработки массивов, овладение практическими навыками работы с массивами, особенностями их ввода и вывода, совершенствование навыков по работе с системой визуального программирования, получение дальнейших навыков по тестированию и отладке программ.

Задания для самостоятельной работы

Задание А

1.Изучить:

способы описания массивов на языке QBasic и VBA;

способы ввода и вывода одномерных массивов.

2.Освоить приемы программирования:

запоминание результатов;

нахождение наименьшего, наибольшего элемента массива;

упорядочение элементов массива.

3.Повторить приемы программирования:

накопление суммы, произведения;

нахождение наибольшего и наименьшего.

4.Разработать визуальный алгоритм решения задачи в соответствии с заданием и записать его в виде блок-схемы.

5.Составить программу решения задачи.

6.Подготовить тестовые варианты исходных данных для тестирования и отладки программ.

Задание В

1.Изучить способы ввода и вывода двумерных массивов (матриц) на язы-

ке QBasic и VBA.

2.Разработать визуальный алгоритм решения задачи в соответствии с заданием и записать его в виде блок-схемы.

3.Составить программу решения задачи.

4.Подготовить тестовые варианты исходных данных для тестирования и отладки программ.

5

Задание к работе

Задание А

1.Обработать на ПК массив в соответствии со своим вариантом задания. Максимальный размер одномерного массива принять 20. При отладке программы осуществлять ввод части массива с указанием размера n 20. Параметр n и другие необходимые переменные ввести с помощью оператора ввода input (QВasic), функции InputBox либо с помощью элемента управления – текстового окна TextBox (VBA). В программе предусмотреть вывод на экран исходного массива.

2.Разработать визуальный алгоритм решения задачи в соответствии со своим вариантом задания и записать его в виде блок-схемы.

3.Составить программу решения задачи.

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

Варианты заданий А

Вариант 1. Найти и вывести на экран все положительные элементы массива А(а12,...аn). Одновременно вывести на экран их порядковые номера.

Вариант 2. Вычислить сумму элементов массива А(а1, а2, ..., аn), значения которых по модулю лежат в заданном диапазоне от b до с (b ai c). Значения переменных b и с вводятся.

Вариант 3. Дан массив А (а1, а2, ...,аn).Требуется найти b, равное среднему арифметическому элементов массива а и наибольшее отклонение от среднего, т.е. max(|a1-b|, |a2-b|,...,|an-b|).

Вариант 4. Выяснить имеются ли в массиве А (а1, а2, ...,аn) два идущих подряд нулевых элемента. Напечатать их порядковые номера.

Вариант 5. Дан массив Y(y1, y2, ..., yn). Найти: max(/z1/,.../zn/),

где:

yi при /yi/ , 2

zi =

0,5 в противном случае Массив Z вывести на экран.

Вариант 6. Даны два массива Х(х1, х2, ..., хn) и Y(y1, y2, ...,yn). Вы-

яснить, верно ли, что среди точек (хi, yi), i=1,..., n есть хотя бы одна, принадлежащая квадрату, стороны которого параллельны координатным осям, центр совпадает с началом координат, а длина стороны равна 1.

Вариант 7. В заданном массиве А (а1, а2,...,аn) подсчитать количество положительных, отрицательных и нулевых элементов.

Вариант 8. Дан массив целых чисел Х(х1, х2,...,хn). Переписать подряд в массив У элементы массива Х с четными индексами, а в массив Z – элементы массива Х с нечетными индексами. Вывести массивы Х, У, Z на экран.

6

Вариант 9. В массиве А (а1, а2,...,аn) все отрицательные члены увеличить на 0,5, а все неотрицательные заменить на 0,1. Вывести на экран исходный массив А (а1, а2,...,аn) и преобразованный массив.

Вариант 10. Дан массив X (x1, x2, …, xn). Вычислить и запомнить элементы массива Y (y1, y2,…, yn).

xi, если хi>0; yi = 0, если хi=0;

-1, если xi<0.

Вывести на экран оба массива.

Вариант 11. Вычислить и запомнить значения функции z (xi2 1)/i , где хi – элементы массива X (х1, х2,...,хn). Массив Z (z1,

z2,...,zn) вывести на экран.

Вариант 12. Для массива А (а1 2, ...,аn), имеющего положительные и отрицательные элементы, вычислить среднее арифметическое положительных элементов. (Количество положительных элементов необходимо сосчитать.)

Вариант 13. Для массива А (а1, а2, ...,аn) найти наибольший элемент; заменить (нормировать) все элементы массива, поделив их значения на значение наибольшего элемента. Вывести на экран преобразованный массив.

Вариант 14. Для массива А (а1, а2, ...,аn) найти наибольший элемент; заменить его значением суммы элементов, предшествующих ему. (Необходимо отыскать индекс наибольшего элемента.) Вывести на экран преобразованный массив.

Вариант 15. Для массива А (а1, а2, ...,аn) найти наименьший из положительных элементов и его порядковый номер.

Задание B

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

Количество строк m, количество столбцов n и другие необходимые переменные ввести с помощью оператора ввода input (QВasic), функции InputBox либо с помощью элемента управления – текстового окна TextBox (VBA).

Варианты заданий В

Вариант 0. В матрице размером m × n найти сумму элементов j-го столбца и сумму элементов i-й строки, лежащих в пределах от -1 до 2. Параметры m, n, i, j вводятся.

Вариант 1. В матрице размером 10×15 заменить все отрицательные элементы на нули. Вывести исходную матрицу и расчетную, снабдив их заголовками: МАТРИЦА ИСХОДНАЯ и МАТРИЦА РАСЧЕТНАЯ.

7

Вариант 2. В матрице размером m × n найти максимальное число и его координаты (номер строки и номер столбца).

Вариант 3. В матрице размером m × n найти минимальное число и его координаты (номер строки и номер столбца).

Вариант 4. В матрице размером m × n найти все числа, лежащие в интервале [a, b]. Вывести эти числа и их координаты (номер строки и номер столбца). Значения переменных a и b вводятся.

Вариант 5. Вывести таблицу Пифагора в виде матрицы 10 × 10. Каждый элемент матрицы в таблице Пифагора вычисляется по формуле а= i j.

Вариант 6. Вычислить вектор S, компоненты которого являются суммами элементов четных строк матрицы m × n.

Вариант 7. Вычислить вектор S, компоненты которого являются произведениями элементов нечетных столбцов матрицы m × n.

Вариант 8. Для матрицы размером m × n вычислить среднее арифметическое каждой строки.

Вариант 9. Найти сумму элементов матрицы A размером m × n, превышающих некоторое число В (удовлетворяющее условию аij > В). Значение переменной В вводится.

Вариант 10. Найти сумму элементов матрицы размером m × n, значения которых лежат в интервале [a, b]. Значения переменных a и b вводятся.

Вариант 11. Определить координаты (номер строки и номер столбца) элементов матрицы размером m × n, удовлетворяющих условию аij > В. Значение переменной В вводится.

Вариант 12. Вычислить вектор S, компоненты которого являются суммами элементов столбцов матрицы размером m × n.

Вариант 13. Вычислить вектор S, компоненты которого являются суммами элементов строк матрицы размером m × n.

Вариант 14. Для матрицы A размером m × n вычислить среднее арифметическое всех элементов, удовлетворяющих условию aij> С. Значение переменной С вводится.

Вариант 15. Для матрицы A размером m × n вычислить среднее арифметическое каждого столбца.

Методические указания к выполнению задания А

Определение массива

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

8

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

Таким образом, массив – это упорядоченная последовательность переменных одного типа, т.е. группа символьных или числовых данных, объединенная общим именем переменной. Имя (идентификатор), присвоенное массиву, должно удовлетворять правилам для имен переменных.

Массивы служат для представления многомерных математических структур: одномерный массив – вектор, двумерный массив – матрица.

Обращение к элементам массива

Отдельные величины, образующие массив, называются элементами массива. Для хранения элементов массива отводятся последовательно расположенные поля памяти.

Обработка массивов сводится к действиям с элементами массивов. Чтобы указать, какой элемент в данный момент используется, нужно задать его порядковый номер (индекс массива), который пишется рядом с именем соответствующего массива в круглых скобках. Например: A(2), B(2,3). Таким образом, элементы массива обозначаются переменной с индексами.

Вдвумерном массиве первый индекс всегда обозначает номер строки матрицы, а второй – номер столбца.

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

Таким образом, для обращения к конкретному элементу массива необходимо указать имя массива и значения индексов.

Элемент массива может быть использован в операторе или в выражении в любом месте, где можно использовать символьную или числовую переменную.

Перед запуском программы все элементы всех числовых массивов устанавливаются равными нулю. Элементам символьных массивов присваивается значение пустой строки ("").

Если программа перезапускается вновь, значения числовых массивов устанавливаются в ноль, а символьных – в пустые строки.

Описание массива

Массив характеризуется:

идентификатором (именем);

числом измерений (индексов);

числом переменных в каждом измерении (верхней границей каждого индекса).

9

Эти параметры массива должны быть указаны в любом месте программы до первого оператора, использующего соответствующую индексную переменную. Однако чаще всего все описания объединяются в начале программы. Информация о параметрах массива нужна для резервирования необходимого объема памяти для хранения числовых значений элементов массива.

Информация о параметрах массива задается в объявлении массива.

Объявление массива производится аналогично объявлению переменных, необходимо только дополнительно указать диапазон изменения индексов:

Синтаксис:

DIM Имя_Массива (индексы) [AS тип] [,Имя_Массива (индексы) AS тип]...

Имя_Массива – имя массива, удовлетворяющее стандартным правилам именования переменных.

Индексы – список, определяющий размерность массива следующим образом:

[низ To] верх [,[низ To] верх]...

Низ – Нижняя граница индекса массива. По умолчанию нижняя граница индекса равна нулю. В этом случае говорят, что 0 – базовый индекс.

Верх – Верхняя граница.

Тип – описывает тип данных массива или переменной. Минимальное значение каждого индекса по умолчанию равно 0 до

тех пор, пока ему не будет присвоено другое значение с помощью команды

Option Base.

Оператор Option Base устанавливает нижнюю границу индекса массива, принимаемую по умолчанию.

Синтаксис:

Option Base {0 | 1}

Предложение To в операторе Dim предоставляет более удобный способ установки нижней границы.

Option Base устанавливает значение индекса для первого элемента массива.

Рассмотрим примеры объявления массивов. Оператор

Dim A(9) As Integer

объявляет одномерный массив с именем A целого типа, содержащий

10 элементов. Эти элементы – A(0), A(1), ..., A(9).

Но если этот оператор следует после Option Base 1, то в этом случае оператор

Dim A(9) As Integer

объявляет одномерный массив с именем A целого типа, содержащий не 10 элементов, а 9, так как в этом случае нижняя граница индекса равна 1.

Эти элементы – A(1), ..., A(9).

10