- •Информатика
- •Введение
- •Алгоритм и программа
- •Интегрированная инструментальная среда turbo pascal 7.0.
- •Начало работы
- •Клавиатура
- •Диалоговые окна
- •Подготовка текста программы Начало работы
- •Ввод текста и внесение изменений в текст программы
- •Компиляция
- •Пробный запуск программы на выполнение
- •Буфер промежуточного хранения
- •Использование справочной системы
- •Сохранение текста программы в файле
- •Отладка программы
- •Завершение работы
- •Алфавит языка
- •Символы, используемые в идентификаторах
- •Разделители
- •Специальные символы
- •Знаки пунктуации
- •Основные типы данных
- •Описание переменных
- •Инструкция присваивания
- •Выражение
- •Тип выражения
- •Выполнение инструкции присваивания
- •Константы
- •Целые константы
- •Вещественные константы
- •Строковые и символьные константы
- •Константные выражения
- •Типизированные константы
- •Стандартные функции
- •Арифметические функции
- •Функции преобразования типа
- •Функции для величин порядкого типа
- •Ввод и вывод информации
- •Инструкции write и writeln
- •Инструкции read и readln
- •Общая структура программы
- •Раздел объявлений и соглашений
- •Заголовок
- •Глобальные директивы компилятора
- •Оператор uses
- •Объявления глобальных меток, констант, типов и переменных
- •Процедуры и функции
- •Заголовок процедуры или функции
- •Объявления локальных меток, констант, типов и переменных
- •Тело процедуры/функции
- •Основной блок программы
- •Управляющие структуры
- •Условие
- •Условный оператор if
- •Условный оператор case
- •Оператор цикла for
- •Оператор цикла repeat
- •Оператор цикла while
- •Оператор безусловного перехода goto
- •Пустой оператор
- •Составной оператор
- •Массивы
- •Объявление массива
- •Некоторые типичные действия с массивами
- •Вывод массива
- •Ввод массива
- •Сортировка массива
- •Сортировка методом прямого выбора
- •Сортировка методом прямого обмена
- •Поиск в массиве
- •Поиск минимального (максимального) элемента массива
- •Операции с матрицами
- •Сложение матриц
- •Транспонирование матрицы
- •Умножение матриц
- •Символы и строки
- •Символы
- •Массив символов
- •Функция length
- •Процедура delete
- •Функция pos
- •Функция copy
- •Процедуры и функции
- •Процедура
- •Функции
- •Параметры-процедуры и параметры-функции.
- •Процедура exit
- •Директивы подпрограмм
- •Директива forward
- •Директивы far и near
- •Директива external
- •Директива assembler
- •Директива inline
- •Директива interupt
- •Рекурсия Понятие рекурсии
- •Пример программы: поиск пути
- •Вывод в файл
- •Объявление файла
- •Назначение файла
- •Инструкции вывода в файл
- •Открытие файла для вывода
- •Ошибки открытия файла
- •Закрытие файла
- •Ввод из файла
- •Открытие файла
- •Чтение из файла
- •Конец файла и конец строки
- •Введение в структурное программирование
- •Рекомендательный библиографический список Основной:
- •Дополнительный:
Чтение из файла
Чтение из файла выполняется при помощи инструкций READ и READLN, которые в общем виде записываются так:
read (ФайловаяПеременная, СписокПеременных) ;
readln (ФайловаяПеременная, СписокПеременных) ;
где ФайловаяПеременная переменная типа TEXT ; СписокПеременных имена переменных, разделенные запятыми.
Конец файла и конец строки
Как определить, прочитана последняя строка, или, другими словами, достигнут конец файла ?
Для этого нужно проверить значение, возвращаемое функцией EOF (End Of File конец файла).
EOF (файловая переменная) - проверяет достигнут ли конец файла. Если конец файла достигнут, то функция EOF возвращает true, в противном случае false.
Как определить, прочитаны ли все символы в строке ?
Для этого нужно проверить значение, возвращаемое функцией EOLN (End Of Line конец строки).
EOLN (файловая переменная) - проверяет достигнут ли конец строки в файле. Если конец строки достигнут, то функция EOLN возвращает true, в противном случае - false.
Имеются еще две функции:
SeekEOF(F) конец строки;
SeekEONL(F) конец строки файла.
Для текстовых файлов функции SeekEOF и SeekEOLN имеет смысл использовать при чтении из файла, если количество записей заранее неизвестно. Функция SeekEOLN “видит” конец строки даже, если после последнего символа есть пробелы и табуляции, а функции SeekEOF не мешают “увидеть” конец файла пустые (не содержащие других знаков, кроме пробелов и табуляций) строки после последних данных.
Введение в структурное программирование
Под структурным программированием понимается метод программирования, обеспечивающий создание программы, структура которой ясна и неразрывно связана со структурой решаемой задачи. В основе метода структурного программирования лежит подход, при котором исходная задача разделяется на несколько достаточно крупных задач, каждая из которых реализуется как отдельная процедура. В свою очередь, подзадача тоже разделится на подзадачи более низкого уровня, также реализуемые как отдельные процедуры. Таким образом, структура программы отражает структуру задачи, для решения которой она предназначена.
Например, задача работы с базой данных может быть разделена на две подзадачи: задачу добавления информации в базу данных и задачу обработки информации базы данных. Задача добавления информации может быть также разделена, например, на три подзадачи: получение информации; проверка непротиворечивости; непосредственное добавление информации в базу.
Метод структурного программирования предполагает использование технологии разработки программы, получившей название “сверху вниз”. Суть метода разработки “сверху вниз” состоит в том, что сначала разрабатывается часть программы, реализующая наиболее общий алгоритм, а решение частных задач откладывается на более поздний срок. Процедуры, предназначенные для решения отложенных задач, заменяются процедурами-заглушками.
Рассмотрим использование метода “сверху вниз” на примере разработки программы работы с базой данных.
На рис. 28 приведен укрупненный алгоритм (верхнего уровня) программы работы с базой данных. Прямоугольники с двойной левой и правой границами изображают подзадачи, которые, как правило, реализуются как процедуры.
Рис. 28. Укрупненная блок-схема алгоритма программы работы с базой данных
Представленному алгоритму соответствует программа:
var
f : text ; { файл базы данных }
sel : integer ; { выбор пользователя }
dbname : string[20] ; { имя файла БД }
procedure append_BD(var f : text ) ; { процедура-заглушка }
begin
writeln(‘Добавление в БД не реализовано. ‘) ;
writeln(‘Нажмите < Enter > для продолжения. ‘) ;
readln ;
end ;
procedure process_BD(var f : text ) ; { процедура-заглушка }
begin
writeln(‘Обработка БД не реализовано. ‘) ;
writeln(‘Нажмите < Enter > для продолжения. ‘) ;
readln ;
end ;
BEGIN { Основная программа }
assign(f, dbname) ;
repeat
writeln(‘База данных’) ;
writeln(‘ 1 Добавление в БД’) ;
writeln(‘ 2 Обработка БД’) ;
writeln(‘ 0 Завершение работы’) ;
writeln(‘Ваш выбор (число 0..3 и < Enter > ) ’) ;
readln(sel) ;
case sel of
1 : append_BD(f) ;
2 : process_BD(f) ;
end ;
until sel = 0 ;
END.
Приведенная программа это ядро будущей программы, выполняющей все поставленные задачи. Она может быть оттранслирована и выполнена. И хотя на первый взгляд она не выполняет никакой полезной работы, с ее помощью может быть проверена логика работы разрабатываемой программы.