- •Обзорные лекции к государственному экзамену по информатике для студентов математического факультета специальность «Математика с дополнительной специальностью «Информатика»
- •Теория и методика обучения информатике
- •1.Понятие информации. Непрерывная и дискретная формы представления информации. Количество и единицы измерения информации. Эвм как универсальное средство обработки информации.
- •2.Понятие алгоритма, его основные свойства. Исполнитель алгоритмов. Способы представления алгоритмов. Рекурсия и итерация.
- •3. Понятие объектно-ориентированного анализа, проектирования и программирования.
- •4.Понятие о системе программирования, ее основные функции и компоненты. Интерпретаторы и компиляторы. Трансляция программ.
- •5.Интерфейсные объекты: управляющие элементы, окна, диалоги. События и сообщения. Механизмы передачи и обработки сообщений в объектно-ориентированных средах.
- •Страница Dialogs
- •6.Классификация данных. Типы данных. Совместимость типов. Константы и переменные. Работа с данными статической структуры. Простые типы данных и работа с ними.
- •Целые типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Выражения
- •7. Структурированные типы данных и работа с ними
- •8.Операторы передачи управления в языках программирования.
- •9.Операторы организации циклов в языках программирования.
- •12.Графические процедуры и функции. Графические объекты.
- •1 Группа:
- •Оператор
- •Рисует эллипс, вписанный в компонент ImgGrafic и заполненный красной штриховкой.
- •2 Группа:
- •13.Алгоритмы сортировки, сравнение алгоритмов сортировки.
- •Сортировка выбором
- •Сортировка обменом (методом "пузырька")
- •Сортировка хоара
- •1.Возьмем для сортировки несколько чисел
- •2.Установим указатели на I и j. Теперь будем двигать j по направлению (влево)
- •3.Меняем местами числа, указатели, условие и направление на противоположное.
- •5.Меняем местами числа, указатели, условие и направление на противоположное.
- •7.Так делаем до тех пор, пока I не встретится с j.
- •8.Теперь разделим данный список на 2 и отсортируем их по тому же закону при помощи рекурсивной процедуры.
- •14.Последовательный и бинарный поиск, сравнение способов организации поиска.
- •15.Операционные системы (ос. Основные функции ос. Состав ос: внутренние (встроенные) и внешние (программы-утилиты). Команды ос Сетевые ос.
- •16.Прикладное программное обеспечение общего назначения. Системы обработки текстов. Системы машинной графики.
- •При наборе текста в Word 97 придерживаются следующих правил:
- •Свои параметры форматирования имеют и символы текста (шрифт): - тип (какое-либо название, например, Times New Roman, Arial и т.Д.);
- •- Начертание (обычный, полужирный, курсив, подчеркнутый).
- •17. Электронные таблицы
- •Отмена операций
- •Создание рабочей книги
- •Сохранение рабочей книги
- •Закрытие рабочей книги
- •Завершение работы с Microsoft Excel
- •Операции с листами рабочих книг
- •Установление шрифта
- •18.Прикладные инструментальные пакеты для решения задач на эвм.
- •19.Антивирусные программы. Архиваторы. Программы обслуживания дисков.
- •16. Понятие "модель". Виды моделирования. Компьютерная модель. Математические модели.
- •21. Понятие архитектуры и основные типы архитектуры эвм. Типовая схема эвм, принципы Фон-Неймана. Оперативная память, центральный процессор эвм.
- •22. Периферийные устройства персонального компьютера
- •23. Компьютерные сети.
- •24. Интернет как технология и информационный ресурс (сеть). Технология электронной почты. Технология обмена файлами (ftp). Технология www. Поиск информации в Интернет.
- •25.Язык html как средство создания информационных ресурсов Интернет.
- •Список базовых тэгов html
- •Добавление стилей в html-документ
- •26.Понятие мультимедиа. Создание мультимедийных приложений.
- •Видео и анимация.
- •27.Основные направления исследований в области искусственного интеллекта. Представление знаний в иис.Понятие об экспертной системе.
- •29.Информационные модели данных: реляционные, иерархические, сетевые. Последовательность создания информационной модели. Взаимосвязи в модели.
- •30.Проектирование баз данных. Определение взаимосвязи между элементами баз данных. Ключи атрибутов данных. Приведение модели к требуемому уровню нормальной формы.
- •I этап. Постановка задачи.
- •II этап. Анализ объекта.
- •III этап. Синтез модели.
- •IV этап. Выбор способов представления информации и программного инструментария.
- •V этап. Синтез компьютерной модели объекта.
- •VI этап. Работа с созданной базой данных.
- •1. Информатика в средней школе. Цели и задачи обучения информатике в школе. Структура обучения информатике в средней общеобразовательной школе. Стандарт школьного образования по информатике.
- •Образовательный стандарт основного общего образования по информатике и информационным технологиям
- •Обязательный минимум содержания основных образовательных программ
- •Требования к уровню подготовки выпускников
- •2. Анализ учебных и методических пособий. Программное обеспечение по курсу информатики.
- •3.Педагогическая функция курса информатики
- •4.Методика введения понятия "Графическая оболочка Windows"
- •Этап работы с готовыми документами
- •Этап построения новых документов
- •5.Методика введения понятия "Компьютер"
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •7.Методика введения понятия «Графические методы»
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •8.Методика введения понятия “Процедуры”
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •9.Методика введения понятия “Команда выбора if”
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •10.Методика введения понятия «Классы»
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •11.Методика введения понятия «Наследование классов»
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •12.Методика введения понятия “Полиморфизм ”
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •13.Методика введения понятия “Команда выбора case”
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •Проект «График функции в полярной системе координат»
- •Проект «Обучение английскому»
- •3 Этап Составление программ
- •17.Методика введения понятия “Цикл while”
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •18.Методика введения понятия “Строки”
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •Количество символов
- •3 Этап Составление программ
- •19. Методика введение понятия о табличной величине и способах обработки табличной информации
- •1 Этап Подготовительный
- •5.Вывод данных из массива в объект:
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •20. Методика введение понятия о методах сортировки табличной информации
- •1 Этап Подготовительный
- •Сортировка обменом (методом "пузырька")
- •Сортировка выбором
- •2 Этап Работа с готовыми программами
- •3 Этап Составление программ
- •21.Методика введения понятия “Файлы”
- •1 Этап Подготовительный
- •2 Этап Работа с готовыми программами
- •Грибник Нарисовать путь грибника по координатам
- •3 Этап Составление программ
- •22.Методика введения понятия «Технология обработки текстовой информации» Подготовительный этап
- •Этап работы с готовыми текстами
- •Этап построения новых текстов
- •23. Методика введения понятия «Технология обработки графической информации» Подготовительный этап
- •Этап работы с готовыми рисунками
- •Этап построения новых рисунков
- •24. Методика введения понятия «Технология обработки числовой информации» Подготовительный этап
- •Этап работы с готовыми таблицами
- •Этап построения новых таблиц
- •25. Методика введения понятия «Технология хранения, поиска и сортировки информации» Подготовительный этап Виды баз данных
- •Виды структур баз данных
- •Этап работы с готовыми таблицами
- •Запросы
- •2.Создание отчетов
- •26.Методика введения понятия “Компьютерные коммуникации”
- •27.Методика введения понятия “Мультимедийные технологии”
- •28. Применение средств информационных и коммуникационных технологий (икт) в образовании
- •29.Организация контроля знаний учащихся с применением средств икт.
- •Критерии отбора материала для тестовых заданий
- •30.Особенности дистанционного обучения.
9.Операторы организации циклов в языках программирования.
Turbo Pascal
Оператор цикла repeat организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения. Структура этого оператора следующая:
repeat
<Инструкция1>;
<Инструкция2>;
. . .
<ИнструкцияN>;
until <Условие>
Оператор цикла while организует выполнение одного (в том числе и составного) оператора неизвестное заранее число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность этого выражения проверяется в начале каждой итерации, тело цикла может не выполнятся ни разу. Структура этого цикла имеет вид:
while <Условие> do
<Инструкция>;
Оператор цикла for организует выполнение одного оператора (в т.ч. и составного) заранее известное число раз. Существует два варианта этого оператора:
for <Параметр>:=<Нач_значение> to <Кон_значение> do
<Инструкция>;
и
for <Параметр>:=<Нач_значение> downto <Кон_значение> do
<Инструкция>;
Параметр – число целое.
Цикл действует следующим образом. Первоначально вычисляются и запоминаются начальное и конечное значение параметра цикла. Затем значение параметра сравнивается с конечным значением. Далее, пока значение параметра меньше или равно конечному значению (в первом варианте оператора) или больше или равен конечному значению (во втором варианте), выполняется очередная итерация цикла, после чего значение параметра увеличивается (в первом варианте) или уменьшается (во втором) на единицу. Следующий пример иллюстрирует использование циклов:
for i:=1 to 10 do
WriteLn ('Эта строка будет напечатана 10 раз');
for i:=1 to 10 do begin
for j:=1 to 10 do begin
WriteLn ('А эта - 100 раз');
end
end
Visual Basic
Средства организации циклов используются, когда одно и тоже множество шагов должно быть выполнено много раз. Обычно вводится некоторый счётчик, который указывает, сколько раз должен быть выполнен цикл, или производится специальная проверка каждый раз после завершения множества шагов с целью принятия решения о необходимости выполнения этих шагов ещё раз.
Оператор For…Next
Конструкция For…Next использует счетчик цикла, её синтаксис выглядит следующим образом:
For Счётчик = Начальное значение To Конечное значение [Step шаг]
Операторы
Next [Счётчик]
В начале выполнения цикла значение Счётчик устанавливается в Начальное значение. При каждом проходе переменная Счётчик увеличивается на 1 или на величину шаг. Если она достигает или становиться больше (меньше, при отрицательном шаге) Конечное значение, то цикл завершается и выполняются следующие операторы. Разность между начальным и конечным значением, делённая на величину шага, составляет число проходов.
Пример 1:
For Count = 1 To Number_of_members
Print Letter ()
Next Count
В этом примере в цикле производится печать письма для значений Count от 1 до Number_of_members. При каждом прохождении цикла значение Count автоматически увеличивается. Величина шаг определяется значением, указанным после ключевого слова Step (шаг). По умолчанию шаг приращения равен 1.
For Count = 0 To 10 Step 2
Print Count
Next Count
В примере в окне сообщений будут появляться значения 0,2,4,6,8,10. Процесс заканчивается, когда значение Count превысит конечное значение (в данном случае 10). Значение шага может быть также отрицательным, в этом случае текущее значение счётчика в конце каждого цикла будет уменьшаться.
Пример 2:
(General) (Declaration)
Dim aArray (1997 To 2050)
Private Sub Command_Click()
For I = Lbound(aArray) To Ubound(aArray)
Print aArray (I)
Next I
End Sub
В этом примере выводится всё содержимое массива. Для безусловного вывода из цикла используется оператор Exit For
Пример 3:
For Count = 1 To Number_of_members
Error = Print Letter ()
If Error = true Then
Exit For
End If
Next Count
Оператор Do While
Конструкция Do…Loop позволяет выполнять блок кода, пока удовлетворяется некоторое условие. В зависимости от позиции условия различают два варианта цикла Do…Loop.
Цикл, управляемый в начале
Do [{While / Until} Условие]
[Операторы]
[Exit Do]
[Операторы]
Loop
Цикл, управляемый в конце
Do
[Операторы]
[Exit Do]
[Операторы]
Loop [{While / Until} Условие]
Если условие проверяется в начале цикла, то он никогда не выполняется в случае невыполнения условия. Если же проверка происходит в конце, цикл выполняется как минимум один раз, независимо от того. выполнено условие или нет. Тело цикла выполняется неопределённое число раз, пока условие не вызовет выход из цикла:
Пример 1
Do Until EOF ()
Input # 1, SomeDate
Loop
Пример 2
Do
X = X + 1
Print "Hello"
Loop While X < 9
Рассмотренные варианты циклов Do…Loop предоставляют разработчику большие возможности организации повторяющихся вычислений.
Оператор While…Wend
Цикл While…Wend функционально аналогичен форме Do While…Loop оператора цикла Do…Loop и похожа по синтаксису на конструкцию циклов While в других языках программирования. Для цикла While…Wend не может применяться оператор досрочного выхода Exit Do. Данный оператор цикла используется только для совместимости с другими диалектами Basic, а также для совместимости с более ранними версиями Visual Basic, в которых не было оператора Do…Loop.
Пример: Count = 0
While Count < Number_of_members
Print Letter ()
Count = Count + 1
Wend
Оператор безусловного перехода GOTO Metka применять не рекомендуется.
10.Процедуры в языках программирования. Способы передачи параметров в процедуры.
В языке Pascal имеется две разновидности подпрограмм - процедуры и функции. Структура любой подпрограммы аналогична структуре всей программы. Подпрограмма должна быть описана до того, как она будет использована в программе или другой подпрограмме.
Все параметры подпрограмм можно разделить на локальные (т.е. доступные только ей самой) и глобальные (доступные как подпрограмме, так и вызывающей её программе). Обмен данными с подпрограммой осуществляется только с помощью глобальных параметров.
Процедура
Подпрограмма-процедура предназначена для выполнения какой-то законченной последовательности действий. Структура любой процедуры такова:
Procedure Имя (Список формальных параметров);
label
const Описание локальных меток,
type констант, типов и переменных
var
procedure Описание внутренних процедур
function и функций
begin
Операторы
end;
Для вызова процедуры из основной программы следует записать оператор, состоящий из имени процедуры и списка параметров процедуры, указываемого в круглых скобках. Если, например, процедура MyProc была объявлена так:
procedure MyProc (i : Integer; s : String);
<Тело_процедуры>;
то вызывать её следует так:
MyProc (5, 'SomeString');
Visual Basic
Процедуры
Синтаксически процедура определяется
[Private | Public] [Static] Sub имя процедуры (список аргументов)
[Exit Sub] [операторы]
End Sub
где Private, Public, Static, Sub, Exit Sub, End Sub - ключевые слова. Sub определяет обязательный первый оператор процедуры. End Sub - обязательный последний оператор процедуры;
имя процедуры образуется в соответствии с общими правилами образования имен, но не может иметь описателей типа (имя процедуры не принимает значения);
список аргументов имеет следующий синтаксис:
[Optional] [ByVal | ByRef] [ParamArray] имя [As тип] где Optional, ByVal, ByRef, ParamArray и As ключевые слова;
имя — имя переменной, массива (в случае массива используется имя ( ) без указания границ значения индексов, что позволяет использовать одну процедуру для разного числа элементов массива в каждом конкретном случае), элемента управления или формы (в последних двух случаях тип принимает значения Control и Form).
Тип может быть Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (только переменной длины). Variant, пользовательский тип или Control и Form. As тип необходимо применять для каждого аргумента.
Список аргументов определяет связь по данным между вызывающей (процедура, из которой происходит вызов) и вызываемой (процедура, которая вызывается) процедурами. Локальные данные, определенные внутри процедуры (кроме тех, что определены в списке general для форм), не могут использоваться в других процедурах (например, переменные с одинаковыми именами, но объявленные в разных процедурах, хранятся в разных ячейках памяти и изменение переменной в одной из процедур не ведет к изменению одноименной переменной в другой процедуре). Процедуры, относящиеся к форме, но не являющиеся процедурами обработки событий, помещаются в раздел general формы.
Процедура не может быть определена внутри какой-либо процедуры или функции.
Пример процедуры вычисления площади прямоугольника по заданным значениям сторон:
Sub SubDemo (RLen, Rwid) ' 'заголовок процедуры
‘SubDemo с двумя аргументами-
‘R1en-длина и Rwid-ширина
Dim Area 'объявление локальной переменной Area = RLen * Rwid ' расчет площади MsgBox “Площадь равна” & Area “печать результата End-Sub
Exit Sub вызывает прекращение выполнения процедуры и выход из нее в вызывающую программу.
Static определяет, что локальные данные (переменные, массивы), определенные внутри процедуры (переменная Area в примере), сохраняются в промежутках между вызовами данной процедуры. Определение Static не распространяется на данные, которые объявлены вне данной процедуры, но используются в ней (т.е. эти данные будут изменяться независимо от определения Static). Нельзя использовать при рекурсивном вызове процедуры.
Private определяет, что процедура может быть вызвана (доступна) только ц том модуле, в котором она объявлена (никакие другие процедуры в других модулях не могут вызвать данную процедуру). Определение Private не имеет смысла, если процедура определена для какой-либо формы (в этом случае процедура недоступна из вне данной формы).
Public определяет, что процедура может быть вызвана из любого модуля приложения.
Поскольку имя процедуры определяется (глобально распознается) в рамках всех процедур всех модулей одной программы, имя процедуры не должно совпадать с другими глобально распознаваемыми именами программы. Такими глобально распознаваемыми именами являются имена других процедур Visual Basic или процедур динамически подключаемых библиотек (dynamic-link library [DLL|) и данных, объявленных как Global (см. выше).
Чтобы избежать конфликта в объявлении одних и тех же имен, можно использовать определение Private, т.е. сделать процедуру доступной только в рамках модуля. В этом случае имя процедуры не может совпадать с такими именами, объявленными на уровне модуля, как имена переменных, массивов, констант и имена других процедур данного модуля.
Optional определяет, что аргумент не является обязательным. При его использовании все последующие аргументы в списке аргументов также являются необязательными и для них также необходимо использовать данное ключевое слово. Аргументы, объявленные Optional, должны иметь тип Variant. He может использоваться для аргумента, для которого задан параметр ParamArray.
ByVal определяет, что аргумент передается в процедуру по значению.
ByRef определяет, что аргумент передается в процедуру по ссылке.
ParamArray относится к последнему аргументу в списке аргументов и определяет, что конечный (заключительный) аргумент является необязательным массивом. Не может использоваться совместно с параметрами ByVal, ByRef, Optional.
Синтаксис оператора обращения к процедуре следующий:
имя процедуры [список значений] или
Call имя процедуры [список значений]
где Call — ключевое слово;
список значений — список значений аргументов (соответствует списку аргументов в операторе Sub no количеству, порядку следования и типу, кроме случая когда используется параметр Optional).
Пример программы.
Поместим рассмотренную выше процедуру формирования вектора из сумм элементов столбцов матрицы в раздел general формы:
Option Explicit
Sub SubMatrVektor (A() As Single, B() As Single, MaxI As Integer, MaxJ As Integer)
Dim J, I As Integer
For J = 1 To MaxJ
A(J) = 0
For I = 1 To MaxI
A(J) = A(J) + B(I, J)
Next I
Next J
End Sub
Private Sub Form_Ciick()
Static X(1 To 2, 1 To 3) As Single, Y(1 To 3) As Single
X(1, 1) = 1
X(1, 2) = 2
Х(1, 3) = 3
X(2, i) = 4
Х(2, 2} = 5
Х(2, 3) = 6
SubMatrVektor Y(), X(), 2, 3
Print Y(li, Y(2), Y(3) End Sub
Результат выводится на форму.
Передача аргументов по ссылке и по значению
Передача значений аргументов при вызове процедуры или функции по ссылке означает, что передается адрес памяти, по которому хранится значение аргумента (т.е. вызываемая процедура или функция для работы с переданным по ссылке аргументом использует одну и ту же ячейку или область памяти, что и вызывающая процедура пли функция). При этом не выделяется дополнительная память для работы с переданным аргументом в вызываемой программе. Изменение значения аргумента в вызываемой процедуре или в функции означает изменение значения и в вызывающей процедуре или в функции (используется одна и та же ячейка или область памяти).
В Visual Basic передача по ссылке определена по умолчанию.
Передача значений аргументов при вызове процедуры или функции по значению (чтобы определить этот способ передачи, в списке аргументов процедур и функции для передаваемого таким образом аргумента используется ключевое слово ByVal) означает, что в вызываемом процедуре или функции выделяется для аргумента ячейка или область памяти, в которую записывается значение передаваемого аргумента.
В Turbo Pascal и Visual Basic .NET передача по значению определена по умолчанию.
Изменения значения аргумента в вызываемой процедуре или в функции не ведут к изменению аргумента в вызывающей процедуре или в функции (вызываемая процедура или функция использует для аргумента другую ячейку или область памяти аналогично локальным данным). Это удобно, если модификация данных необходима только внутри вызываемой процедуры или функции и нет необходимости передавать измененные данные обратно в вызывающую процедуру или функцию.
Вместе с тем передача по значению (выделение дополнительной памяти) приводит к неэффективному использованию памяти. В связи с этим, для строк символов и массивов нецелесообразно использовать передачу по значению.
11.Процедуры и функции в языках программирования. Способы передачи параметров в процедуры и функции.
В языке Pascal имеется две разновидности подпрограмм - процедуры и функции. Структура любой подпрограммы аналогична структуре всей программы. Подпрограмма должна быть описана до того, как она будет использована в программе или другой подпрограмме.
Все параметры подпрограмм можно разделить на локальные (т.е. доступные только ей самой) и глобальные (доступные как подпрограмме, так и вызывающей её программе). Обмен данными с подпрограммой осуществляется только с помощью глобальных параметров.
Описание функции имеет следующую структуру.
Function Имя (Список формальных параметров) : Тип результата;
label
const Описание локальных меток,
type констант, типов и переменных
var
procedure Описание внутренних процедур
function и функций
begin
Операторы, среди которых хотя бы один, который
присваивает имени функции значение результата
end.
Для вызова функции из основной программы следует записать выражение, состоящее из имени функции и списка параметров функции, указываемого в круглых скобках.
function MyFun (i : Integer; s : String) : integer;
<Тело_функции>;
то вызывать её следует так:
S:=MyFun (5, 'SomeString');
Visual Basic
Синтаксически функция определяется
[Public | Private] [Static] Function имя функции (список аргументов) [As тип]
[операторы объявления]
[операторы]
[имя функции = выражение]
[Exit Function] End Function
где Public, Static, Private, Function , Exit Function , End Function — ключевые слова. Function определяет обязательный первый оператор функции. End Function — обязательный последний оператор функции:
имя функции образуется в соответствии с общими правилами образования имен и может иметь описатель типа (As тип в конце первой строки относится к имени функции). Имя функции принимает значение и хотя бы один оператор
имя функции = выражение
может присутствовать внутри функции и выполняться при выходе из нее. Если никакое значение не присвоено имени функции, то имя функции принимает значение по умолчанию: числовая функция принимает значение 0, функция, объявленная как String, принимает значение пустой строки нулевой длины (“”), функция, объявленная как Variant принимает значение Empty (значение, которое принимает имя функции, называют возвращаемым значением функции — возвращаемое значение).
Список аргументов имеет следующий синтаксис:
[Optional] [ByVal|ByRef][ParamArray] имя [( )][As тип]
имя — имя переменной, массива (в случае массива используется имя ( ) без указания границ значения индексов, что позволяет использовать одну функцию для разного числа элементов массива в каждом конкретном случае), элемента управления или формы (в последних дйух случаях тип принимает значения Control и Form).
Тип может быть Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (только переменной длины). Variant, пользовательский тип или Control и Form. As тип необходимо применять для каждого аргумента.
Список аргументов определяет связь по данным между вызывающей (функция, из которой происходит вызов) и вызываемой (функция, которая вызывается) процедурами или функциями. Локальные данные, определенные внутри функции (кроме тех, что определены в списке general для форм), не могут использоваться в других процедурах и функциях.
Exit Function вызывает прекращение выполнения функции ц выход из нее в вызывающую программу.
Функция не может быть определена внутри какой-либо процедуры или функции.
Пример функции вычисления площади прямоугольника по заданным значениям сторон:
Function FunDemo (RLen, Rwid) As Single
'заголовок функции FunDemo с “двумя аргументами- Rlen-длина и Rwid-ширина
“тип имени функции определен как Single Dim Area ' объявление локальной
'переменной Area = RLen * Rwid ' расчет площади MsgBox “Площадь равна” & Area ' печать
'результата. FunDemo = Area 'имени функции
'присваивается вычисленное значение End Function
Используемые ключевые слова аналогичны рассмотренным выше для процедур.
Передача аргументов по ссылке и по значению
Передача значений аргументов при вызове процедуры или функции по ссылке означает, что передается адрес памяти, по которому хранится значение аргумента (т.е. вызываемая процедура или функция для работы с переданным по ссылке аргументом использует одну и ту же ячейку или область памяти, что и вызывающая процедура пли функция). При этом не выделяется дополнительная память для работы с переданным аргументом в вызываемой программе. Изменение значения аргумента в вызываемой процедуре или в функции означает изменение значения и в вызывающей процедуре или в функции (используется одна и та же ячейка или область памяти).
В Visual Basic передача по ссылке определена по умолчанию.
Передача значений аргументов при вызове процедуры или функции по значению (чтобы определить этот способ передачи, в списке аргументов процедур и функции для передаваемого таким образом аргумента используется ключевое слово ByVal) означает, что в вызываемом процедуре или функции выделяется для аргумента ячейка или область памяти, в которую записывается значение передаваемого аргумента.
В Turbo Pascal и Visual Basic .NET передача по значению определена по умолчанию.
Изменения значения аргумента в вызываемой процедуре или в функции не ведут к изменению аргумента в вызывающей процедуре или в функции (вызываемая процедура или функция использует для аргумента другую ячейку или область памяти аналогично локальным данным). Это удобно, если модификация данных необходима только внутри вызываемой процедуры или функции и нет необходимости передавать измененные данные обратно в вызывающую процедуру или функцию.
Вместе с тем передача по значению (выделение дополнительной памяти) приводит к неэффективному использованию памяти. В связи с этим, для строк символов и массивов нецелесообразно использовать передачу по значению.