- •Оглавление
- •§1. Первое знакомство с системой программирования Турбо Паскаль
- •§2. Основные элементы языка
- •§3. Команды редактора Команды управления движением курсора
- •§4. Первая программа
- •Пояснения к программе
- •Запуск программы
- •Сохранение программы
- •§5. Управление позициями и цветом вывода
- •§6. Арифметический квадрат.Абсолютная величина
- •§7. Типы данных
- •§8. Целый тип данных
- •Пример 6
- •Пример 7
- •Пример 8
- •§9. Вещественный тип данных
- •Пример 7
- •Пример 8
- •§10. Логический тип данных
- •§11. Условный оператор
- •Пример 1
- •Пример 2
- •Решение
- •§12. Оператор безусловного перехода. Раздел описания меток
- •§13. Вложенные условные операторы
- •Решение
- •Задание
- •Решение задач Задача 1
- •Задача 8
- •Задача 9
- •Задача 10
- •§14. Цикл с параметром
- •Пример 1
- •Пример 2
- •Пример 3
- •§15. Работа с окнами. Метод пошагового выполнения программ
- •§16. Решение задач с использованием цикла с параметром Задача 1
- •Решение
- •Задача 2.
- •§17. Цикл с предусловием
- •Оператор цикла с предусловием
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •§18. Цикл с постусловием
- •Пример 1
- •Решение
- •Пример 2
- •§19. Алгоритм Евклида
- •§20. Вложенные циклы Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Пример 4
- •Решение
- •Пример 5
- •§21. Решение задач с использованием циклов с условием Задача 1
- •Решение
- •Задача 2
- •§22. Символьный тип данных
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •§23. Ограниченный тип данных
- •Var b:3..8; а не просто Vаг b:Integer;
- •Решение
- •§24. Оператор варианта (выбора)
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Пример 4
- •§25. Перечисляемый тип данных
- •§26. Описание переменных, констант и типов. Раздел описания констант
- •Раздел описания типов
- •§27. Преобразование типов. Совместимость типов
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение.
- •§28. Процедуры
- •Описание процедуры
- •Решение
- •Begin {основная программа}
- •Пример 2
- •Решение
- •Пример 3
- •§29. Функции
- •Пример 1
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •§30. Примеры рекурсивного программирования
- •Задачи с рекурсивной формулировкой
- •Пример 3
- •Задачи, которые можно решить как частный случай обобщенной
- •Задание
- •Задачи, в которых можно использовать характеристику или свойство функции Пример
- •Решение
- •§31. Файловый тип данных Операции для работы с файлами последовательного доступа
- •§32. Обработка файлов Связь переменной файлового типа с файлом на диске
- •Чтение из файла
- •Закрытие файла
- •Признак конца файла
- •Запись в файл
- •§33. Прямой доступ к элементам файла
- •Удаление файлов. Процедура
- •Переименование файлов. Процедура
- •Пример 2
- •§34. Текстовые файлы
- •Обработка текстовых файлов
- •Пример 1
- •Решение
- •Пример 2
- •Нетипизированные файлы
- •§35. Одномерные массивы. Работа с элементами(разбор на примерах) Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Begin {Считываем очередную строку}
- •§36. Работа с элементами массива (разбор на примерах)
- •Пример 2
- •§37. Методы работы с элементами одномерного массива
- •Создание массива
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Работа с несколькими массивами Пример
- •Решение
- •§38. Удаление элементов из одномерного массива Пример 1
- •Решение
- •Begin {Сдвиг элементов на один влево}
- •Пример 2
- •Решение
- •§39. Вставка элементов в одномерный массив
- •Вставка нескольких элементов
- •Решение
- •§40. Перестановки элементов массива
- •§41. Двухмерные массивы Описание. Работа с элементами
- •§42. Найти сумму элементов
- •Решение
- •§43.Нахождение количества элементов с данным свойством
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •§44. Работа с несколькими массивами Пример
- •Решение
- •§45. Определить, отвечает ли заданный массив некоторым требованиям Пример 1
- •Решение
- •Пример 2
- •Решение
- •§46. Изменение значений некоторых элементов, обладающих заданным
- •§47. Заполнение двухмерного массива по правилу
- •Пример 2
- •Решение
- •§48. Вставка и удаление элементов Вставка строки
- •Решение
- •Примечания
- •Удаление строки Пример
- •Решение
- •Примечания
- •§49. Перестановка элементов массива Перестановка двух элементов Пример 1
- •Решение
- •Пример 2
- •§50. Строковый тип данных
- •Операции со строками
- •Склеивание
- •Сравнение
- •Примеры
- •Пример 8
- •Пример 9
- •Пример 10
- •§51. Множественный тип данных
- •Операции над множествами
- •Примеры
- •Сравнение множеств
- •Пример 1
- •Пример 2
- •Вопросы для обсуждения
- •Пример 3
- •Вопросы для обсуждения
- •Пример 4
- •Решение
- •Пример 5
- •Решение
- •§52. Комбинированный тип данных (записи)
- •Пример 1
- •Пример 2
- •Пример 3
- •Решение
§33. Прямой доступ к элементам файла
Несмотря на то, что в стандартном Паскале имеются лишь файлы последовательного доступа, Турбо Паскаль содержит процедуры и функции для более эффективной работы с файлами. В частности, имеется возможность осуществлять прямой доступ к элементам файла.
Установка указателя
Процедура
Seek (<имя файловой переменной>, N)
устанавливает файловый указатель на N-й элемент. Например, Seek (F1, 3). Напомним, что элементы файла нумеруются с нуля.
Определение номера элемента
Функция
FilePos (<имя файловой переменной>)
возвращает номер элемента, на который "смотрит" файловый указатель.
Пример
Найти номер элемента, с которым будет выполняться следующая операция.
Решение
Воспользуемся функцией FilePos:
N:=FilePos(F1).
Определение количества элементов в файле
Функция
FileSize (<имя файловой переменной>)
возвращает количество элементов в файле.
Удаление и переименование
файлов
Удаление файлов. Процедура
Erase (<имя файловой переменной>)
удаляет файл на внешнем носителе, с которым связана файловая переменная.
Переименование файлов. Процедура
Rename (<имя файловой переменной>,
'<новое имя на диске>')
переименовывает файл, связанный с данной файловой переменной.
Пример 1
Ввести с клавиатуры и записать в файл DAN1.DAT последовательность целых чисел.
Решение
Сначала свяжем файловую переменную с конкретным внешним файлом при помощи процедуры Assign. Откроем файл для записи посредством процедуры Rewrite. Признак конца последовательности чисел − ввод числа 0.
Program Example_83;
Var F: File Of Integer;
n: Integer;
Begin
Assign(F, 'DAN1.DAT');
{Связываем файловую переменнуюс файлом на диске}
Rewrite(F); {Открываем файл для записи}
Writeln('Конец ввода чисел - 0');
Repeat {Пока не будет введен 0}
Writeln('Введите число ');
Readln(n) ;
{Если введено число, отличное от 0, то
записываем его в файл}
If n<>0 Then Write(F, n);
Until n=0;
{Если введен 0, то выходим из цикла}
Close(F); {Закрываем файл}
End.
Пример 2
В файле DAN1.DAT записаны целые числа (см. предыдущую задачу). Вычислить сумму элементов файла и результат вместе с исходными данными записать в файл DAN2.DAT.
Program Example_84;
Var F1, F2: File Of Integer;
{Файловые переменные}
S, N: Integer;
Begin {С файловой переменной F1 связываем
файл на диске}
Assign(F1, 'DAN1.DAT');
Reset(F1); {Открываем файл F1 для чтения}
Assign(F2,'DAN2.DAT') ;
{С файловой переменной F2 связываем
файл на диске}
Rewrite(F2) ;
{Открываем файл F2 для записи}
S:=0;
While Not EOf (F1) Do {Проверка на конец файла F1}
Begin
Read(F1, N);
{Чтение элемента из файла F1}
S:=S+N; {Накопление суммы}
Write(F2, N);
{Запись элемента в файл F2}
end;
Write(F2, S); {Запись суммы элементов
в конец файла F2}
Write('Результат находится
в файле DAN2.DAT')
Close(F1); {Закрываем файл F1}
Close(F2); {Закрываем файл F2}
Readln;
End.
§34. Текстовые файлы
Текстовые файлы состоят из символьных строк. Строки могут иметь различную длину, и в конце каждой строки стоит признак конца строки. Для описания текстовых файлов используется служебное слово Text:
Var A: Text;