- •Понятие рекурсии. Примеры рекурсивных функций.
- •Модуль в Турбо Паскале представляет собой отдельно хранимую и независимо компилируемую программную единицу.
- •Модуль crt содержит процедуры и функции, обеспечивающие управление текстовым режимом работы экрана.
- •Цель структурного программирования - повышение надежности программ, обеспечение сопровождения и модификации, облегчение и ускорение разработки.
- •Разработка программы ведётся пошагово, методом «сверху вниз» (низходящее)
- •Модульное программирование
- •Объектный подход в программировании: объект, свойство объекта, метод обработки, событие, класс. Принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм.
- •Var имя_объекта : класса_объекта;
Модуль crt содержит процедуры и функции, обеспечивающие управление текстовым режимом работы экрана.
Модуль CRT содержит константы, переменные и подпрограммы, предназначенные для работы с экраном. В отличие от стандартного ввода (или вывода), когда он осуществляется через операционную систему, подпрограммы модуля CRT работают с BIOS, и даже непосредственно с видеопамятью, вследствие чего значительно повышается скорость вывода информации на дисплей. Имеет смысл всегда подключать модуль CRT, даже если его процедуры и функции не используются в программе.
При подключении модуля CRT перед выполнением основного блока программы происходит переназначение стандартных файлов Input и Output.
Системные стандартные файлы Input и Output связываются с фиктивным устройством CRT.
При подключённом модуле CRT можно выводить на дисплей (процедурами write и writeln) строки и символы, содержащие в себе 5 управляющие коды (0..31). Одним из способов включения этих символов в строку является их представление кодом ASCII с помощью специального префикса #. Следующие четыре символа используются особым образом:
код #7 вызывает короткий звуковой сигнал;
код #8 осуществляет перемещение курсора влево на один символ; если курсор уже находится на левой границе окна (или экрана), символ игнорируется;
код #10 – смещает курсор на одну строку вниз при той же горизонтальной позиции; если курсор к этому моменту уже находится на нижней строке окна (экрана), содержимое окна (экрана) “прокручивается” вверх на одну строку;
код #13 – переводит текущее положение курсора в начало следующей строки; при необходимости организуется “прокрутка” окна (экрана).
Примеры.
Writeln(‘Короткий звук’#7); readln;
Write(‘перемещение на строку вниз’#10’-----------------‘)
При работе с экраном через модуль CRT весь экран разбивается на отдельные строки, а каждая строка на отдельные позиции, в каждую из которых можно поместить один символ (в том числе и пробел). Для каждого символа можно создать цвет фона (задний план) и цвет символа (передний
план).
Для указания выводимого символа, а также его атрибутов в видеопамять помещаются два байта. Первый байт содержит выводимый символ, второй – информацию о цвете.
Пример программы определения расширенного кода любой клавиши:
Uses CRT;
Var c : char;
Begin
Repeat
c:=readkey;
If c<>#0 then
Writeln(ord(c))
Else
Writeln('0',ord(readkey))
Until c=#27 {27 – код клавиши ESC}
End.
ФАЙЛЫ
Файлы. Вывод в файл. Объявление и назначение файла. Инструкции вывода в файл. Открытие файла для вывода. Закрытие файла.
Файлы. Ввод в файл. Чтение из файла.
Под файлом понимается именованная область внешней памяти.
Существует три типа файлов с точки зрения формата записи:
Текстовые [var fp:text]
Типизированные [flip:file of<тип>]
Не типизированные [fut: file]
Этапы при работе с файлами:
Объявление (описание) файловой переменной
var
fp:text;
flip:file of integer;
A: file;
Связывание файловой переменной с физическим файлом на диске
Begin …
Assign(<файловая переменная>,’путь к файлу’)
Assign (fp,’c:\aindows\1.txt’);
Assign(flip,’marusya.dta’); - лежит в папке с программой, обращаемся по имени
После того связывания файловая переменная является уже представителем конкретного файла.
Открытие файла (обязательно!)
-
Текстовые файл
Типизированный файл
Нетипизир. файл
Reset(имя_переменной)
Для чтения
Reset(имя файловой переменной)
Открытие для чтения и для записи
Reset(имя ф.п.,размер компонента для чтения файла в байтах)
Для чтения
Rewrite(файловая_переменная)
Открытие для перезаписи
Rewrite(имя ф.п.)
Открытие для перезаписи
Rewrite(имя ф.п.,размер компонента для чтения файла в байтах)
Для перезаписи
Append(файловая_переменная)
Открытие файла для добавления (дозапись к концу файла)
Append используется для открытия только ТЕКТОВОГО файла для дозаписи в КОНЦЕ файла. Файл должен существовать.
RESET открывает файл на чтение, файловый указатель (курсор) устанавливается на начало файла (на компонент с порядковым номера 0 ноль). Если файла не существует, то возникает ошибка, если не предприняты никакие меры по обработке ошибок.
В типизированных файлах открытых процедурой reset допускается изменение информации (т.е. запись)
Процедура REWRITE открывает файл на запись, а именно на перезапись. Допускается отсутствие файла. Запись с нуля или перезапись.
Осуществление операций ввода-вывода с файлом
-
Текстовые файл
Типизированный файл
Нетипизир. файл
Read(файловая_переменная, ..) чтение из файла
Readln(ф.п, .. )
Read(фп,..)
Для чтения компонента файла
BlockRead(…)для чтения из файла
Число байт
Write(ф.п., …)
Writeln(ф.п.,…)
Запись в файл
Write(фп,..) для записи компонента файла
BlockWrite(…)
Для записи в файл
Аналогично записи с клавиатуры /выводу на экран
Закрытие файла
Close(имя_файловой_переменной)
Структуризация в программировании: нисходящее проектирование, модульное программирование, структурное программирование.
Структурное программирование - методология программирования, базирующаяся на системном подходе к анализу, проектированию и реализации программного обеспечения. Эта методология родилась в начале 70-х годов в компании IBM, в ее разработке участвовали известные ученые Э.Дейкстра, Х.Милс, Э.Кнут, С.Хоор. Идеи структурного программирования оказались настолько жизнеспособными, что и до сих пор являются основной в большом количестве проектов.
