Turbo Pascal 7.1 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1) Введение. Символы. Числа. Идентификаторы. Типы данных 2) Общая структура программ. Оформление программ 3) Операторы ввода и вывода данных 4) Переменные. Константы. Оператор присваивания 5) Вывод цветного текста. Модуль Crt 7) Математические операции. Стандартные функции. Возведение в степень. Случайные числа 8) Ветвления в программах. Оператор ветвления If 11) Циклы в программах. Арифметический цикл Для (For) 12) Итерационный цикл До (Repeat) 13) Итерационный цикл Пока (While) 18) Строки. Работа со строками (продолжение следует)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Символы языка Pascal:
26
латинских строчных и прописных букв:
Пробел, нижнее подчеркивание _ Цифры: 0 1 2 3 4 5 6 7 8 9 Знаки операций:
Ограничители: . , ' ( ) [ ] (. .) { } (* *) .. : ; Спецификаторы: ^ # $ Числа в языке Pascal, в основном, используются в десятичной системе счисления:
Целые числа записываются в форме без
десятичной точки (отрицательные - со
знаком), например:
217
-45
8954
+483
Можно использовать шестнадцатеричную форму записи чисел: $7F $А3F $ABC0
Комментарии - пояснения в программах записываются в скобках { } или (* *) и могут занимать любое число строк. Комментарии игнорируются компилятором.
Идентификаторы - это имена любых
объектов в программе (переменных, констант, меток, процедур,
функций, модулей и т.д.) Идентификаторы (имена) могут состоять
только из букв латинского алфавита (причем, строчные и прописные
буквы не различаются), цифр (но цифра не должна стоять на первом
месте!) и символа нижнего подчеркивания. Также запрещено использовать в качестве идентификаторов зарезервированные служебные слова и команды.
Типы данных языка Pascal Компилятор языка Pascal требует, чтобы сведения об объеме памяти, необходимой для работы программы, были предоставлены до начала ее работы. Для этого в начале программы нужно перечислить все переменные, используемые в программе. Кроме того, необходимо также указать, сколько памяти каждая из этих переменных будет занимать. Все это можно сообщить, указав тип будущей переменной. Имея информацию о типе переменной, компилятор понимает, сколько байт необходимо отвести под нее, какие действия с ней можно производить и в каких конструкциях она может участвовать.
* Операции Div и Mod - описаны в разделе Математические операции Программа, записанная по правилам стандартного языка Паскаль должна иметь следующую структуру: Program name1; {имя программы,точку с запятой ставить в заголовке обязательно!}Uses Crt, graph; {список подключенных модулей, точку с запятой ставить обязательно!}Label m1, m2; {Список меток из основного блока программы} Const g=9.8, f=200; {Определение констант в программе}
Var
a,
b: integer;
{раздел описания переменных,
a, b - целые числа} Procedure work (r: integer; s: real; var q: real ); {описание процедуры work}
... ...
оператор1; {основной блок программы: операторы, команды, действия}
оператор2;
{точки с запятыми после каждого оператора
ставить обязательно!} End. {в конце программы ставится точка!} Правила оформления программ:
Операторы ввода-вывода необходимы для ввода в компьютер данных с клавиатуры и вывода результатов расчета на экран монитора. Для того, чтобы ввести данные вручную (с консоли), применяются команды Read и Readln:
Read(a);
{ввод значения a} После этих команд компьютер ожидает действий пользователя. Пользователь набирает на клавиатуре значения переменных в том порядке, в котором они указаны в списке, отделяя их друг от друга пробелами. В конце ввода нажимает Enter. Команду Readln; всегда следует писать в конце программы, перед командой End. для того, чтобы результат остался на экране, ожидая дальнейших действий пользователя, например, нажатия какой-либо клавиши. Для того, чтобы вывести на экран какое-либо сообщение, используются команды Write и Writeln:
Write
(а);
{вывести
значение переменной а}
Для совместного вывода текста и значений переменных используйте такую запись: Writeln ( 'Ответ: ', c ); { вывод текста Ответ: и значения переменной c}
Чтобы выводимые числовые значения не сливались
визуально в одно число, перечисляемые в операторе Writeln
переменные следует разделять пробелами, заключенными в апострофы '
'
Вывод данных по формату
Другой способ разделения выводимых данных заключается в использовании формата длины поля:
Для целых чисел (типа Integer):
Writeln (A:n);
Если количество цифр в значении переменной окажется меньше, чем было указано в длине поля вывода n, то выводимые символы будут выравниваться по правой границе отведенного поля, а оставшееся слева от числа пустое пространство будет заполнено пробелами. Если длина поля окажется недостаточной , Pascal автоматически увеличит длину поля до необходимого размера. Для вещественных чисел (типа Real) в формате поля вывода необходимо указать общую длину и количество знакомест, выделяемых под дробную часть числа (т.е. определяет количество знаков после запятой):
Writeln
(A:n:k);
Пример:
команда Writeln (X:10:3); Переменная - это несколько ячеек оперативной памяти, имеющих общее имя и предназначенных для хранения одного значения определенного типа. Запоминание переменной своего значения или, иначе говоря, запись в ячейки памяти данных, выполняется с помощью оператора присваивания:
a:= b;
–
переменной а
присваивается значение b.
Примеры:
а := 3.75;
Константа - это объект, значение которого известно еще до начала работы программы (постоянное значение). Константы незаменимы при использовании в тексте программы многократно повторяемых значений, или в случае необходимости изменения этих значений сразу во всей программе. Const a=5; b=7; g=9.8; Для вывода на экран текста используется команды Write (' '); и Writeln (' '); - внутри апострофов пишется текст. Для того, чтобы можно было изменить цвет фона экрана и цвет символов, необходимо в начале программы (перед словом Begin) подключить модуль Crt с помощью команды Uses Crt; Процедура ClrScr; очищает экран (при этом экран закрашивается указанным фоновым цветом, а курсор устанавливается в левый верхний угол экрана).
Цвет фона
устанавливает
процедура
TextBackGround (Х);
Цвет символов
устанавливает
процедура
TextColor (Х);
* В таблице для фона можно применять только цвета 0–7, а для символов – цвета 0–15. Дополнительно можно использовать процедуры:
NormVideo;
-
устанавливает
нормальную яркость
символов
(используется по
умолчанию)
GotoXY(k,n); - установка курсора в нужное место на экране, где k - номер позиции (столбца), n - номер строки (на экране 80 символов, 25 строк) Пример:
Program SvetText; Линейными называются программы, в которых действия выполняются последовательно в порядке записи команд. Решение задач всегда начинается с построения математической модели (с формулы) Пример линейной программы: Деление простых дробей.
Program Division;
{имя программы} Пример линейной программы: Вычисление времени падения яблока.
Program Newton;
Помимо обычных математических операций сложения (+), вычитания (–), умножения (*) и деления (/) в Паскале используются и другие операции:
a:=X
div Y;
- выполняет деление целых чисел
X на Y (без
остатка, нацело!)
b:=X mod Y;
- получает остаток от деления целых
чисел Х на
Y:
Для того, чтобы уменьшать или
увеличивать переменные или числа на определенные
величины существуют процедуры:
Inc (а);
– при отсутствии 2-го параметра
увеличивает переменную на 1
Dec (a);
– при
отсутствии 2-го параметра уменьшает переменную
на 1 В качестве математических операций часто используются стандартные математические функции:
Запись алгебраических выражений:
S=x2+2xy+y2
на языке Pascal
запишется так:
S := sqr(x) + 2*x*y + sqr(y); Возведение в степень: В языке Pascal нет функции для возведения числа в степень, поэтому для того, чтобы возвести число а в степень b (х=ab) используют запись x:= exp (b*Ln(a)); Примеры:
(x-3)7
запись: exp
(7*ln(x-3)) Случайные числа – это такая последовательность чисел, для которой невозможно предсказать следующее число, даже зная все предыдущие. Для генерации случайных чисел в начале программы необходимо вызвать процедуру Randomize; Функция Random (X); возвращает случайное целое число в диапазоне от 0 до значения X-1. Например, Random (100); возвратит в программу случайное целое число из диапазона от 0 до 99 включительно. Для изменения диапазона значений случайных целых чисел используется запись Random (Х)+k, где k - положительное или отрицательное целое число, начало диапазона.
Например, функция вида
а:=Random
(21)-10;
- вызовет случайное целое число из диапазона от
-10 до 10, Если функция Random; используется без параметров, то она возвращает случайное дробное число из диапазона [0, 1) Для изменения диапазона случайных дробных чисел используют запись: Random+k; где k - положительное или отрицательное целое число, начало диапазона или запись вида z*Random; где z - множительный коэффициент
Например, функция
а:=Random+10;
вызовет
случайное дробное число из диапазона от 10 до
11,
Ветвление
– выбор одного из двух возможных
действий в зависимости от условия. Условный оператор If выбирает между двумя вариантами развития событий:
If
условие
{если…} Обратите внимание, что внутри команды (после слов If и Then) знак ; не ставится - это разорвало бы оператор!
If
x > 0
1. Сначала вычисляется
значение условия
– это может быть
любое выражение, возвращающее значение типа
boolean
В операторе if
может быть использовано сложное
условие, состоящее из нескольких простых
условий (отношений), связанных с помощью
логических операций: В этом случае отдельные логические выражения нужно заключить в скобки ( ) и соединить их союзами and, or, not, xor Пример: ввести с клавиатуры 2 числа a и b, сравнить их и вычесть из большего числа меньшее.
Program Sravnenie;
Begin
if a
> b
{если а больше
b}
writeLn (‘Результат ‘ , c);
{вывести значение
переменной с} Если после слов Then и Else выполняется больше одного оператора, т.е. несколько команд, то их следует писать между словами Begin и End (в конце команды ветвления после слова End ставиться не точка, а точка с запятой!)
Program Sravnenie;
Begin
if a
> b
{если а больше
b}
readln; Пример со сложным условием: В зависимости от возраста, ограниченного 7 и 16 годами, принимаем в школу или нет.
Program Priem;
Оператор Case позволяет сделать выбор между несколькими вариантами:
Case
переключатель
of Обратите внимание, что после Else двоеточие не ставится! Оператор End; относится к концу команды выбора, а не программы! В каждом списке констант оператора Case можно указывать несколько значений через запятую или в виде диапазона (диапазон указывается через двоеточие ..) Если для каждого списка нудно выполнить более одного оператора, то их следует заключить между словами Begin и End; Работа оператора Case происходит следующим образом:
1. Вычисляется
значение
переключателя;
Пример: По номеру месяца выводится время года.
Program Season;
Оператор безусловного перехода применяется в случаях, когда после выполнения некого оператора надо перейти к определённому месту программы, обозначенному меткой. Метка может представлять собой целое число (от 0 до 9999) или идентификатор (имя). Одной меткой можно пометить только один оператор.
Все
метки должны быть
описаны в разделе
Label
перед
началом программы
(перед
словом
Begin).
Оператор перехода
имеет вид:
Оператор с меткой в
программе будет
выглядеть так: Примечание: использование безусловных переходов типа GoTo в структурном и надежном программировании считается «дурным тоном». Если вы все же считаете необходимым использование этого оператора в программе, то:
-
Не
следует
злоупотреблять
переходами; Пример:
Program
Perehod; В большинстве задач, встречающихся на практике, необходимо производить многократное выполнение некоторых действий. Такой многократно повторяющийся участок вычислительного процесса называется циклом. Существует возможность организовать цикл внутри тела другого цикла. Такой цикл будет называться вложенным циклом. Если заранее известно количество необходимых повторений, то цикл называется арифметическим. For i := a to b do оператор; Читается так: Для переменной i от начального значения a до конечного значения b выполнять оператор (являющийся телом цикла) Оператор For вызывает оператор (действие), находящийся после слова do по одному разу для каждого значения в диапазоне от значения a до значения b Выполняется цикл For по следующему алгоритму:
1.
Переменной-параметру
присваивается
начальное
значение;
Существует еще один вариант цикла for, который позволяет производить обработку в противоположном направлении (от большего к меньшему): For i:= a downto b do оператор; Цикл for-downto работает аналогично циклу for-to, только значение переменной i не увеличивается на 1, а уменьшается на 1. * Если после слова Do выполняется несколько операторов, то их следует писать между словами Begin и End (в этом случае после слова End ставиться не точка, а точка с запятой!) Запомните: В операторе цикла не разрешается присваивать параметру цикла i какое-либо значение. После окончания цикла значение параметра цикла i неопределенно. Пример: Таблица квадратов чисел от 1 до 10
ProgramTablica; В итерационных циклах производится проверка некоторого условия, и в зависимости от результата этой проверки происходит либо выход из цикла, либо повторение выполнения тела цикла. Если проверка производится после выполнения тела цикла, то это цикл с постусловием (цикл До). Тело цикла До всегда выполняется хотя бы один раз. Repeat оператор1; оператор2; ... Until выражение; Читается так: Повторять выполнение оператора1, оператора2 … До выполнения условия. * Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому дополнительные служебные слова Begin и End не нужны!
Операторы
между
словами
Repeat
и
Until
повторяются
до тех
пор,
пока
логическое
выражение
является
ложным
(False).
Пример:
Program
Povtor;
Если проверка условия производится перед выполнением блока операторов, то такой итерационный цикл называется циклом с предусловием (цикл Пока) While условие Do оператор; Можно прочитать так: Пока истинно условие, Выполнять оператор (или операторы). Оператор после Do будет выполняться до тех пор, пока условие (логическое выражение) принимает истинное значение (True). Истинность условия проверяется каждый раз перед очередным повторением тела цикла. Как только логическое выражение принимает значение ложь (False), осуществляется переход к оператору, следующему за While. Если первая проверка условия показывает, что оно ложно, то тело цикла Пока может не выполниться ни разу. * Если после слова Do выполняется несколько операторов, то их следует писать между словами Begin и End (в этом случае после слова End ставиться не точка, а точка с запятой!) Пример:
Program
Stop;
Запомните:
-
Вместо
арифметического
цикла
For
всегда можно
использовать
цикл
с
предусловием
While.
Массив - это совокупность элементов одного типа. Характеризуется массив следующим:
-
Каждый
компонент
массива
может
быть
явно
обозначен
и к
нему
имеется
прямой
доступ;
Одномерный массив представляет из себя следующую структуру:
Значения
элементов
указаны
в
ячейках
таблицы:
1
2
3
...
...
...
10
–
порядковые
номера
(индексы)
элементов
массива Массив должен быть объявлен в разделе объявления переменных Var в начале программы. Для обозначения массива используется имя переменной-массива и индексы, которые указывают нужный элемент. Тип индекса может быть только порядковым. Чаще всего используется интервальный тип (диапазон). Описывается массив в разделе описаний так:
Var
М:
array
[1..10]
of
real;
или так: type M = array[1..10] of real;
или
так:
В программе можно обращаться к любому элементу этого массива. Делается это посредством указания имени переменной с номером элемента в квадратных скобках. Примеры:
M[1]
:=
0.1;
{1-му
элементу
массива
присвоить
значение
0.1}
Ввод элементов массива:
1)
С
клавиатуры:
2)
С
помощью
типизированных
констант:
3)
C
помощью
генератора
случайных
чисел:
Вывод элементов массива:
1) В
строку:
2) В
таблицу
(в
столбик
с
разделительной
чертой):
S:=0
{начальное
значение
суммы
=0}
P:=1
{начальное
значение
произведения} Пример: Вычисление суммы элементов массива:
Program
Summa;
Пример: Поиск максимального числа в массиве:
Program
PoiskMax;
A - двумерный масси
Описание: A: array [1..i] Of Array [1..j] of integer; К элементам двумерного массива можно обращаться по индексам: A[1,1]:=12; Работа с многомерными массивами почти всегда связана с организацией вложенных циклов. Внешний цикл предназначен для изменения номера строки i, а второй, внутренний, - для изменения номера столбца j в текущей строке i. Ввод двумерного массива: 1) С клавиатуры: 2) Чтобы заполнить двумерный массив (матрицу) случайными числами, используют конструкцию вида: 3) Заполнение по индексам (для квадратной матрицы n*n). Элементы, у которых i<j находятся над главной диагональю матрицы: Элементы, у которых i>j находятся под главной диагональю матрицы: Элементы, у которых i+j=n+1 находятся на побочной диагонали: for i:=1 to n do A[i,n–i+1]:= s; {или какое-нибудь число} Элементы, у которых i+j<n+1 находятся над побочной диагональю: Элементы, у которых i+j>n+1 находятся под побочной диагональю: Вывод двумерного массива: 1) В строку 2) Для красивого вывода матрицы на экран в виде таблицы используйте такой цикл: Пример: Найти сумму всех элементов двумерного массива 3*3 Program Summa; При работе с массивами очень часто возникают задачи перестановки элементов массива, например, поменять их местами.
1)
Удаление
из
массива
одного
элемента
с
номером
k:
2) Перестановка элементов массива:
I
способ
–
с
помощью
дополнительной
переменной
b:
II
способ
– с
помощью
арифметических
действий: 3) Перенести в конец одномерного массива элемент из k-той позиции:
for
i:=1
to n
do
4) Перенести в начало одномерного массива элемент из k-той позиции:
for
i:=1
to n
do
5)
Реверс
массива:
переставить
элементы
массива
в
обратном
порядке
(обмен
происходит
до
середины
диапазона
через
третью
I
способ
II
способ
–
вывод
через
обратный
цикл
for
i:=n
downto
1
do... 7) Удаление k-той строки
for
i:=k
to n
do
8)
Вставка
строки
после
k-той
(в
описании
массива
учтите,
что
размерность
массива
при
выводе
увеличится!)
for
i :=
k+1
to n
do
*
Для
удаления
или
вставки
столбцов
используются
практически
те
же
алгоритмы,
только
изменяется
размерность
и
происходит
Сортировка – процесс перестановки элементов массива в определенном порядке (по возрастанию, по убыванию и т.д.).
1)
Базовый
алгоритм
сортировки:
… for i := 1 to n–1 do {начиная с 1-го до предпоследнего элемента} for j := i+1 to n do {сравниваем со следующим и до последнего} if a[i] > a[j] then begin {если элемент больше следующего, то…} c := a[i]; {меняем местами через доп. переменную} a[i] := a[j]; a[j] := c; end; …
Где
i
–
номер
элемента,
который
сравниваем
(от
1
до
n–1)
2)
Сортировка
пузырьковым
методом
состоит
из
двух
циклов:
…
...
Таким
образом,
алгоритм
будет
состоять
из
n–1
проходов,
каждый
из
которых
будет
включать
четыре
действия:
…
Строки - последовательность символов, записанная между одиночными апострофами (' '). Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации знака # и кода символа). При этом используется таблица кодировки ASCII (всего можно описать 256 символов). Существует два типа строковых переменных: Char и String. 1) Переменная типа Char (символ) описывает один отдельный символ кодовой таблицы ASCII (всего можно описать 256 символов).
Символьные
переменные
описываются
в
разделе
Var
z:
char;
Функция Ord (a) возвращает код символа в системе ASCII: k:=Ord(a); где k – числовой код, а – символ.
Функция
Chr
(k)
возвращает
символ
по
его
числовому
коду.
k
можно
так
же
представить
как
числовую
константу,
или
можно
пользовать
запись
#k.
Пример:
#161#168#226
(закодировано
слово
бит)
Функция UpCase(a) при наличии в параметре a прописных латинских символов преобразует их в заглавные, а все остальные символы выдаст без изменения.
2)
Переменная
String
(Строка)
–
последовательность
из
некоторого
количества
символов.
Количество
символов
последовательности
называется
длиной
строки.
Строковые переменные описываются в разделе var так:
var
s:
string[n];
где
n
-
максимально
возможная
длина строки
(целое
число
в
диапазоне
1..255)
Для работы со строками используются следующие функции: Length (s); - функция возвращает в качестве результата значение длины строки (количество символов в строке).
Copy
(s,
i,
k);
-
функция
возвращает
часть
строки,
выделенную
из
исходной
строки
s,
начиная
с
символа
под
номером
i
Delete (s, i, k); - удаляет из исходной строки s часть строки, начиная с символа под номером i и длиной k символов. Insert (s1, s, i); - предназначена для вставки строки s1 в строку s, начиная с символа i этой строки.
Pos
(frag,
stroka);
–
осуществляет
поиск
некоторого
фрагмента
frag
в
строке
stroka.
Eoln(s); - логическая функция, результат выполнения которой равен True, если достигнут маркер конца строки s. Примеры:
а)
s :=
'Система
Turbo
Pascal';
{исходная
цепочка
символов}
b)
s:=
'Система
Turbo
Pascal';
c)
s:=
'Система
Pascal';
d) While not Eoln(s) do… {пока не достигнут конец строки s, делать…} В программировании часто встречаются случаи, когда в разных частях программы встречается одна и та же последовательность операторов, решающая одинаковую задачу. В Паскале, как и в других языках программирования, этот фрагмент можно представить как отдельную самостоятельную программу, имеющую собственное имя. При этом такая программа записывается только один раз, а вызывать ее можно многократно в разных частях программы. Такой принцип дефрагментации программы называется нисходящим программированием и соответствует принципам структурного программирования. Использование подпрограмм позволяет: Объект такого рода называется подпрограммой. Существуют две разновидности подпрограмм: процедуры и функции. Процедура – вспомогательный алгоритм, описывающий некоторые действия. Процедура имеет ту же структуру, что и главная программа, содержит разделы Label, Const, Var и выполняемую часть. Procedure Имя_процедуры (Переменные: Тип_переменных); Обратите внимание, что имеется только два отличия процедуры от основной программы: процедура начинается с заголовка Procedure и заканчивается точкой с запятой. Переменные, которые описаны в основной программе, называются – глобальными. Глобальные переменные действуют во всей программе и в каждой ее процедуре.
Переменные, которые описаны и используются внутри процедуры, называются – локальными. Локальные переменные действуют только внутри данной процедуры!
Фактические параметры – это параметры, которые указываются в скобках при вызове процедуры. При вызове фактические параметры как бы подставляются вместо формальных, стоящих на тех же местах в заголовке.
program Figura; Procedure Ploshad( a, b, c:real; var s:real ); {формальные параметры}
Правила использования процедур с параметрами:
2) Количество фактических параметров должно соответствовать количеству формальных параметров. Функция – вспомогательный алгоритм для выполнения вычислений, возвращающий от своей работы какое-либо значение в основную программу. Помимо стандартных математических функций, существующих в Паскале, можно создавать свои свою функции, описывая их в следующем виде:
Function
Имя_Функции
(var
Параметр1:
Тип1;
{имя
функции,
параметры,
тип
параметров} Пример: Использование функции тангенса
Program
primer(input,
output); Рекурсией в программировании называется вызов функцией (процедурой) самой себя. Различают 2 формы рекурсии: прямую и косвенную. При прямой рекурсии процедура содержит оператор обращения к самой себе: A —>А При косвенной рекурсии одна процедура вызывает другую, которая сама либо посредством других процедур вызывает исходную процедуру: A —> B —> A Количество вложенных вызовов функции или процедуры называется глубиной рекурсии. Рекурсивная функция обязательно должна содержать в себе условие окончания рекурсии, чтобы не вызвать зацикливания программы! Пример рекурсии - функция вычисления факториала:
Program
Factorial;
Включение
динамика
производится
командой Sound(F);
Задержка
времени
(пауза)
Delay(t);
Отключение динамика – NoSound;
Пример: Гамма
Program
Gamma; Файл – это область на диске, имеющая имя. Текстовые файлы - файлы, состоящие из символов ASCII, которые содержат только текст без форматирования (т.е не содержат управляющих символов (с кодами < 32): ACSII (1 символ=1 байт) Unicode (1 символ=2 байта) *.txt, *.log, *.htm, *.html Текстовые файлы являются файлами с последовательным доступом. В любой момент времени доступна только одна запись файла. Другие записи становятся доступными лишь в результате последовательного продвижения по файлу. Текстовые файлы внутренне разделены на строки, длины которых различны. Для разделения строк используется специальный маркер конца строки. Объявляются текстовые файлы переменной типа text: var f : text; Обрабатывать их можно только последовательно с помощью процедур и функций: Assign(f, name) - устанавливает связь между именем файла в программе (файловой переменной ) и физическим именем файла. Reset(f) - открывает существующий файл для чтения. Rewrite(f) - создает и открывает новый файл для записи на внешнем устройстве (если файл ранее существовал, вся предыдущая информация из него стирается). Close(f) - закрывает открытый файл. Readln(f , st) - чтение строки st из файла f и переход на начало следующей ; Writeln(f, st) - запись строки st в файл f и маркера конца строки ; Append(f) - процедура, открывающая файл f для добавления строк в конец файла; Eoln(st) - логическая функция, результат выполнения которой равен True, если достигнут маркер конца строки st. Пример: В файле input.txt записаны числа (в столбик), сколько их – неизвестно. Записать в файл output.txt их сумму.
Program
in_out; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||