- •Конспект лекций по курсу «Информатика» для студентов очной и заочной форм обучения.
- •Базовые положения
- •§.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.1. Пример оформления подпрограммы-процедуры
Задача: поиск корней квадратного уравнения вида x2+ax+b=0.
Program NNN;
{ Обязательное пояснение (прагматика) процедуры:
Подпрограмма Q2 решает квадратное уравнение x2+ax+b=0 ,
Параметры:
Входные данные: a, b – коэффициенты уравнения,
Выходные (результат): x1, x2 – найденные корни уравнения,
i - признак выполнения процедуры:
i=0 – нет действительных корней
i=2 - найдены действительные корни}
Procedure Q2(a, b: real; Var x1, x2: real; Var i: integer);
< Семантика оператора:
Запомни: Q2 – имя процедуры, которая использует параметры:
a, b – передают в процедуру только «значения»,
x1, x2 , i – являются общими переменными для процедуры
и головной программы ! >
Var d: real;
{ d -рабочая переменная процедуры для вычисления дискриминанта уравнения }
Begin
d:=a*a-4*b;
If d<0 then i:=0 { если дискриминант отрицателен, то вырабатываем
признак отсутствия действительных корней уравнения }
else begin x1:=(-a-sqrt(d))/2; x2:=(-a+sqrt(d))/2; i:=2 end;
End; {оператор завершающий описание нововведенной подпрограммы-процедуры}
{Описание (отведение места в памяти) переменных головной программы:
koef2 – второй коэффициент квадратного уравнения,
k1, k2 – искомые корни,
Res – признак разрешимости уравнения }
Var koef2, k1, k2: real; Res: integer;
{исполнимые операторы головной программы}
BEGIN
Koef2:=random-0.5; {значение второго коэффициента решаемого уравнения
задаем случайным образом из диапазона (-0.5, +0.5) }
Writeln(‘Решается уравнение x*x-2.34x+’,Koef2:2:4,’=0’);
q2(-2.34, koef2, k1, k2, Res); {вызов процедуры решающей уравнение x*x-2.34x+b=0}
<Семантика: выполнить операцию с именем q2 !
Передать в нее фактические (реальные) параметры: -2.34, koef2, k1, k2, Res ! >
if Res=0 then Writeln(‘Нет действительных корней !’)
else Writeln(k1,k2);
END.
12.2. Подпрограммы класса function
Подпрограммы типа function это - прямые аналоги математического понятия «функция многих переменных».
Синтаксис и структура операторов описывающих новообразуемую операцию:
Function ИмяF( P1; P2; …; Pn): ТипF;
< < Блок описания вспомогательных переменных подпрограммы > >
Begin
< < Блок исполнимых операторов подпрограммы > >
End;
где:
Function – ключевое слово оператора,
ИмяF – название (идентификатор) новообразуемой операции типа - функция,
( P1; P2; …; Pn)– формальные переменные-параметры подпрограммы.
ТипF – тип переменной с именем ИмяF, в которой возвращается один из результатов выполнения подпрограммы-функции.
Особенность данной конструкции подпрограмм в том, что одно и тоже имя ИмяF используется для наименования двух разных, но взаимосвязанных, информационных объектов: как название подпрограммы, и как название переменной (ячейки памяти), которая заполняется содержимым (информаций) в этой подпрограмме.
Эта особенность конструкции позволяет вызывать подпрограмму типа - функция (активизировать выполнение функции) в любых операторах, которые используют переменные типа- ТипF. К подпрограммам рассматриваемого типа относятся стандартные функции языка Pascal: Sin(x), Cos(x), Ln(x), Random(n), Ord(c).