Подпрограммы_Basic.ppt
- Количество слайдов: 24
ИНФОРМАТИКА ПРОГРАММИРОВАНИЕ Подпрограммы: Процедуры и функции
Подпрограммы n n Понятие подпрограммы, их назначение Типы подпрограмм Типы переменных Процедуры БЕЗ параметров С параметрами Типы параметров n Функции
Подпрограммы и их назначение 1 ситуация: Когда в разных местах программы нужно выполнять один и тот же частичный алгоритм, который имеет самостоятельное значение Объект описывают один раз, а затем многократно его используют
Подпрограммы и их назначение 2 ситуация: Когда любая программа может быть разбита на ряд независимых друг от друга частей. Программа представляется в виде последовательности независимых друг от друга фрагментов – подпрограмм. Следствие: легко программировать и отлаживать программы Пример: Решение уравнений различными численными методами
Подпрограммы и их назначение Подпрограмма – самостоятельный программный объект, предназначенный для решения некоторой подзадачи, выделенной из основной решаемой задачи.
Типы подпрограмм Подпрограммы Процедуры С параметрами Без параметров Функции С параметрами Без параметров
Описание и вызов подпрограммы Подпрограмма должна быть описана до того, как она будет использоваться в проекте или другой подпрограмме.
Типы переменных
Типы переменных локальные переменные - объявленные внутри подпрограммы и доступные только ей самой (Dim), глобальные – объявленные в проекте или форме и доступные всем подпрограммам проекта или формы (Public и Private).
Описание процедуры Сл_слово Sub имя( [параметры]) Dim [Описание локальных переменных]; … [Тело процедуры] End Sub Последняя строка оформляется автоматически
Вызов процедуры … имя [(значения параметров)] …
Задача 1 Вычислить y=xn, где х – действительное число, а n – целое, большее нуля.
Задача 1 Step x, n y: =1 i: =1. . n y: =y*x y end Вычислить y=xn, где х – действительное число, а n – целое, большее нуля.
Задача 1 Step x, n y: =1 i: =1. . n y: =y*x Вычислить y=xn, где х – действительное число, а n – целое, большее нуля. Step 1 stepen 1 x, n y: =1 stepen 1 i: =1. . n y y: =y*x end y end
Задача 1 Step 1 Вычислить y=xn, где х – действительное число, а n – целое, большее нуля. stepen 1 x, n y: =1 stepen 1 i: =1. . n y y: =y*x end Private x, y As Single Private n As Integer Глобальные Private Sub stepen 1() Локальные Dim i As Integer y=1 For i = 1 To n y=y*x Next i End Sub Private Sub Command 1_Click() x = Val(Text 1. Text) n = Val(Text 2. Text) stepen 1 Label 4. Caption = Str(y) End Sub
Процедуры Без параметров Step 1 stepen 1 x, n y: =1 stepen 1 i: =1. . n y y: =y*x end Private x, y As Single Private n As Integer Глобальные Private Sub stepen 1() Локальные Dim i As Integer y=1 For i = 1 To n y=y*x Next i End Sub Private Sub Command 1_Click() x = Val(Text 1. Text) n = Val(Text 2. Text) stepen 1 Label 4. Caption = Str(y) End Sub
Процедуры Без параметров Замечания: • Не очень удобны в использовании; • Исходными данными для них могут служить только значения заданных переменных • Если переменных несколько, то необходимы переобозначения глобальных переменных. Вывод: Если снять эти ограничения, можно повысить общность процедуры и удобство ее использования
Функции Step 2 x, n y=Stepen 2(x, n) y Stepen 2(a, b) c=1 i=1. . b c=c*a end Stepen 2=c end
Параметры ФАКТИЧЕСКИЕ и ФОРМАЛЬНЫЕ параметры должны быть строго согласованы между собой по: ² количеству; ² порядку следования; ² типу.
Функции Step 2 x, n y=Stepen 2(x, n) y Stepen 2(a, b) c=1 i=1. . b c=c*a end Stepen 2=c end
Private x, y As Single Private n As Integer Функции Private Function stepen 2(By. Val a As Double, b As Integer) As Single Dim i As Integer Dim c As Single c = 1 For i = 1 To b c = c * a Next i stepen 2 = c End Function Private Sub Command 1_Click() x = Val(Text 1. Text) n = Val(Text 2. Text) y = stepen 2(x, n) Label 4. Caption = Str(y) End Sub
Задача 3 Вычислить:
Задача 3 Вычислить: начало Fact (K) ввод n, m F=1 C = Fact(n)/Fact(m)/Fact(n-m) i = 1. . K вывод С конец F = F*i Fact = F Основная программа конец Подпрограмма Fact
Задача 4 (Домашнее задание) Дано: а – действительное число не равное нулю, m – натуральное число. Вычислить: