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

8829

.pdf
Скачиваний:
0
Добавлен:
25.11.2023
Размер:
1.95 Mб
Скачать

D(J) = 0 For I = 0 To N

D(J) = D(J) + A(I, J)

Next I

Console.WriteLine("D({0})={1}", J, D(J))

Next J

Console.ReadLine()

End Sub

‘ Конец текста программы головного модуля

EndModule

‘ Конец программной секции, относящейся к категории программных модулей

4. Результаты работы программы представлены на рис. 5.2.

Рис. 5.2. Скриншот результатов работы программы

Порядок выполнения работы (II-III уровни)

Задание II – III уровней требует использования в программе функции FUNCTION и/или процедуры SUB. Процедуры и функции применяются для выполнения повторяющихся задач и их можно вызывать из разных частей кода, поэтому их можно использовать в качестве элементарных структурных блоков при создании приложения. Структурирование кода с помощью процедур позволяют разбить программу на отдельные логические блоки. Отлаживать такие отдельные блоки легче, чем всю программу целиком. Кроме того, процедуры, разработанные для одной программы, можно в том же виде (или после внесения

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

Процедура - это некий блок кода, который будет выполняться всякий раз при вызове этой процедуры. Каждая процедура начинается зарезервированным словом Sub и заканчивается End. Вот общий синтаксис процедуры:

Sub name [(список_аргументов)] [здесь некий код]

[Exit Sub]

[здесь тоже может быть некий код]

End Sub

Всѐ, что заключено в квадратные скобки - является необязательным. Процедура возвращает управление вызывающему коду после завершения работы оператором EndSub или Exit Sub (досрочный выход из процедуры).

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

параметру в определении процедуры

соответствует аргумент в вызове

процедуры. Аргумент

представляет

значение,

которое

передается

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

[ByVal | ByRef] varname[( )] [As type]

Здесь указаны:

способ передачи значений аргументов (ByVal – передача значения аргумента, ByRef – передача указателя на адрес памяти, по которому размещается значение или массив значений аргумента),

Varname – имя передаваемого аргумента,

As type – тип данных, в соответствии с которым можно интерпретировать переданные значения аргументов.

Пример описания процедуры показан ниже:

Sub ShowMessage(message As String)

MsgBoxmessage

EndSub

Здесь указано имя процедуры ShowMessage, содержащей один параметр с именем message, у которого тип данных String соответствует понятию текстовая строка.

Для вызова процедуры используется оператор Call. Пример вызова процедуры ShowMessage с одним параметром показан ниже:

Call ShowMessage ("Первая процедура").

Результатом выполнения такой процедуры будет вывод на экран сообщения: "Первая процедура". Здесь вызывается процедура ShowMessage, которой передаѐтся строка "Первая процедура". Фактически в процедуре происходит присвоение переменной message значения "Первая процедура". Далее происходит вызов функции MsgBox и вывод сообщения на экран. Если количество параметров, передаваемых при вызове процедуры не совпадѐт с количеством параметров в объявлении процедуры, то Visual Basic сгенерирует ошибку.

Функция - это некий блок кода, который будет возвращать значение. Этим, и только этим функции отличаются от процедур. Общий синтаксис функции:

Function имя функции (список_аргументов)] [As type] [здесь некий код] [имяфункции = выражение]

[Exit Function]

[здесь тоже может быть некий код] [имяфункции = выражение]

End Function

Пример описания функции показан ниже:

Function Square(number As Integer) As Long

Square = number * number

End Function

Вызватьфункциюможнотак:

b = Square (5).

Здесь функция Square возвращает квадрат переданного ей параметра (значение переменнойb будет равно 25).

1. Входные данные: двумерный массив A (N,M).

Выходные данные: наибольший элемент (AMAXN) в последней строке матрицы A, массив B(), элементы которого равны суммам соответствующих строк матрицы A, массив D(), элементы которого равны суммам соответствующих столбцов матрицы A.

2. Глобальная блок-схема.

Рис. 5.3. Блок-схема с использованием функций и процедур

3. Текст программы.

ModuleModule1

Заголовок программной секции, относящейся к категории программных модулей

SubMain()

Заголовок программной секции, относящейся к категории головного модуля программы

Dim N, M, I, J As Integer

DimA(,) AsSingle = {{7,-1,2,0}, {4,5,-3,1}, {-6,11,8,-4}}

Явный способ задания двумерного массива А(,) с вещественными (Single) элементами, значения которым присваиваются после символа = построчно, то есть три строки по 4 элемента в каждой

N = A.GetUpperBound(0)

Параметру N присвоено значение верхней границы 1-ой (0) размерности двумерного массива А(,)

