- •230701 Прикладная информатика (по отраслям)
 - •Содержание
 - •Требования к минимуму содержания основной профессиональной образовательной программы по специальности 080802 Прикладная информатика (по отраслям)
 - •Рабочая программа
 - •Пояснительная записка
 - •Тематический план учебной дисциплины
 - •Содержание учебной дисциплины
 - •Тема 1.4. Составление алгоритмов с помощью блок-схем
 - •Тема 1.5. Методы и правила надежного программирования. Способы конструирования программ
 - •Раздел IV. Процедуры и функции.
 - •Тема 4.1. Подпрограммы
 - •Тема 4.2. Параметры и аргументы, связь формальных и фактических параметров
 - •Раздел V. Программирование рекурсивных алгоритмов
 - •Тема 5.1. Рекурсивные процедуры и функции
 - •Тема 5.2. Примеры рекурсивного программирования
 - •Раздел VIII. Ввод и вывод информации: текстовые файлы
 - •Тема 8.1. Файлы и их виды
 - •Тема 8.2. Оперирование текстовыми файлами.
 - •Раздел IX. Структурированный тип записи
 - •Тема 9.1. Записи и их описание
 - •Тема 9.2. Использование таблиц с разнотипными полями. Записи.
 - •Раздел X. Модульное программирование
 - •Тема 10.1. Методы работы с модулями. Стандартные модули языка Pascal.
 - •Тема 10.2. Создание модульных программ
 - •Критерии оценок
 - •Литература
 - •Теоретический курс Основные понятия языка Состав языка
 - •Алфавит и лексемы
 - •Константы
 - •Имена, ключевые слова и знаки операций
 - •Типы данных
 - •Классификация типов
 - •Стандартные типы данных Логические типы
 - •Целые типы
 - •Вещественные типы
 - •Символьный тип
 - •Порядковые типы
 - •Приведение типов
 - •Линейные программы
 - •Переменные
 - •Выражения
 - •Структура программы
 - •Оператор присваивания
 - •Процедуры ввода-вывода
 - •Ввод с клавиатуры
 - •Вывод на экран
 - •Операторы ветвления
 - •Условный оператор if
 - •Оператор варианта case
 - •Операторы цикла
 - •Цикл с предусловием while
 - •Цикл с постусловием repeat
 - •Цикл с параметром for
 - •Рекомендации по использованию циклов
 - •Процедуры передачи управления
 - •Оператор перехода goto
 - •Перечисляемый тип данных
 - •Интервальный тип данных
 - •Массивы
 - •Двумерные массивы
 - •Операции
 - •Процедуры и функции для работы со строками
 - •Множества
 - •Операции над множествами
 - •Текстовые файлы
 - •Бестиповые файлы
 - •Компонентные файлы
 - •Прямой доступ
 - •Совместимость типов
 - •Совместимость по присваиванию
 - •Подпрограммы
 - •Процедуры
 - •Функции
 - •Глобальные и локальные переменные
 - •Виды параметров подпрограмм
 - •Параметры-значения
 - •Параметры-переменные
 - •Параметры-константы
 - •Открытые массивы и строки
 - •Параметры процедурного типа
 - •Рекурсивные подпрограммы
 - •Описание модулей
 - •Использование модулей
 - •Стандартные модули Паскаля
 - •Модуль System
 - •Модуль Crt
 - •Модули Dos и WinDos
 - •Модуль Graph
 - •Модуль Strings
 - •Задания для самостоятельной работы студентов
 - •1. Знакомство с интегрированной средой программирования pascal
 - •1. Общие положения
 - •Начало работы
 - •Интерфейс ide
 - •Комбинации клавиш
 - •2. Подготовка текста программы
 - •5. Компиляция
 - •5.1. Ошибки времени компиляции
 - •6. Пробный запуск программы на выполнение
 - •6.1. Ошибки времени выполнения программы
 - •7. Запуск программы на исполнение
 - •8. Завершение работы
 - •9. Практическое задание
 - •2. Организация работы программ линейной структуры
 - •1. Управление режимами вывода данных на экран дисплея
 - •1.1. Управление положением курсора на экране монитора
 - •1.2. Стандартный модуль crt. Подключение модулей с помощью Uses. Процедура очистки экрана дисплея ClrScr. Функция ReadKey
 - •1.3. Процедуры работы с цветом (TextColor,TextBackground)
 - •2. Практическое задание – решение задач линейной структуры
 - •3. Решение задач с условием
 - •3. Составной оператор
 - •Практическое задание – решение задач с условием
 - •4. Решение задач на множественный выбор
 - •5. Организация циклов с помощью оператора for
 - •1.Особенности циклов
 - •2. Оператор цикла с параметром (со счетчиком) for ... Do
 - •3. Вложенные циклы
 - •2.1. Структура вложенных циклов
 - •6. Организация циклов с помощью оператора while
 - •7. Организация циклов с помощью оператора repeat
 - •8. Организация программ с использованием процедур
 - •1. Общие положения
 - •2. Описание процедуры, оператор процедуры
 - •2.1. Формальные и фактические параметры
 - •2.2. Параметры-значения и параметры-переменные
 - •2.3. Область действия имен
 - •2.4. Процедуры без параметров
 - •3. Массив в процедуре
 - •9. Организация программ с использованием функций
 - •10. Организация программ с использованием рекурсий
 - •1. Особенности рекурсии
 - •11. Решение задач на обработку элементов одномерного массива
 - •1. Стандартные операции с массивами
 - •12. Решение задач на обработку элементов двумерного массива
 - •1. Многомерные массивы
 - •2. Ввод-вывод двумерного и многомерного массива
 - •3. Стандартные (типовые) задачи на двумерных массивах
 - •4. Практическое задание - решение задач с использованием массивов
 - •13. Решение задач по обработке символьных данных
 - •1. Таблица кодирования символов
 - •Б азовая таблица кодировки ascii
 - •2. Запись символов, специальные и управляющие символы
 - •3. Операции отношения
 - •4. Встроенные функции
 - •14. Решение задач по обработке строковых данных
 - •1. Внутреннее представление строки
 - •2. Операции над строками
 - •3. Строковые встроенные функции
 - •4. Примеры использования процедур и функций
 - •5. Практическое задание
 - •Методические указания
 - •15. Решение задач по обработке множественного типа
 - •1. Описание множественного типа
 - •2. Присваивание значений переменным множественного типа
 - •3. Операции над множествами
 - •3.6. Нахождение элемента во множестве
 - •3.7. Приоритеты операций при работе с множествами
 - •4. Практическое задание
 - •16. Решение задач по обработке структурированного типа - запись
 - •1. Описание записи
 - •2. Обращение к элементу записи
 - •3. Оператор присоединения
 - •4. Практическое задание
 - •Образцы контрольных работ
 - •Контрольно-измерительные материалы
 
