Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




Занятие 21

Тема: Процедуры, определенные пользователем

 

Цели: 1. Научиться создавать процедуры пользователя в объектно-ориентированной среде программирования.

2. Использовать подпрограммы, созданные пользователем в событийных процедурах.

3. Развивать логическое мышление.

 

Актуализация:

  1. Дайте понятие термину подпрограмма.
  2. Какие бывают подпрограммы?
  3. Чем функция отличается от процедуры?
  4. Локальные и глобальные переменные.

 

Подпрограмма - это отдельная функционально независимая часть программы.

Подпрограммы решают три важные задачи:

  1. избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты;
  2. улучшают структуру программы, облегчая ее понимание;
  3. повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификациях программы.

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

  1. Когда Вы несколько раз перепишете в программе одну и ту же последовательность команд, необходимость введения подпрограммы приобретает характер острой внутренней потребности.
  2. Иногда слишком много мелочей заслоняют главное. Полезно убрать в подпрограмму подробности, скрывающие смысл основной программы.
  3. Полезно разбить длинную программу на составные части - просто как книгу разбивают на главы. При этом основная программа становится похожей на оглавление.
  4. Бывают сложные частные алгоритмы. Полезно отладить их отдельно в небольших тестирующих программах. Включение отлаженных алгоритмов в основную программу будет легким, если они оформлены как подпрограммы.
  5. Все, что Вы сделали хорошо в одной программе, Вам захочется перенести в новые. Для повторного использования таких частей лучше сразу выделять в программе полезные алгоритмы в отдельные подпрограммы.

Подпрограммы могут быть стандартными, т.е. определенными системой, и собственными, т.е. определенными программистом.

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

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

Задача: Даны две двумерные квадратные целочисленные матрицы. Найти средние арифметические значения положительных, отрицательных и всех элементов каждой из матриц. А также максимальный и минимальный элементы и сумму элементов каждой матрицы.

 

 

Public Class Form1

Dim m1(,), m2(,) As Integer

Dim n1, n2 As Integer

Private Sub inicial(ByVal m(,) As Integer, ByVal n As Integer, ByVal lab As Object)

'инициализация и вывод матрицы

Dim i, j As Integer

 

lab.text = ""

For i = 1 To n

For j = 1 To n

m(i, j) = Int(Rnd() * 20 - i - Rnd(10) * j * 0.56)

lab.Text = lab.Text + Format(m(i, j), "0 ")

Next

lab.Text = lab.Text + vbCrLf

Next

End Sub

Private Sub sredn_pol(ByVal m(,) As Integer, ByVal n As Integer, ByVal lab As Object)

'среднее арифметическое положительных элементов

Dim i, j, sum, k As Integer

Dim sr As Double

 

For i = 1 To n

For j = 1 To n

If m(i, j) > 0 Then

sum = sum + m(i, j)

k = k + 1

End If

Next

Next

sr = sum / k

lab.text = Format(sr, " 0.00 ")

End Sub

Private Sub sredn_otr(ByVal m(,) As Integer, ByVal n As Integer, ByVal lab As Object)

'среднее арифметическое отрицательных элементов

Dim i, j, sum, k As Integer

Dim sr As Double

 

For i = 1 To n

For j = 1 To n

If m(i, j) < 0 Then

sum = sum + m(i, j)

k = k + 1

End If

Next

Next

sr = sum / k

lab.text = Format(sr, " 0.00 ")

End Sub

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'матрица 1

n1 = Int(InputBox("размерность массива", "двумерный массив", "5"))

ReDim m1(0 To n1, 0 To n1)

inicial(m1, n1, Label1)

End Sub

 

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

'матрица 2

n2 = Int(InputBox("размерность массива", "двумерный массив", "4"))

ReDim m2(0 To n2, 0 To n2)

inicial(m2, n2, Label2)

End Sub

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Randomize()

End Sub

 

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

'среднее арифметич. положительных матрица 1

sredn_pol(m1, n1, Label3)

End Sub

 

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

'среднее арифметич. положительных матрица 2

sredn_pol(m2, n2, Label4)

End Sub

 

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

'среднее арифметич. отрицательных матрица 1

sredn_otr(m1, n1, Label5)

End Sub

 

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

'среднее арифметич. отрицательных матрица 2

sredn_otr(m2, n2, Label6)

End Sub

End Class

 

 

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

  1. В каких случаях целесообразно применять процедуры без параметров?
  2. Какие преимущества предоставляют подпрограммы с параметрами?
  3. Каковы правила передачи параметров-переменных?
  4. Можно ли применять в одной подпрограмме несколько параметров-переменных различных типов?

 





Поделиться с друзьями:


Дата добавления: 2015-10-19; Мы поможем в написании ваших работ!; просмотров: 524 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студенческая общага - это место, где меня научили готовить 20 блюд из макарон и 40 из доширака. А майонез - это вообще десерт. © Неизвестно
==> читать все изречения...

2316 - | 2272 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.