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

СУБД / Информатика.Ч2_2Ed

.pdf
Скачиваний:
75
Добавлен:
09.02.2016
Размер:
1.51 Mб
Скачать

' во всех процедурах

Public x_нз, y_нз, x_кз, y_кз, dx, dy As Integer Public x_шаг, y_шаг As Integer

Public ch As ChartObject

'Объявление процедуры (подпрограммы)

Sub Оси()

'Присваивание числовых значений из текстовых полей

'глобальным переменным

x_нз = TextBox1.Value

x_шаг = TextBox2.Value

x_кз = TextBox3.Value

y_нз = TextBox4.Value

y_шаг = TextBox5.Value

y_кз = TextBox6.Value

'Объявление локальных переменных

Dim i, j, k As Integer

'Начальное значение счетчика

k = 1

' Организация цикла

For i = x_нз To x_кз Step x_шаг

'Вывод в ячейку значения по оси X

Cells(k + 1, 1).Value = i

'Увеличение на единицу значения счетчика k = k + 1

'Конец циклической конструкции по i

Next i

'Начальное значение счетчика

k = 1

' Организация цикла

For j = y_нз To y_кз Step y_шаг

'Вывод в ячейку значения по оси Y

Cells(1, k + 1).Value = j

'Увеличение на единицу значения счетчика k = k + 1

'Конец циклической конструкции по j

Next j

'Конец процедуры

End Sub

'Объявление процедуры (подпрограммы) Sub Генерация_значений()

'Объявление локальных переменных

Dim i, j, k1, k2 As Integer

31

'Начальное значение счетчика k1 = 2

'Организация цикла

For i = x_нз To x_кз Step x_шаг

'Начальное значение счетчика k2 = 2

'Организация цикла

For j = y_нз To y_кз Step y_шаг

' Вывод в ячейку вычисленного значения функции

Cells(k1, k2).Value = i ^ 2 + j ^ 2 ' Увеличение на единицу значения счетчика

k2 = k2 + 1

'Конец циклической конструкции по j

Next j

'Увеличение на единицу значения счетчика k1 = k1 + 1

'Конец циклической конструкции по i

Next i

'Вычисления общего числа строк с данными dx = k1 – 1

'Вычисление общего числа столбцов с данными dy = k2 – 1

'Конец процедуры

End Sub

'Объявление процедуры (подпрограммы) Sub Построение_диаграммы()

'Удаление с активного листа Excel ранее построенных диаграмм

ActiveSheet.ChartObjects.Delete

'Выделение на активном рабочем листе области

'построения диаграммы

ActiveSheet.Range(Cells(1, 1), Cells(dx, dy)).Select

'Добавление диаграммы на лист с указанием координат

'левого верхнего угла и правого нижнего

Set ch = ActiveSheet.ChartObjects.Add(29.25, 19.5, 270.75, 187.5)

'Установка параметров диаграммы: тип диаграммы – 3D поверхность,

'размещение данных - в колонках, отсутствие легенды и.т.д.

Application.CutCopyMode = False

ch.Chart.ChartWizard Source:=Range(Cells(1, 1), Cells(dx, dy)), _ Gallery:=xl3DSurface, Format:=1, _

PlotBy:=xlColumns, CategoryLabels:=1, _ SeriesLabels:=1, HasLegend:=False, _

32

Title:="Поверхность", _

CategoryTitle:="x", ValueTitle:="z", ExtraTitle:="y"

'Конец процедуры

End Sub

'Объявление процедуры (основной программы)

Private Sub CommandButton1_Click()

'Удаление диаграммы и очистка области построения

If Not (ch Is Nothing) Then ch.Delete

ActiveSheet.Range(Cells(1, 1), Cells(dx, dy)).Delete End If

'Вызов процедуры расчета значений по осям

Оси

'Вызов процедуры расчета значений функции Генерация_значений

'Вызов процедуры построения поверхности Построение_диаграммы

'Конец процедуры

End Sub

ЗАДАНИЕ НА ДОРАБОТКУ ПРОГРАММЫ

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

2.Выполнить усложнение программы на предмет того, чтобы пользо-

