- •Программирование на языке паскаль Учебное пособие
- •1. Общая характеристика языков программирования
- •1.1. Языки программирования
- •1.2. Трансляторы
- •1.3. История создания языков
- •1.4. Базовые структуры языков программирования
- •Контрольные вопросы
- •2. Описание языка паскаль
- •2.1. Основные объекты языка
- •2.2. Структура Паскаль-программы
- •2.3. Типизация данных
- •2.4. Объявление данных
- •Контрольные вопросы
- •3. Простые операторы. Ввод/вывод данных
- •3.1. Оператор присваивания и выражения
- •3.2. Операторы вызова процедур. Ввод/вывод данных
- •3.2.1. Процедуры ввода read и readln
- •Общая форма записи оператора
- •3.2.2. Процедуры вывода write и writeln
- •Контрольные вопросы
- •Каково назначение процедуры writeln без параметров? Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •4. Структурные операторы. Организация ветвлений и циклов
- •4.1. Составной и пустой операторы
- •4.2. Организация ветвлений. Операторы выбора
- •4.2.1. Оператор ветвления if
- •4.2.2. Оператор варианта case
- •Общая форма записи
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •4.3. Организация циклов. Операторы повторения
- •4.3.1. Оператор while
- •4.3.2. Оператор repeat
- •4.3.3. Оператор for
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •5. Организация подпрограмм. Процедуры и функции
- •5.1. Процедуры и их типизация
- •5.1.1. Встроенные процедуры
- •5.1.2. Процедуры пользователя
- •5.1.3. Процедуры без параметров
- •5.1.4. Фактические и формальные параметры
- •5.1.5. Локальные и глобальные переменные
- •5.1.6. Процедуры с параметрами-значениями
- •5.1.7. Процедуры с параметрами-переменными
- •5.1.8. Комбинированные процедуры
- •5.2. Функции пользователя. Рекурсивные функции
- •5.2.1. Определение функции
- •О бщая форма записи заголовка функции
- •5.2.2. Функции пользователя
- •5.2.3. Рекурсивные функции
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •6. Массивы. Данные типа array
- •Одномерные массивы
- •Общая форма записи
- •Общая форма записи
- •6.2. Многомерные массивы
- •6.3. Способы работы с массивами
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •Обработка литерных величин. Данные типа char и string
- •7.1. Тип данных char
- •Работа программы
- •7.2. Массивы литер
- •7.3. Тип данных string
- •7.4. Строковые функции и процедуры
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •8. Множества. Данные типа set
- •О бщий вид регулярного типа
- •8.1. Определение типа set
- •8.2. Операции над множествами
- •8.2.1. Принадлежность множеству
- •8.2.2. Сравнение множеств
- •8.2.3. Действия над множествами
- •8.3. Вывод множеств
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •9. Комбинированный тип. Данные типа record
- •9.1. Оператор типа record
- •9.2. Оператор with
- •9.3. Записи с вариантами
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •10. Файловый тип
- •10.1. Определение и описание типизированного файла
- •Общая форма записи
- •10.2. Типы файлов. Процедура работы с файлами
- •10.3. Основные приемы работы с файлами
- •10.4. Текстовые файлы
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Типизированные файлы
- •Текстовые файлы
- •Программирование графики
- •Основные понятия компьютерной графики
- •Формирование изображения на экране
- •Инициализация графического режима
- •Простейшие графические операторы (процедуры)
- •Основные приемы работы с графикой
- •Работа с цветом
- •Заполнение (закрашивание) произвольной замкнутой фигуры
- •Построение простейших геометрических фигур
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Библиографический список
Контрольные вопросы
Чем принципиально отличается файловый тип данных от всех остальных типов языка Паскаль?
Если файл объединяет величины одного типа, то как он называется?
Фиксируется ли число элементов файла при его объявлении?
Какие бывают типы файлов по способам доступа к их элементам?
Каково назначение процедуры ASSIGN?
С помощью каких процедур открывают типизированный файл для записи в него новых элементов?
Что осуществляет процедура CLOSE?
Какие процедуры используют для доступа к элементам файла (чтения из файла)?
Каким образом в текстовом файле образуются строки?
Какие логические функции используются при работе с файлами и какова их роль?
Задания для самостоятельной работы
Пример 1. Пусть имеется готовый файл целых чисел Dan1.dat. Вычислить сумму его элементов и результат вместе с исходными данными записать в файл Dan2.dat.
Решение. При работе с файлами необходимо помнить о том, всякий файл данных на внешнем носителе (имеющий имя) должен в программе быть связан с файловой переменной. Кроме того, при работе с ним нужно следить за открытием файла (причем, указывать конкретно для какой цели: чтение или запись) и закрытием после сеанса работы. В нашем примере, нужно открыть файл Dan1.dat для чтения, а файл Dan2.dat – для записи. При чтении файла Dan1.dat нужно не только суммировать его элементы, но и «перекачивать» их в файл Dan2. По завершению этой работы полученная сумма добавляется в конец второго файла
Var F1, F2: file of integer;
S, N : integer;
Begin
Assign (F1, ‘Dan1.dat’); {Связь первого файла с перменной F1}
Assign (F2, ‘Dan1.dat’); {Связь второго файла с перменной F2}
Reset (F1); Rewrite (F2); {Открытие файлов для чтения и для записи}
S := 0;
While Not EOF (F1) do
{ Прохождение по файлу F1, Подсчет суммы и запись его элементов в файл F2}
Begin
Read ( F1, N);
Write (F2, N);
S := S + N;
End;
{Запись суммы элементов в конец файла F2}
Write (F2, S);
Close (F1); Close (F2);
Readln
End.
Пример 2. Дан текстовый файл, содержащий только целые числа. Все числа в файле разделены пробелами и разбиты на строки. Следует вывести эти числа на экран построчно и подсчитать число элементов в каждой строке.
Решение. Для решения этой задачи нужно предварительно создать текстовый файл из чисел (это можно сделать в среде TurboPascal c помощью New меню File) и сохранить его, например, под именем Int.dat. При работе с текстовым файлом надо помнить о том, что обработка каждой строки файла завершается признаком конца строки Eoln (F). Поэтому в нашей программе нужно использовать два вложенных оператора While, внешний из которых «идет» до конца файла, а внутренний – до конца строки.
Var F : text;
x, k : integer:
Begin
Assign (F, ‘Int.dat’); Reset (F);
{Проход по всемй файлу}
While not Eof (F) do
Begin
k := 0;
{Проход по строке}
While not Eoln (F) do
Begin
{Считывание очередного элемента, вывод его на экран и увеличение счетчика числа элементов в строке}
Read (F, x);
Write (x, ‘ ‘);
k := k + 1;
end;
Writeln ( ‘ В строке’, k, ' элементов’);
Readln (F); {Переход к следующей строке файла}
End;
Close (F);
Reradln;
End.
Задание. Составить программу, реализующую конкретную схему действий. В содержимое программы должна входить процедура формирования исходного файла нужного типа и формата.