M = A.GetUpperBound(1)

Параметру M присвоено значение верхней границы 2-ой (1) размерности двумерного массива А(,)

Console.WriteLine("N={0} M={1}", N, M) Console.WriteLine("Количествострокматрицы A равно N+1={0}", N + 1)

Console.WriteLine("Количество столбцов матрицы A равно

M+1={0}", M + 1)

‘Количество строк (K1) и столбцов (K2) матрицы A равны, соответственно, N+1 и M+1, так как стандартная нумерация элементов ведется для строк с 0 до K1-1, для столбцов – с 0

до K2-1.

 

Dim B(N), D(M) As Single

 

Dim Z As Single

 

Z = AMAXN(N, M, A)

 

‘ Осуществляется обращение к процедуре – функции

AMAXN(N,

M, A)

 

Console.WriteLine("")

 

Console.WriteLine("НАИБОЛЬШИЙ ЭЛЕМЕНТ ПОСЛЕДНЕЙ

СТРОКИ

AMAXN ={0}", Z)

 

Console.WriteLine("")

 

Console.WriteLine("МАССИВ ЗНАЧЕНИЙ СУММ СТРОК

МАТРИЦЫ

A():")

 

Call BSUM(N, M, A, B)

‘ Осуществляется обращение к процедуре BSUM(N, M, A, B)

For I = 0 To N

Console.WriteLine("B({0})={1}", I, B(I))

Next I

Console.WriteLine("")

Console.WriteLine("МАССИВЗНАЧЕНИЙСУММСТОЛБЦОВМАТРИЦЫ A():")

Call DSUM(N, M, A, D)

‘ Осуществляется обращение к процедуре DSUM(N, M, A, D)

For J = D.GetLowerBound(0) To M

Console.WriteLine("D({0})={1}", J, D(J))

Next J

Console.ReadLine()

EndSub

Function AMAXN(ByRef N As Integer, ByRef M As Integer, _ ByRef A(,) As Single) As Single

Заголовок процедуры – функции AMAXN(N, M, A), при обращении к которой все аргументы (N, M, A) передаются по ссылке (ByRef), а сама функция возвращает в качестве результата вещественное число (Single)

Dim J As Integer Dim MAX As Single

MAX = A(N, 0) For J = 0 To M

If A(N, J) > MAX Then MAX = A(N, J) NextJ

AMAXN = MAX

Осуществляется формирование результирующего значения функции AMAXN

EndFunction

окончание текста программы для процедуры – функции

Sub BSUM(ByRef N As Integer, ByRef M As Integer, _ ByRef A(,) As Single, ByRef B() As Single)

Заголовок процедуры BSUM(N, M, A, B), при обращении к которой все аргументы (N, M, A, B) передаются по ссылке

(ByRef)

Dim I, J As Integer Dim S As Single ForI = 0 ToN

S = 0

Переменной S присваивается начальное значение, равное 0.

For J = 0 To M

S = S + A(I, J)

Значение переменной S увеличивается на величину, равную значению элемента A(I, J)

NextJ B(I) = S

Элементу B(I) массива B() присваивается значение переменной S.

NextI EndSub

окончание текста программы для процедуры BSUM(N, M, A, B)

Sub DSUM(ByRef N As Integer, ByRef M As Integer, _ ByRef A(,) As Single, ByRef D() As Single)

Заголовок процедуры DSUM(N, M, A, D), при обращении к которой все аргументы (N, M, A, D) передаются по ссылке

(ByRef)

Dim I, J As Integer Dim S As Single

For J = A.GetLowerBound(1) To M S = 0

Переменной S присваивается начальное значение, равное 0.

For I = A.GetLowerBound(0) To N S = S + A(I, J)

Значение переменной S увеличивается на величину, равную значению элемента A(I, J)

NextI D(J) = S

Элементу D(I) массива D() присваивается значение переменной S.

NextJ EndSub

окончание текста программы для процедуры DSUM(N, M, A, D)

EndModule

‘ Конец программной секции, относящейся к категории программных модулей

Лабораторная работа № 4

Тема: Создание и оформление таблиц

Порядок выполнения работы

1.Введите заголовки колонок таблицы, начиная с ячейки А1. Шапка заголовков будет занимать две строки (см. рис.1.1), при необходимости используйте приемы объединения ячеек.

2.Оформите шапку заголовков таблицы по образцу, настроив ширину столбцов и высоту строк и используя приемы форматирования ячеек (перенос по словам, изменение ориентации текста); выделите текст заголовков полужирным начертанием.

 

 

Произведено

Реализовано

Остаток(шт.)

 

Ри

 

 

 

с.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.1

 

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

руб(Цена.)

Количеств о .)шт(

руб(Цена.)

Количеств о .)шт(

Сумма

Дата

.

 

 

 

 

 

изделия

 

 

 

 

 

выручки

 

 

 

 

 

 

3. З

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ап

 

 

 

 

 

 

 

 

ол

06.01.2005

Глушитель

240

480

250

450

 

 

06.01.2005

Колесо

370

150

380

150

 

 

ни

06.01.2005

Корпус

95

80

100

20

 

 

 

 

 

10.01.2005

Диск

65

60

70

55

 

 

те

10.01.2005

Маховик

90

350

98

300

 

 

ст

19.01.2005

Фланец

22

400

25

400

 

 

 

 

 

19.01.2005

Опора оси

185

430

200

380

 

 

ол

22.01.2005

Болт

17

180

18

180

 

 

 

 

 

22.01.2005

Валик

28

280

30

260

 

 

бе

 

Итого:

 

 

 

 

 

 

ц

 

 

 

 

 

 

 

 

Дата, применяя для повторяющихся данных операцию копирования; установите

формат даты по образцу на рис.1.1.

4.Заполните ячейки таблицы исходными данными (см. рис.1.1).

5.Вставьте левее столбца Датановую колонку и озаглавьте еѐ № п/п.

6.Используя операцию автоматического заполнения блока ячеек таблицы числами, пронумеруйте строки (от 1 до 9) в колонке № п/п.

7.Перед строкой с номером 8 в колонке № п/п, вставьте пустую строку и

заполните еѐ данными 19.01.2005 Труба

65

60

60. Соответственно

исправьте нумерацию строк.

8.Используя операцию «Заменить» исправьте дату 19.01.2005 на 18.01.2005.

9.Вставьте формулы для расчета Остатка и Суммы выручки.

10.Перед столбцом Остаток вставьте колонку % реализованного товара и выполните расчѐт по формуле:

произведено

(% реализованного товара)= реализовано .

11.Установите процентный формат для чисел в колонке % реализованного

товара.

12.Округлите числа в колонке % реализованного товара до целых.

13.Обрамите таблицу: внутри тонкой линией, а вокруг двойной.

14.Установите денежный формат для чисел колонок Цена и Сумма

выручки.

15.Вставьте перед таблицей новую строку; введите в ячейку А1 заголовок таблицы Производственная деятельность предприятия и разместите его по центру таблицы.

16.Оформите строчку Итого, рассчитав итоговые суммы.

17.Сравните созданную Вами таблицу с приведѐнной ниже:

Производственная деятельность предприятия

 

 

 

Произведено

Реализовано

 

.)

 

 

 

 

 

 

 

 

 

 

 

 

 

руб(Цена.)

Количество .)шт(

руб(Цена.)

Количество .)шт(

%

Остаток(шт

 

Дата

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

реализова

Сумма

 

 

 

 

 

п/п

изделия

 

 

 

 

нного

 

выручки

 

 

 

 

 

 

 

 

 

 

 

 

 

товара

 

 

 

 

 

 

 

 

 

 

 

 

1

06.01.2005

Глушитель

240,00р.

480

250,00р.

450

94%

30

112500р.

2

06.01.2005

Колесо

370,00р.

150

380,00р.

150

100%

0

57000р.

3

06.01.2005

Корпус

95,00р.

100

65,00р.

80

80%

20

5200р.

4

10.01.2005

Диск

65,00р.

60

70,00р.

55

92%

5

3850р.

5

10.01.2005

Маховик

90,00р.

350

98,00р.

300

86%

50

29400р.

6

19.01.2005

Фланец

22,00р.

400

25,00р.

400

100%

0

10000р.

7

19.01.2005

Опора оси

185,00р.

430

200,00р.

380

88%

50

76000р.

8

19.01.2005

Труба

55,00р.

60

65,00р.

60

100%

0

3900р.

9

22.01.2005

Болт

17,00р.

190

18,00р.

180

95%

10

3240р.

10

22.01.2005

Валик

28,00р.

280

30,00р.

260

93%

20

7800р.

 

 

Итого:

 

2500

 

2315

 

180

308890р.

18.Выделите ячейки A1:J14 и скопируйте их на Лист2; выделите Лист1 и

скопируйте его на Лист3. Объясните различия в результатах копирования.

19.Оформите таблицу на Листе2, используя стандартные варианты оформления таблиц, предлагаемых в автоформате.

20.Скопируйте созданную таблицу на другой лист и отобразите еѐ в режиме формул, назовите лист Формулы.

21. Сохраните результаты работы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]