ватель

мог

выбрать для

построения одну из

трех функций:

f (x, y)

x 2

y 2 , f (x, y)

x3 y , f (x, y)

 

x 2

 

. Форма

(x 2

y 2

4)

 

 

 

 

 

пользователя должна быть представлена в виде, как показано на рис. 2.4.

33

Рис. 2.4. Форма пользователя доработанной программы

КОНТРОЛЬНЫЕ ЗАДАНИЯ

1.Такси. В такси одновременно сели три пассажира. Когда вышел первый пассажир, на счетчике было p1 рублей; когда вышел второй - р2 рублей. Сколько должен был заплатить каждый пассажир, если по окончании поездки счетчик показал р3 рублей? Плата за посадку составляет р0 рублей. Тестирование: общая сумма оплаты пассажирами должна совпадать с показанием счетчика показанием счетчика по окончании поездки.

2.Коммерция. Коммерсант, имея стартовый капитал k рублей занялся торговлей, которая ежемесячно увеличивает капитал на p%. Через сколько лет он накопит сумму S, достаточную для покупки собственного магазина? (Кончено, если он есть совсем перестанет и т.д.)

3.Селекция. Селекционер вывел новый сорт зерновой культуры и снял с опытной делянки k кг семян. Посеяв 1 кг семян, можно за сезон собрать p кг семян. Через сколько лет селекционер сможет засеять новой культурой поле площадью S га, если норма высева n кг/га?

4.Среднегодовая производительность труда. За первый год произ-

водительность труда на предприятии возросла на p1%, за второй и третий на предприятии на p2% и p3%. Найти среднегодовой прирост производительности (в %).

5.Пересекающиеся прямые. Заданы уравнения двух пересекающихся прямых на плоскости: y=k1+b1; y=k2+b2. Найти (в градусах и минутах) угол между ними, используя формулу: tg(a)=(k1-k2)/(1- k1k2).

6.«Косой» квадрат. У квадрата ABCD на плоскости известны координаты двух противоположных вершин - точек A и C. Найти координаты точек B и D.

34

7.Задача жестянщика. Из круга радиуса r вырезан прямоугольник, большая сторона которого равна a. Найти максимальный радиус круга, который можно вырезать из полученного прямоугольника?

8.Создать форму с элементами управления, представленную на рисунке.

Запрограммировать следующие действия. Нажатие кнопки CommandButton1 приводит к появлению сообщения на экране в диалоговом окне MsgBox и дублирует это сообщение с помощью метки Label1. При нажатии на кнопку CommandButton2 сообщение должно выводиться в поле TextBox1 и дублироваться в метке

Label2.

9.Создать форму с элементами управления, представленную на рисунке.

Запрограммировать следующие действия. Нажатие кнопки CommandButton1 приводит к выводу изображения в область элемента Image1, при этом, по умолчанию, изображение выводится без изменений (в режиме fmPictureSizeModeClip), что должно соответствовать выбранному переключателю OptionButton1. Когда происходит выбор переключателя OptionButton2 или OptionButton3, то происходит смена режима отображения рисунка на

35

fmPictureSizeModeStretch и fmPictureSizeModeZoom, соответствен-

но.

10.Создать форму с элементами управления, представленную на рисунке.

Запрограммировать следующие действия. Для кнопок

CommandButton1 и CommandButton2 загружаются изображения при инициализации формы UserForm1. При нажатии на кнопку с помощью меток Label1 и Label2 выводится полное имя файла рисунка.

11.Создать форму с элементами управления, представленную на рисунке.

Запрограммировать следующие действия. При активизации формы UserForm1 выводится элемент MultiPage с одной активной страницей, которая соответствует присутствию флажка в объекте CheckBox1. Когда флажок ставится для очередного объекта CheckBox для элемента MultiPage должна быть создана новая страница. И, наоборот, при снятии флажка – страница удаляется.

12.Создать форму с элементами управления, представленную на рисунке.

36

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

13.Создать форму с элементами управления, представленную на рисунке.