Компонентные файлы
Компонентные файлы применяются для хранения однотипных элементов в их внутренней форме представления. Тип компонент задается после ключевых слов file of.
var имя : file of тип_компонент;
Компоненты могут быть любого типа, кроме файлового, например вещественным числом или массивом записей. В операциях ввода-вывода могут участвовать только величины того же типа, что и компоненты файла, например:
type mas = array [1 .. 100] of real;
var a, b : mas;
f : file of mas;
begin
assign(f, 'some_file.dat'); rewrite(f);
...
write(f, a, b);
close(f)
end.
Обратите внимание, что компонентой этого файла является массив целиком. За одну операцию записывается или считывается столько компонент, сколько перечислено в процедурах write или read.
Компонентные файлы, как и бестиповые, применяются не для просмотра их человеком, а для использования в программах.
Прямой доступ
Бестиповые и компонентные файлы состоят из блоков одинакового размера. В бестиповом файле размер блока равен длине буфера, а в компонентном — длине компоненты. Это позволяет применить к таким файлам прямой доступ, при котором операции выполняются с заданным блоком. Прямой доступ применяется только для физических файлов, расположенных на дисках.
С помощью стандартной процедуры seek производится установка текущей позиции в файле на начало заданного блока, и следующая операция чтения-записи выполняется, начиная с этой позиции. Первый блок файла имеет номер 0.
Ниже описаны стандартные подпрограммы для реализации прямого доступа.
filepos (var f) : longint
Функция возвращает текущую позицию в файле f. Для только что открытого файла это будет 0.
filesize (var f) : longint
Функция возвращает количество блоков в открытом файле f.
seek (var f; n: longint)
Процедура выполняет установку текущей позиции в открытом файле (позиционирование). В параметре n задается номер блока, к которому будет выполняться обращение.
truncate (var f)
Процедура устанавливает в текущей позиции признак конца файла и удаляет все последующие блоки.
Пример. Программа, которая выводит на экран заданную по номеру запись из файла, сформированного в пример 3.6.
</em><code>program get_bfile;
var buf : array[1 .. 4] of real;
f : file;
i, k : integer;
filename : string;
begin
{$I–}
writeln('Введите имя входного файла'); readln(filename);
assign(f, filename);
reset(f, sizeof(real) * 4);
if IOResult <> 0 then begin
writeln('Файл ', filename, ' не найден'); exit end;
{$I+}
while true do begin
writeln('Введите номер записи или –1 для окончания');
readln(k);
if (k > filesize(f)) or (k < 0) then begin
writeln('Такой записи в файле нет',); exit end;
seek(f, k);
blockread(f, buf, 1);
for i:= 1 to 4 do write(buf[i]:6:1);
end;
close(f);
end.
Таким же образом можно изменять заданную запись в файле. Файл при этом может быть открыт как для чтения, так и для записи. Попытка чтения-записи несуществующего блока приводит к ошибке времени выполнения.
