- •Информатика
- •Оглавление
- •Введение
- •Лекция № 1Тема «Основные понятия и определения Информатики»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 2 Тема «Арифметические основы эвм»
- •Сложение
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 3 Тема «Форматы данных и машинные коды чисел»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 4Тема «Алгоритмы. Базовые алгоритмические конструкции»
- •Структурный подход к программированию
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 5Тема «Языки программирования и их классификация»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 6 Тема «Программирование на языке qbasic»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 7 Тема «Программирование на языке qbasic»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 8Тема «Программирование с использованием массивов на языке qbasic»
- •Статические и динамические массивы
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 9Тема «Создание процедур и функций на языке qbasic»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция 10 Тема «Общие принципы организации и работы современных эвм»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №11Тема «Персональный компьютер и его аппаратное обеспечение»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №12 Тема «Память пк и периферийные устройства»
- •1. Устройства ввода
- •Устройство бесперебойного питания (убп)
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №13Тема «История и классификация эвм»
- •I. Классификация по назначению:
- •II. Классификация пк по типоразмерам:
- •III. Классификация по условиям эксплуатации:
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №14 Тема «Программное обеспечение компьютеров»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 15 Тема «Программное обеспечение компьютеров»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №16Тема «Компьютерные сети»
- •Классификация компьютерных сетей
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №17Тема «Локальные вычислительные сети. Протоколы.»
- •Лвс с выделенным сервером (иерархические)
- •1. Физический уровень (Physical Layer)
- •2. Канальный уровень (Data-Link Layer)
- •3. Сетевой уровень (Network Layer)
- •4. Транспортный уровень (Transport Layer)
- •5. Сеансовый уровень (Session Layer)
- •6. Уровень представления (Presentation Layer)
- •7. Прикладной уровень (Application Layer)
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №18 Тема «Коммутация. Технологии лвс»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №19Тема «Глобальная сеть и ее службы»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №20Тема «Основные понятия базы данных»
- •Архитектура информационной системы
- •Трехуровневая модель бд
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №21Тема «Модели организации данных»
- •Модели организации данных
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №22Тема «Работа в субд MicrosoftAccess»
- •Системы управления базами данных
- •Субд microsoftaccess
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №23Тема «Работа в субд Access»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №24 Тема «Угрозы безопасности информационных систем и информационных технологий»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №25 Тема «Криптографические методы защиты информации»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
Контрольные вопросы для самоподготовки студентов
Что такое массив?
Что понимается под размерностью массива?
Что понимается под размером массива?
Каким оператором выполняется объявление массива в программе?
Как описать одномерный массив?
Как описать двумерный массив?
Объяснить назначение оператора OptionBase.
Как обратиться к элементу одномерного массива?
Как обратиться к элементу двумерного массива?
Как организовать ввод/вывод одномерного массива?
Как организовать ввод/вывод двумерного массива?
Ссылки на литературные источники, приведенные в рабочей программе дисциплины
Информатика. Базовый курс. 2-е издание/Под. Ред. С.В. Симоновича. - СПб.:Питер, 2008.-640 с.
Информатика. Моделирование.- Волгоград: НОУ ВПО ВНБ, 2009.- Саратов: Издательство «Вузовское образование», 2013.- 143 с. (электронный ресурс) режим доступа http://www.iprgookshop.ru/11320.html
Практикум по курсу “Алгоритмизация и программирование”. Часть 1: Учебное пособие / А.А. Андрианова, Т.М. Мухтарова. - Казань: Казанский государственный университет, 2008. – 95 с. (электронный ресурс) режим доступа http://window.edu.ru/resource/951/79951/files/Programming1.pdf
Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск: Изд-во Тихоокеан. гос.ун-та, 2011. – 56 с. (электронный ресурс) режим доступа http://window.edu.ru/resource/402/77402/files/alg_prog.pdf
Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, VisualBasic. – М.: Финансы и статистика, 2002. – 320 с.
Работа с массивами в языке QBASIC: Методические указания для прак. занятий/Сост. Г.А. Фролова. - Егорьевск: - ЕТИ ФГБОУ ВПО МГТУ "СТАНКИН", 2013.-24 с.(электрон. библиотека ЕТИ)
Лекция № 9Тема «Создание процедур и функций на языке qbasic»
План лекции
Понятие подпрограммы.
Функции, определяемые программистом.
Процедуры.
Передача параметров по имени и по значению.
Локальные переменные.
Оператор Declare.
Понятие подпрограммы
При создании программы ее очень удобно разбивать на небольшие независимые модули, выполняющие законченное логическое действие, например, решающее квадратное уравнение или наибольший элемент в массиве, а по окончании работы передающие управление обратно в главную программу. Если структура модуля продумана хорошо, то его потом можно повторно использовать в других приложениях, используя готовые возможности.
Такие модули в QB можно организовать двумя способами – в виде функций или процедур (и те и другие имеют общее название: подпрограммы).Отличие функций от процедур только в том, что функция в результате своей работы возвращает программе некоторое значение допустимого типа, а процедура просто выполняет последовательность операторов.
Функции, определяемые программистом
В QB довольно много готовых (стандартных) функций, которые бывают нужны для решения часто встречающихся задач. Это всевозможные математические функции, функции обработки строк. Чтобы передать функции значения, которые она должна обработать, эти значения (они называются параметрами, или аргументами) перечисляются через запятую в круглых скобках сразу после названия функции. Любую функцию можно использовать в выражении наравне с переменными.
QB позволяет программисту определить новую (собственную, пользовательскую) функцию. Для определения функции служат операторы FUNCTION и ENDFUNCTION:
FUNCTION имя [(список_формальных_параметров)] операторы [EXITFUNCTION] операторы имя = выражение END FUNCTION |
где: FUNCTION–служебное слово, определяющее заголовок подпрограммы-функции;имя - допустимое имя переменной, которое может включать один из суффиксов явного объявления типа функции (тип возвращаемого функцией значения). При отсутствии такого суффикса тип функции определяется типом переменной имя, установленным оператором DEFтип или по умолчанию; список_формальных_параметров - перечень имен для обозначения аргументов функции с указанием их типа.Имеет следующий формат:
переменная [( )] [AS тип][, переменная [( )] [AS тип]] |
Если параметр является массивом, то после имени соответствующей переменной ставятся пустые круглые скобки. Например, в следующем примере в функцию Fпередается переменная целого типа N и вещественный массив двойной точности B. Сама функция Fвозвращает результат вещественного типа, на что указывает суффикс, стоящий после имени функции #.Тип переменной может быть указан и явно.
FUNCTION F#(N%, B#()) или FUNCTION F#(N as Integer, B() as Double) |
Переменные, перечисленные в списке при описании функции, являются формальными параметрами и их имена никак не связаны с именами фактических параметров при вызове функции.
выражение - любое допустимое арифметическое, логическое или строковое выражение, соответствующее типу функции. Оно может содержать, как формальные параметры, так и любые другие переменные. Вычисленное значение выражения служит результатом, который возвращается функцией через ее имя.
Для досрочного выхода из функции может быть использован оператор
EXIT FUNCTION |
EndFunction – служебные слова, ограничивающие содержательную часть функции.
Вызов функции из вызывающегомодуля осуществляется указанием ее имени и списка фактических параметров (аргументов), заключенных в круглые скобки в правой части некоторого оператора присваивания. Количество аргументов, порядок их следования и их типы должны соответствовать списку формальных параметров в операторе FUNCTION. Если фактическим параметром является массив, то после его имени ставятся пустые круглые скобки.
Пример 1.Требуется создать пользовательскую функцию f=x2+sin(x+z).
Решение. На рис.14 приведена схема алгоритма функции, а на рис. 15 – схема алгоритма вызывающего (основного) модуля.
Рис.14 |
Рис. 15 |
Function f (x as double, z as double) f=x^2+sin(x+z) End Function |
Результат выполнения функции есть одно (скалярное) значение –значение функции на определенном наборе значений ее аргументов. В основную программу этот результат возвращается не через параметры (через имя функции), а особым образом, он не сохраняется в качестве значения какой-либо переменной и должен быть сразу использован в выражениях (как операнд в выражении).
Вычислить с помощью функции fвыражение s=f(a,b)+f(a,c)-f(c,b). Главная программа и вызов функцииf:
Cls Dim a as double, b as double, c as double Dim s as double Input “введитеa,b,c ”, a,b,c S=f(a,b)+f(a,c)-f(c,b) ‘ вызов_функции_f_в_главном_модуле Print “s=”;s |
Пример 2. Разработать функцию для поиска максимального элемента строки с номером Kв матрице B(M, N). Применить эту функцию для построения одномерного массива из максимальных элементов строк заданной матрицы A (10,5).
Решение. На рис.16 приведена схема алгоритма функции, а на рис. 17 – схема алгоритма вызывающего (основного) модуля.
Рис. 16 |
Рис. 17 |
‘ вызывающий_модуль Cls DimA(1 to 10, 1 to 5) assingle, C(1 to 10) assingle Dim i as integer, j as integer For i=1 to 10 For j=1 to 5 Print “A(;”i;”,”;j;”)=”; Input A(i, j) Next j Next i For i=1 to 10 C(i)=MaxArray(A(), 10, 5, i) Next i Cls Print “МассивА” For i=1 to 10 For j=1 to 5 Print A(i, j), Next j Next i Print “МассивС” For i=1 to 10 Print C(i); Nexti ‘ функция по поиску максимального элемента Function MaxArray (B(), M as integer, N as integer, K as integer) Dim Max as single, i as integer Max=B(K,1) For i=2 to N If B(K,i)>Max Then Max=B(K,i) Next i MaxArray=Max End Function |
Процедуры
Процедура – это основной вид программного модуля, который используется в тех случаях, когда результатом выполнения процедуры являются несколько скалярных величин или массивов.
Для определения процедуры служат операторы SUB и END SUB, имеющие следующий формат:
SUB имя [(список_формальных_параметров)] операторы [EXIT SUB] операторы END SUB |
В отличие от функции, имя процедуры не имеет типа и используется лишь для вызова процедуры. Главное отличие втом, что результаты выполнения процедуры возвращаются через ее параметры - переменные или массивы. В остальном все, сказанное о функциях, в полной мере относится и к процедурам.
Вызов процедуры из некоторой программы (процедуры) производится одним из двух способов:
с помощью оператора CALL, имеющего следующий формат:
CALL имя_процедуры [(список_фактических_параметров)] |
Например, CALL TestSub (3, K)
указанием имени процедуры в начале строки, за которым следует список параметров через запятую, но без охватывающих круглых скобок. Например,
TestSub 3, K
Количество фактических параметров, порядок их следования и тип в операторе CALL должны соответствовать списку формальных параметров в операторе SUB при описании процедуры. Если фактическим параметром является массив, то после его имени ставятся пустые круглые скобки.
В списке как формальных, так и фактических параметров исходные данные и результаты не различаются. Поэтому целесообразно исходные данные передавать по значению, а результаты возвращать по ссылке.
Передача параметров по ссылке (имени) и по значению
Передача аргументов по ссылке
По умолчанию простые переменные, массивы, элементы массивов передаются в процедуру по ссылке. Это означает следующее:
каждая переменная имеет адрес, по которому в памяти размещается ее значение;
при вызове процедуры и передаче переменной по ссылке передается адрес переменной, который становится адресом соответствующего параметра;
если процедура изменяет значение параметра, то одновременно изменяется и значение переданной переменной.
Например,
Dim A as integer, B as single A=5: B=8 CALL PROC1 (A,B) PRINT “A=”; A, ”B=”; B END SUB PROC1 (X, Y) X=Y+1: Y=X*2 END SUB |
Результат:
A=9 B=10
Передача аргументов по значению.
Это означает, что передается не адрес аргумента, а его значение. Все аргументы при вызове процедуры передаются по значению. Для передачи переменной в процедуру по значению ее превращают в выражение, заключая в скобки. В этом случае изменение значения параметра в процедуре не изменит значения соответствующей переменной.
Dim A as integer, B as single A=5: B=8 CALL PROC1 (A,(B)) PRINT “A=”; A, ”B=”; B END SUB PROC1 (X, Y) Y=Y*2: X=Y+1 END SUB |
Результат:
A=17 B=8
Пример 3. Оформить в виде процедуры алгоритм вычисления степени y=xn с натуральным показателем.
Решение. Схема алгоритма процедуры приведена на рис.18.
Рис. 18
Sub Stepеn (nasinteger, xassingle, y as single) Dim i as integer y=1 for i=1 to n y=y*x next i End Sub |
В заголовке процедуры после ее имени Stepen в круглых скобках перечислены формальные параметры n, x, определяющие исходные данные процедуры, и параметр y, обозначающий результат ее выполнения. Указан тип формальных параметров. Тело процедуры состоит из объявления локальной переменной i, доступной только внутри данной процедуры и операторов, реализующих алгоритм вычисления xn–значения переменной y.
Пример 4.Оформить в виде процедуры алгоритм сортировки одномерного массива B(n) по убыванию. Применить эту процедуру для упорядочивания элементов массива A(k).
Решение:
DEFInt i, k Input “k=”; k Dim A(1 TO k) AS single ‘Заполнение_массива_значениями Fori=1 tok InputA(i) Nexti ‘ вызов_процедуры_сортировки CALLSort(A( ) , (k) ) Fori=1 tok Print A(i); Next i END ‘Описание_процедуры Sub Sort( B( ) AS single, n AS integer) DEFInt j, l For j=1 TO n-1 For l=j+1 TO n IfB(j)<B(l) THENSwapB(j), B(l) ‘обменэлементовмассиваместами NEXT l NEXT j END SUB |
Локальные переменные
Для проведения вычислений функции/процедуре могут потребоваться свои собственные, временные (локальные) переменные, которые будут хранить результаты промежуточных расчетов и действий. Такие локальные переменные описываются внутри функции/процедуры с помощью уже известного оператора DIM. Когда выполнение функции/процедуры заканчивается, эти локальные переменные перестают существовать, а занятая ими память освобождается.
Если возникает необходимость хранить значения локальных переменных в промежутках между вызовами функции/процедуры, то в ее описании следует использовать ключевое слово STATIC. Например,
Declare 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
Оператор DECLARE
Оператор DECLAREописывает функцию FUNCTION или процедуру SUB и выполняет проверку аргументов на соответствие типу данных.
DECLARE {FUNCTION | SUB} имя [([параметры])] |
где имя- имя функции/процедуры;
параметры- одна или несколько переменных, указывающих параметры, которые передаются в процедуру при ее вызове:
перемен[( )] [AS тип] [, перемен[( )] [AS тип]]... |
где перемен- имя переменной QB;
тип- типданныхпеременной (INTEGER, LONG, SINGLE, DOUBLE, STRING).
DECLARE необходим при вызове процедур SUB без использования CALL. QB автоматически добавляет оператор DECLARE при сохранении программы на диск.