На форме UserForm1 размещен элемент TabStrip1, в котором изначально присутствует 5 вкладок. Запрограммировать следующие действия. Когда происходит выбор определенной вкладки, ее имя отображается как текст с помощью элемента Label1.

14.Создать форму с элементами управления, представленную на рисунке.

37

Запрограммировать следующие действия. При нажатии на кнопку CommandButton1 происходит загрузка и вывод изображения на форму UserForm1 (в качестве фонового), имя файла которого предварительно вводится в поле Text1.

ПРАКТИЧЕСКАЯ РАБОТА 3. РАЗРАБОТКА ПРОГРАММ НА

VISUAL BASIC FOR APPLICATION

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

Кроме того, для каждого разработанного алгоритма программы в отчете по лабораторной работе должна быть приведена блок-схема алгоритма (при составлении которой можно воспользоваться автофигурами текстового процессора MS Word) и программный код с подробными комментариями.

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

38

 

 

 

 

 

Таблица 3.1

Номер варианта

 

Коэффициенты сложности

 

 

1

 

2

 

3

1

1

 

31

 

61

2

2

 

32

 

62

3

3

 

33

 

63

4

4

 

34

 

64

5

5

 

35

 

65

6

6

 

36

 

66

7

7

 

37

 

67

8

8

 

38

 

68

9

9

 

39

 

69

10

10

 

40

 

70

11

11

 

41

 

71

12

12

 

42

 

72

13

13

 

43

 

73

14

14

 

44

 

74

15

15

 

45

 

75

16

16

 

46

 

76

17

17

 

47

 

77

18

18

 

48

 

78

19

19

 

49

 

79

20

20

 

50

 

80

21

21

 

51

 

81

22

22

 

52

 

82

23

23

 

53

 

83

24

24

 

54

 

84

25

25

 

55

 

85

26

26

 

56

 

86

27

27

 

57

 

87

28

28

 

58

 

88

29

29

 

59

 

89

30

30

 

60

 

90

ВЕТВЛЕНИЯ (УСЛОВНЫЕ КОНСТРУКЦИИ)

1.Заданы три числа: a , b , c . Определить, могут ли они быть сторонами треугольника, и если да, то определить его тип: равносторонний, равнобедренный, разносторонний.

Примечание: Условия существования треугольника:

a b c , b a c , c a b .

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

39

2.Как известно, число делится на 3 тогда и только тогда, когда сумма его цифр делится на 3. Проверить этот признак на примере заданного трехзначного числа.

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

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

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

4.Среди заданных целых чисел k , l , m найти пары кратных.

5.В чемпионате по футболу команде за выигрыш дается 3 очка, за проигрыш – 0, за ничью – 1. известно количество очков, полученных командой за игру. Определить результат игры и вывести на экран соответствующее слово (выигрыш, проигрыш или ничья).

6.Даны три различных целых числа. Определить какое из них (первое, второе или третье):

Самое большое; Самое маленькое;

Среднее (средним назовем число, которое больше наименьшего из данных чисел, но меньше наибольшего).

7.В некотором учебном заведении действуют следующие правила приема. Абитуриенты сдают три экзамена. Если они набирают не менее 13 баллов, то это дает право поступить на дневное отделение, от 10 до 12 – на вечернее, от 8 до 9 – на заочное; ниже 8 баллов означает отказ в приеме на учебу. Написать программу, которая в зависимости от суммы набранных баллов сообщает абитуриенту его права на поступление.

8.На ввод в программу натурального числа из диапазона [1, 25] программа выводит это число и согласованное с ним слово «книга». Например, на ввод числа 1 программа выводит «1 книга», на ввод числа 2 – «2 книги» и т.д.

9.Составить программу, которая в зависимости от порядкового номера дня недели (1, 2,…, 7) выводит на экран его название (понедельник, вторник,…, воскресенье).

10.Составить программу, которая в зависимости от порядкового номера месяца (1, 2, …, 12) выводит на экран его название (январь, февраль, …, декабрь).

11.Для каждой введенной цифры (0-9) вывести соответствующее ей название на английском языке (0 - zero, 1 - one, 2 - two…).

40

Соседние файлы в папке СУБД