- •Конспект лекций по курсу «Информатика» для студентов очной и заочной форм обучения.
- •Базовые положения
- •§.1. Физическое устройство и разумная деятельность мозга
- •§2. Самодостаточная эвм
- •2.1. Память (оперативная память)
- •2.2. Процессор
- •2.3. Программа
- •2.4. Жизненный цикл «Самодостаточной эвм»
- •§3. Язык процессора – базовый язык эвм
- •§4. Реальная эвм. Периферийные устройства
- •§5. Язык программирования. Программа транслятор
- •§6. Язык программирования Pascal
- •6.1. Базовые типы числовых информационных объектов
- •6.2. Явные константы
- •6.3. Оператор описания var
- •Var и1, и2, и3, . . . . ,Иn: Итипа;
- •6.5. Операторы консольного ввода информации
- •6.5.1. Стандартные форматы вывода числовой информации.
- •6.6. Логические переменные
- •6.7. Операторы управления программой
- •6.7.1. Условный оператор if then
- •If Условие then Оператор ;
- •6.7.2. Условный оператор выбора if then else
- •6.8. Метки операторов. Оператор безусловного перехода
- •6.9. Циклические вычисления. Операторы зацикливания
- •Организация циклических вычислений операторами if then goto
- •Программа вычисления корня по формуле Герона.
- •6.9.3. Оператор цикла for to
- •6.9.4. Оператор цикла for downto
- •6.9.5. Оператор цикла while
- •6.9.6. Программа вычисления длины дуги кривой
- •7. Массивы переменных
- •7.1. Программа нахождения экстремальных значений
- •7.2. Программа решения системы линейных алгебраических уравнений
- •8. Сортировка информации
- •8.1. Элементы формальной логики, теории множеств и операций
- •8.2. Упорядоченные структуры информационных объектов
- •8.3. Алгоритм сортировки «поплавок»
- •8.3.1. Программа сортировки массива «на месте»
- •8.3.2. Программа сортировки «индексов» массива
- •8.4. Алгоритм быстрого поиска информации в линейно упорядоченном массиве
- •8.4.1. Программа поиска в отсортированных массивах.
- •9. Символьные переменные
- •9.1.Строковые переменные
- •9.1.1. Программа написания чисел прописью
- •10. Клавиатурное управление эвм
- •§.11. Информационные объекты класса – изображение
- •11.1. Устройство функционированиемонитора
- •11.2. Процедурный язык управления графическим экраном
- •11.3. Оцифровка и масштабирование реальных изображений (чертежей) для последующего их вывода на экран
- •11.4. Пример построения фрагмента графика функции
- •11.5. Ввод и обработка информации в форме изображений
- •§12. Информационные объекты класса – подпрограммы
- •12.1. Подпрограммы типа procedure
- •12.1.1. Пример оформления подпрограммы-процедуры
- •12.2. Подпрограммы класса function
- •12.2.1.Пример оформления подпрограммы-функции
- •12.3. Процедурные языки программирования
- •12.4. Библиотечные модули Unit
- •§13. Динамическое распределение оперативной памяти эвм
- •13.1. Программа использующая динамические переменные
- •§14. Переменные типа record
- •§15. Внешняя память эвм. Работа с файлами
- •15.1. Процедурный язык обработки файлов
- •15.2.Программа “ Жизненный путь файла “
- •15.3. Текстовые файлы
- •§16. Элементы объектно-ориентированного программирования
- •Основная рекомендуемая литература.
12.1. Подпрограммы типа procedure
Синтаксис и структура операторов описывающих операцию:
Procedure ИмяP( P1; P2; …; Pn);
< <
блок описания переменных, используемых только внутри
самой подпрограммы, т.е. вспомогательных
или «рабочих» переменных подпрограммы.
> >
Begin
< <
Блок исполнимых операторов подпрограммы, т.е. описание
новой операции в форме упорядоченной последовательности
известных (стандартных или ранее описанных) операций.
> >
End;
Procedure – ключевое слово оператора,
ИмяP – название (идентификатор) новообразуемой
операции типа-процедура,
( P1; P2; …; Pn)– строго упорядоченный (через разделитель – точка с запятой) перечень описаний всех информационных объектов, которые являются «формальными переменными подпрограммы» и используются только для синтаксически-грамотного описания исполнимых операторов внутри самой подпрограммы. Сами же имена P1, P2,… «не видны головной программе», головная программа знает только о типах этих переменных.
При обращении к подпрограмме вместо этих «формальных параметров» указываются «фактические переменные головной программы», которые
либо передают в подпрограмму данные для обработки «внутри подпрограммы», т.е. выполняют роль аргументов создаваемой программистом операции,
либо заполняются содержимым в результате выполнения действий предусмотренных в самой подпрограмме, т.е. выполняют роль значений создаваемой программистом операции.
Синтаксис языка Pascal допускает три разных способа (варианта) описания параметров подпрограммы, что обеспечивает три разных способа передачи (обмена) информации между подпрограммой и вызывающей ее головной программой:
если описание параметра Pi задается структурой
Var ИмяPi: ТипPi;
где ИмяPi – название переменной (идентификатор, который используется только для синтаксически-грамотного описания исполнимых операторов подпрограммы), ТипPi - тип этой переменной.
При обращении к подпрограмме, т.е. при вызове подпрограммы из головной программы, вместо этой рабочей переменной с именем ИмяPi будет использоваться та реальная переменная, которая будет создана (обязательно должна быть создана!) непосредственно в головной программе. Разумеется, эта реальная переменная должна быть того же типа, что и рабочий параметр, т.е. типа ТипPi.
Пояснение: в процессе трансляции текста подпрограммы, т.е. при переводе ее на внутренний язык ЭВМ, вместо адресов, описанных таким образом переменных, вносятся чистые нули. Эти нули автоматически заменяются на реальные адреса реальных переменных только в момент «вызова подпрограммы на выполнение».
Описанные таким образом переменные-параметры позволяют передавать информацию: как из головной программы в подпрограмму, так и в обратном направлении – из подпрограммы в головную программу.
если описание параметра Pi задается структурой ИмяPi: ТипPi;
то, в процессе трансляции подпрограммы, для переменной-параметра с именем ИмяPi выделяется необходимая оперативная память, т.е. эта переменная «почти автономна», а ее содержимое недоступно головной программе. Однако, при «вызове программы на выполнение» в эту переменную копируется содержимое из той переменной, имя которой будет указано программистом.
Пояснение: Описанные таким образом переменные-параметры позволяют только односторонне передавать информацию: из головной программы в подпрограмму. Достоинство таких параметров – операции выполняемые в подпрограмме не могут испортить информацию головной программы. Недостаток – заведомое дублирование информации, т.е. нерациональные затраты оперативной памяти.
если описание параметра Pi задается структурой Var ИмяPi;
т.е. не указывается тип параметра-переменной, то в подпрограмму передается только адрес (местоположение в оперативной памяти) той реальной переменной, имя которой будет указано в операторе «вызова подпрограммы на выполнение». Как читать или изменять информацию по указанному адресу, какого она типа, структуры и размера, обычно сообщается через другие параметры этой подпрограммы.
В теле подпрограммы могут быть использованы все переменные, которые описаны в головной программе до (выше) подпрограммы – так называемые «глобальные переменные». Однако пользоваться этой возможностью не рекомендуется, т.к. для удобства (универсальности) использования, подпрограмма должна быть «максимально автономна», т.е. общение с подпрограммой должно осуществляться только через контролируемые ею и самим программистом предусмотренные в описании параметры.