- •Глава 7. Основы алгоритмизации и программирования 114
- •Глава 8. Базы данных и система управления базами данных 171
- •Глава 9. Компьютерные сети 224
- •9.1. Терминология 224
- •Глава 10. Вопросы компьютерной безопасности 260
- •Введение
- •Глава 1. Терминология. Краткая история развития информатики. Системы счисления. Представление различных видов данных в эвм
- •1.1. Терминология
- •1.2.1. Единицы количества информации (объемный подход)
- •1.2.Краткая история развития информатики
- •1.3. Системы счисления
- •1.3.1. Позиционные системы счисления
- •1.4. Представление различных видов данных в эвм
- •1.4.1. Кодирование текстовых данных
- •1.4.2. Кодирование графических данных
- •1.4.3. Кодирование звуковой информации
- •Глава 2. Общие принципы построения эвм
- •2.1.Функциональные блоки эвм
- •2.2. Классическая структура эвм
- •2.3. Структура современных эвм
- •2.3.1. Режим прямого доступа к памяти
- •2.3.2. Основной цикл работы эвм
- •2.4. Основные команды эвм
- •2.4.1. Команды для работы с подпрограммами. Стеки
- •Глава 3. Устройство персонального компьютера
- •3.1. Печатная (материнская) плата
- •3.2. Процессор
- •3.3. Назначение и виды памяти
- •3.3.1.Оперативная память
- •Классификация оперативной памяти по способу реализации
- •3.3.2. Энергонезависимая электронная память
- •3.4. Внешние устройства пк
- •1. Устройства ввода
- •Глава 4. Программное обеспечение пк
- •4.1. Системное по
- •4.1.1. Компьютерные вирусы и антивирусные программные средства
- •4.2. Прикладное по
- •Глава 5. Операционные системы Функции ос пк
- •5.2. Операционная система ms dos
- •5.2.1. Работа с файлами в dos
- •5.2.2. Общие команды ms dos
- •5.2.3. Конфигурационные файлы
- •5.2.4. Организация файловой системы
- •5.3. Операционная система Windows компании Microsoft
- •5.3.1. Окно Windows
- •5.3.2. Программа Проводник
- •Глава 6. Основы работы с прикладными программами пакета Microsoft Office
- •6.1. Текстовый редактор Microsoft Word
- •6.1.1. Интерфейс приложений
- •6.1.2.Режимы отображения документа
- •6.1.3.Создание документа
- •6.1.4. Сохранение документа
- •6.1.5. Открытие документа
- •6.1.6.Ввод текста
- •6.1.7. Специальные средства ввода и редактирования текста
- •Специальные средства редактирования текста
- •6.1.8. Форматирование текста
- •6.1.9. Приемы и средства автоматизации форматирования
- •6.1.10. Работа с таблицами
- •6.1.11.Управление сменой страниц
- •6.1.12. Разделы
- •6.2. Электронные таблицы Excel
- •6.2.1. Особенности интерфейса
- •6.2.2. Виды вводимых данных
- •6.2.3. Ввод данных в ячейку и редактирование
- •6.2.4. Ввод рядов данных
- •6.2.5. Проверка орфографии
- •6.2.6. Форматирование рабочего листа
- •6.2.7. Использование и создание формул
- •6.2.8. Параметры страницы
- •6.2.9. Анализ данных с помощью сводных таблиц
- •6.2.10. Создание диаграмм и графиков
- •6.2.11. Управление данными
- •Глава 7. Основы алгоритмизации и программирования
- •7.1. Этапы решения задачи на эвм
- •7.2. Алгоритм и его свойства
- •7.2.1. Способы описания алгоритмов
- •7.2.2. Основные графические элементы блок-схем
- •Элементы блок-схем
- •7.3. Структурный подход к программированию
- •7.4. Языки программирования
- •7.5. Основные языки высокого уровня
- •7.6. Общее описание языка QuickBasic
- •7.6.1. Назначение и основные особенности языка
- •7.6.2. Алфавит языка
- •7.6.3. Данные. Виды данных
- •Числовые данные
- •Типы числовых констант
- •Переменные
- •7.6.4. Встроенные математические функции
- •Стандартные математические функции qbasic
- •Арифметические выражения
- •7.6.5. Основные операторы языка qbasic
- •7.6.5.1. Операторы для реализации линейной программы
- •7.6.5.2. Операторы для разветвляющихся вычислительных процессов
- •7.6.5.3. Операторы циклических алгоритмов
- •Операторы описания массивов
- •7.6.5.5. Подпрограммы и функции
- •Передача аргументов по значению
- •7.6.5.6. Операторы и функции обработки символьной информации
- •Передача аргументов по ссылке
- •7.6.5.7. Графические возможности qbasic
- •7.6.5.8. Звуковые средства языка qbasic
- •Глава 8. Базы данных и система управления базами данных
- •8.1. Базы данных и информационные системы
- •8.2. Архитектура информационной системы
- •8.3. Терминология баз данных
- •8.3.1. Виды взаимосвязей между объектами предметной области
- •8.4. Трехуровневая модель бд
- •8.5. Модели организации данных
- •8.5.1. Иерархическая модель данных
- •8.5.2. Сетевая модель данных
- •8.5.3. Реляционная модель данных
- •8.5. 4. Фундаментальные свойства отношений
- •8.6. Операции над данными в реляционной модели
- •8.7. Нормализация отношений
- •8.8. Системы управления базами данных
- •Функции субд
- •Централизованные и распределенные бд
- •8.9. Субд microsoft access
- •8.9.1. Структура окна Access
- •8.9.2. Создание таблиц
- •Операции с таблицами
- •8.9.3. Создание связей между таблицами
- •8.9.4. Формы
- •8.9.5. Сортировка и фильтрация данных
- •8.9.6. Запросы
- •8.9.7. Отчеты
- •Глава 9. Компьютерные сети
- •9.1. Терминология
- •9.2. Классификация сетей
- •9.3. Топология сетей
- •9.3.1 Шина
- •9.3.2. Звезда
- •9.3.3. Кольцо
- •9.4. Сетевые технические средства
- •9.4.1. Физическая среда передачи данных в лвс
- •9.4.2. Организация модемной связи
- •9.5. Сетевые программные средства
- •9.6. Способы коммутации компьютеров и виды сетей
- •9.6.1. Способы коммутации и передачи данных
- •9.6.2. Локальная вычислительная сеть (лвс)
- •9.6.3. Архитектура сети
- •9.6.4. Типы лвс
- •Одноранговые лвс
- •Лвс с выделенным сервером (иерархические)
- •9.7. Модель сетевой архитектуры iso/osi
- •Архитектура модели
- •Взаимодействие уровней модели osi
- •9.8. Общая характеристика сети Internet
- •9.8.1. История
- •9.8.2. Протокол tcp (Transmission Control Protocol)
- •9.8.3. Ip (Internet Protocol) – протокол межсетевого взаимодействия
- •9.8.4. Доменное имя
- •9.8.5. Понятие гипертекста и гиперссылки
- •9.8.6. Унифицированный указатель ресурса (url – Uniformed Resource Locator)
- •9.8. 7. Службы Интернета
- •Электронная почта
- •Сетевые новости, или телеконференции
- •Списки рассылки (Mail List)
- •Служба передачи файлов
- •Служба www
- •Служба icq
- •Поисковые системы
- •Глава 10. Вопросы компьютерной безопасности
- •10.1. Понятие о компьютерной безопасности
- •10.1.1. Компьютерные вирусы
- •Программные средства антивирусной защиты
- •10. 2. Защита информации в Интернете
- •10.2.1. Понятие о шифровании данных и электронной цифровой подписи
- •Алгоритмы с симметричным шифрованием
- •Алгоритмы с асимметричным шифрованием
- •Комбинированный метод шифрования
- •Электронная цифровая подпись
- •Идентификация и аутентификация
- •Средства эцп
- •Библиографический список
7.6.5.5. Подпрограммы и функции
В QBASIC повторяющиеся вычислительные алгоритмы могут быть организованы в основном модуле в виде многострочных функций, задаваемых оператором DEF FN, оператором-функцией типа FUNCTION, подпрограммами GOSUB и SUB. Такой подход позволяет разбить программу на логические части, каждая из которых может быть отлажена отдельно.
Подпрограмма (оператор-функция)- участок программы, оформленный определенным образом, к которому можно обращаться из разных точек программы любое число раз.
При выполнении операторов-функций возвращается единственный результат, который присваивается имени функции. При использовании подпрограмм возможно получение нескольких результатов, значения которых могут быть возвращены через список переменных.
Основные отличия используемых в QBASIC функций и подпрограмм представлены в таблицах 7.4 и 7.5. Функция FUNCTION и подпрограмма SUB являются более мощными альтернативами, их использование лучше соответствует принципам структурного программирования и поэтому наиболее предпочтительно.
Таблица 7.4
Отличия между FUNCTION и DEF FN
FUNCTION |
DEF FN |
Все переменные по умолчанию локальные, ряд переменных можно объявить общими. |
Все переменные по умолчанию глобальные. Ряд переменных можно объявить локальными. |
Переменные передаются в процедуру по ссылке или по значению. Значение переменной, переданной по ссылке, можно изменить в процедуре. |
Переменные передаются в функцию DEF FN по значению. |
Может вызываться рекурсивно. |
Нельзя вызывать рекурсивно. |
Процедуру FUNCTION можно объявить в одном модуле, а вызывать в других модулях. |
Функция DEF FN должна быть определена и вызвана в том же самом модуле. |
Имя процедуры FUNCTION может быть любым, но не начинаться с FN. |
Имя функции DEF FN всегда начинается с FN. |
Таблица 7.5
Отличия между подпрограммами SUB и GOSUB
SUB |
GOSUB |
По умолчанию все переменные процедуры локальные. |
Все переменные глобальные. |
Процедура может быть определена в одном модуле, а вызываться из других модулей. |
Подпрограмма должна быть определена и использована в том же модуле. |
Процедура может вызываться любое число раз с разным набором передаваемых аргументов. |
Подпрограмма может вызываться любое число раз. Передача параметров организуется оператором присваивания. |
Определение нестандартной функции DEF FN
Формат определения нестандартной однострочной функции:
DEF FNимя [(список параметров)] = выражение
где: имя вместе с FN задает имя функции; список параметров состоит из идентификаторов, разделенных запятыми; выражение определяет вычисляемое значение функции.
В многострочных функциях для вычисления значения функции можно задать несколько операторов.
Формат определения нестандартной многострочной функции:
DEF FNимя [(список параметров)]
блок_операторов
FNимя = выражение
[EXIT DEF]
END DEF
Для возврата из функции служит оператор EXIT DEF. До его выполнения имени функции должно быть присвоено возвращаемое значение. Если оператор EXIT DEF не задан, то возврат из функции выполнит оператор END DEF.
Тип функции определяется ее именем аналогично переменной: знаком типа в конце имени или неявно операторами DEFtype.
Определение функции FUNCTION
FUNCTION имя [(список параметров)] [STATIC]
блок операторов
[EXIT FUNCTION]
END FUNCTION
где: FUNCTION отмечает начало функции; имя задает имя функции, которое должно быть уникально; список параметров список переменных, разделенных запятыми. Он задает число и тип аргументов, передаваемых в функцию; STATIC определяет способ размещения локальных переменных в памяти; END FUNCTION завершает определение функции; EXIT FUNCTION возвращает управление из функции; блок операторов содержит любые операторы кроме DEF FN...END DEF, FUNCTION...END FUNCTION, SUB...END SUB, COMMON, DECLARE, DIM SHARED, OPTION BASE, TYPE...END TYPE.
Вызов FUNCTION производится путем задания ее имени и аргументов в выражении. Функция FUNCTION возвращает одно значение, которое подставляется вместо имени процедуры. Процедура FUNCTION также может возвращать значение, изменяя значения переменных, передаваемых в качестве аргумента.
Пример 1. Использование функции.
DECLARE FUNCTION TEST. RSLT $ ( ANSWER % )
Print “ В каком году Колумб открыл Америку ?”
Print “ 1) 1492 “
Print “ 2) 1528 “
Print “ 3) 1544 “
Print “ Введи номер правильного ответа “
INPUT NUMBER %
TXT $ = TEST.RSLT $ (NUMBER %)
Print TXT $
END
FUNCTION TEST.RSLT %(ANSWER %)
IF ANSWER%=1 THEN
TEST.RSLT$= “ПРАВИЛЬНО”
ELSE
TEST.RSLT$= “НЕВЕРНО”
END IF
END FUNCTION
Пример 2. Вычисление факториала.
DECLARE FUNCTION FACT (n%)
INPUT NM%
Print NM%; FACT(NM%)
END
FUNCTION FACT (n%) STATIC
IF n%>0 THEN
FACT=n%*FACT(n%-1)
ELSE
FACT=1
END IF
END FUNCTION
Оператор вызова подпрограммы GOSUB
Оператор вызова подпрограммы:
[m1] GOSUB n
где: m1 - номер строки или метка; n - номер строки заголовка подпрограммы.
n REM SUB имя п/п - заголовок подпрограммы
операторы п/п
m RETURN m2
где m2 – номер строки (метка) возврата после выхода из подпрограммы.
Одна подпрограмма может иметь несколько операторов RETURN. При этом RETURN не может использоваться для передачи управления из одной подпрограммы другой. GOSUB и RETURN должны находиться в одном модуле.
Пример. Подготовка данных для подпрограммы.
N=A(1,1): M= A(2,2)
‘ Вызов подпрограммы MAX-2
GOSUB 18
‘ Записываем результат работы подпрограммы
R=Q
‘ Готовим новые данные для подпрограммы
N=R; M= A(3,3)
‘ Вызов подпрограммы MAX-2
GOSUB 18
Y=Q
PRINT “Y=“; Y: STOP
18 REM SUB MAX-2
IF N>M THEN Q=N: GOTO 19
Q=M
19 RETURN
END
Описание подпрограммы SUB
Формат оператора:
SUB имя [(список параметров)] [STATIC]
блок операторов
[EXIT SUB ]
END SUB
где: SUB отмечает начало подпрограммы; имя задает имя подпрограммы, которое должно быть уникально; список параметров список переменных, разделенных запятыми. Он задает число и тип аргументов, передаваемых в подпрограмму; STATIC определяет способ размещения локальных переменных в памяти; END SUB завершает определение подпрограммы; EXIT SUB возвращает управление из подпрограммы; блок операторов содержит любые операторы кроме DEF FN...END DEF, FUNCTION...END FUNCTION, SUB...END SUB, COMMON, DECLARE, DIM SHARED, OPTION BASE, TYPE...END TYPE.
Вызов процедуры SUB выполняется двумя способами:
- оператором CALL, в котором задается имя процедуры и список передаваемых аргументов, который заключается в скобки, например, CALL ProcX (A, B%);
- указанием имени процедуры и ее аргументов (скобки опускаются), например, ProcX A, B%
Если использовано ключевое слово STATIC, то все локальные переменные становятся статическими, т.е. при следующем вызове подпрограммы они не будут инициализироваться вновь.
Пример 1. Использование ключевого слова STATIC
DCL SUB NUMBER ( )
REM ИСПОЛЬЗОВАНИЕ КЛЮЧЕВОГО СЛОВА STATIC
FOR TIME %=1 to 4
CALL NUMBER
NEXT TIME %
END
SUB NUMBER STATIC
NUMBER% =NUMBER% +1
PRINT NUMBER%
END SUB
Результат: (когда слово STATIC есть):
1
2
3
4
Результат: (когда слово STATIC опущено):
1
1
1
1
Пример 2. Транспонирование квадратной матрицы.
DECLARE SUB TRM (A%() ,B%())
DEFINT A-P
INPUT n%
DIM AM(n%,n%),BM(n%,n%)
IM=1
FOR i=1TO n%
FOR j=1TO n%
AM(i,j)=IM
IM= IM+ 1
NEXT j
NEXT i
CLS
‘Вывод исходной матрицы
Print “Исходная матрица”:
FOR i=TO n%
FOR j= TO n%
Print USING “# #”; AM(i,j);
NEXT j
NEXT i
‘Транспонирование матрицы
CALL TRAM(A(),B())
Print “Транспонированная матрица :”
FOR i=1TO n%
FOR j=TO n%
Print USING “# #”; ВM(i,j);
NEXT j
NEXT i
SUB TRM(A( ),B( ) )
IK = UBOUND (A)
FOR i=1 TO IK
FOR j=1 TO IK
B(j,i)= A(i,j)
NEXT j
NEXT i
END SUB
Результат: (пусть n = 4)
Исходная матрица:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Транспонированная матрица:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
Оператор DECLARE
Оператор DECLARE (DCL) используется для проверки числа и типа аргументов при вызове процедуры. Отсутствие оператора DECLARE вызывает ошибку компиляции, если вызов процедуры в программе встретился раньше ее описания, или процедура определена в другом модуле.
При сохранении программы в файл автоматически генерируется оператор DECLARE для каждой процедуры FUNCTION и SUB с ее именем и списком параметров в скобках.
Передача параметров в подпрограмму
Параметр (формальный параметр) — имя переменной в операторах определения функции или процедуры. Параметр может быть именем переменой любого типа или именем массива (только для процедуры). Массив задается именем, левой и правой скобками, в скобках указывается число размерностей.
Аргумент (фактический параметр) — константа, переменная или выражение, передаваемые в функцию или процедуру при вызове. Аргумент может быть константой, выражением, именем переменной или именем массива.
Число и тип аргументов при вызове процедуры или функции должно совпадать с числом и типом соответствующих параметров.
Массив, передаваемый процедуре, должен соответствовать параметру-массиву. Массив, задаваемый в качестве аргумента, состоит из имени, левой и правой скобки. Запрещается передавать массив при вызове функции. Элемент массива, передаваемый в качестве аргумента, должен соответствовать параметру - простой переменной и задается именем массива со списком индексов, заключенных в скобки.
Если в процедуру в качестве аргумента передаются границы изменения индексов массива, то используют функции LBOUND и UBOUND.
