Знакомство с языком программирования Паскаль
УЗБЕКСКОЕ АГЕНТСТВО СВЯЗИ И ИНФОРМАТИЗАЦИИ
ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
ФЕРГАНСКИЙ ФИЛИАЛ
Кафедра: «Прикладная информатика»
КУРСОВАЯ РАБОТА
по курсу «ИНФОРМАТИКА»
Работу выполнил студент
______________________________
Группа _____________ Факультет ______________________________
Специальность ______________________________
Курсовая работа защищена с оценкой ____________________________
Руководитель _________ ______________________________
подпись Ф.И.О.
Фергана - 2009
УЗБЕКСКОЕ АГЕНТСТВО СВЯЗИ И ИНФОРМАТИЗАЦИИ
ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Кафедра: «Прикладная информатика»
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
Студент ___________________ Группа ______ Вариант _______
Задание
- ______________________________
______________________________ ______________________________ ______________________________ ___________ - ______________________________
______________________________ ______________________________ ______________________________ ___________ - ______________________________
______________________________ ______________________________ ______________________________ ___________ - ______________________________
______________________________ ______________________________ ______________________________ ___________
Руководитель:_________________
подпись Ф.И.О.
Задание принял к исполнению «___» _______________ 200_ г.
Подпись студента __________
План
- Знакомство с языком программирования Паскаль.
- Строки.
- Функции и процедуры для работы со строками.
- Файлы и работа с файловыми переменными.
5 . Программная часть.
5.1. Задание.
5.2. Блок-схема.
5.3. Код программы.
5.4. Пример работы.
6. Заключение.
7. Литература.
ЗНАКОМСТВО С ЯЗЫКОМ ТУРБО ПАСКАЛЯ
В этой работе описывается ядро Турбо Паскаля - минимальный набор средств, достаточный для написания сравнительно простых программ. В частности, рассматриваются все операторы языка, наиболее популярные типы данных и операции над ними. Вы познакомитесь с приемами разработки процедур и функций, позволяющими создавать структурированные программы. В заключительной части на примерах показано применение методики нисходящего программирования, обеспечивающей сравнительно простой и надежный способ детальной проработки алгоритма программы.
ФАЙЛЫ
Под файлом понимается либо именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного «виртуального» диска), либо логическое устройство - потенциальный источник или приемник информации. Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Турбо Паскаля, кроме файлов. Иными словами, нельзя создать «файл файлов». В- третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней Памяти. Файловый тип или переменную файлового типа можно задать одним из трех способов:
<имя> = FILE OF <тип>;
<имя> = TEXT;
<имя> = FILE;
Здесь <имя> - имя файлового типа (правильный идентификатор);
FILB, OF - зарезервированные слова (файл, из);
TEXT- имя стандартного типа текстовых файлов;
<тт> -
любой тип Турбо Паскаля,
Например:
type
product = record
name : String;
code : Word;
cost : comp
end;
text80 = file of String [80] ;
var
fl : file
f2 : text
f : file
f4 : text
f5 : file
of char;
of nrocLuct:
В зависимости от способа объявления можно выделить три вида файлов:
типизированные файлы (задаются предложением FILEOF...);
• текстовые файлы (определяются типом TEXT);
нетипизированные файлы (определяются типом FILE).
В наших примерах Fl, F4 nF5 - типизированные файлы, F2 - текстовый файл, F3 - нетипизированный файл. Вид файла, вообще говоря, определяет способ хранения информации в файле. Однако в Турбо Паскале нет средств контроля вида ранее созданных файлов. При объявлении уже существующих файлов программист должен сам следить за соответствием вида объявления характеру файла.
ДОСТУП К ФАЙЛАМ
Любой программе доступны два предварительно
объявленных файла со стандартными
файловыми переменными: INPUT - для
чтения данных с клавиатуры и OUTPUT - для
вывода на экран. Стандартный Паскаль
требует обязательного
В Турбо Паскале это необязательно, вот почему заголовок программы можно опускать.
Любые другие файлы, а также логические устройства становятся доступны программе только после выполнения особой процедуры открытия файла (логического устройства). Эта процедура заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла, а также в указании направления обмена информацией: чтение из файла или запись в него. Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре ASSIGN',
ASSIGN (<ф.п.>, <имя файла или л.у.>);
Здесь <ф.п.> - файловая переменная (правильный идентификатор, объявленный в программе как переменная файлово1 о тина); <имя файла или л.у. > - текстовое выражение, содержащее имя файла или логическое устройство.
Если имя файла задается в виде пустой строки, например, ASSIGN (f, ' '), то в зависимости от направления обмена данными файловая переменная связывается со стандартным файлом INPUT'или OUTPUT. a .'. О
Функции и процедуры для работы со строками
Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY{O..N]OFCHAR, однако, в отличие от последнего, количество символов в строке-переменной может меняться от 0 до N, где N - максимальное количество символов в строке. Значение N определяется объявлением типа STRING [N] и может быть любой константой порядкового типа, но не больше 255 . Турбо Паскаль разрешает не указывать N, в этом случае длина строки принимается максимально возможной, а именно iV=255.
Строка в Турбо Паскале
var st : String;
begin
if St [5] = "A1 then . . .
end.
Самый первый байт в строке имеет ьндехс 0 и содержит текущую длину строки. Первый значащий символ строки занимает второй байт и имеет индекс 1. Над длиной строки можно осуществлять необходимые действия к таким способом изменять длину. Например, удалить из строки все ведомые пробелы можно следующим образом:
var
st : String;
1 : Byte;
begin
i := orcUsttO]); (i - текущая длина строки}
while (i <> 0) and (st[i] = ' ') do
begin
dec(i); .
st[O] := chr(i)
end;
end.
Значение ORD(st[Q]), т.е. текущую длину строки, можно получить и с помощью функции LENGTH(st), например:
while (Length(st)oO) and (st [Length(st) ] =' ') do
st[O] := chr(Length(st)-l)
К строкам можно применять
St : = ¦ а ¦ + ' b' ;
st := st + 'С; {st содержит "abc"}
Если длина сцепленной строки превысит максимально допустимую длину N, то «лишние» символы отбрасываются. Следующая программа, например, напечатает символ 1:
var
st: String [1] ;
begin
WriteLn(st)
end.
Все остальные действия над строками и символами реализуются с помощью описываемых ниже стандартных процедур и функций.
СОUNТ (SI [,S2, ... , SN] ) - функция типа STRING; возвращает строку, представляющую собой сцепление строк-параметров SI, S2, ..., SN. COPY(ST, INDEX, COUNT) - функция типа STRING; копирует из строки ST COUNT'символов, начиная с символа с номером INDEX. DELETE (ST, INDEX, COUNT) - процедура; удаляет COUNT символов из строки ST, начиная с символа с номером INDEX.
INSERT (SUBST, ST, INDEX) - процедура; вставляет подстроку SUBST вегрку ST, начиная с символа с номером INDEX.
LENGTH (ST) - функция типа INTEGER; возвращает длину строки ST.
POS (SUBST, ST) - функция типа INTEGER; отыскивает в строке ЛТпервое вхождение подстроки SUBST и возвращает номер позиции, с которой она начинается; если подстрока не найдена, возвращается ноль.
STR(X hWIDTH [:DECIMALS] 1 , ST) - процедура; преобразует число X любого вещественного или целого типов в строку символов STtok, как это делает процедура WRITELNnepeu выводом; параметры WIDTH и DECIMALS, если они присутствуют, задают формат преобразования' WIDTH определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного шга целого числа X, a DECIMALS - количество символов в дробной части (этот параметр имеет смысл только в том случае, когда Г- вещественное число). VAL(ST, X, CODE) - процедура; преобразует строку символов ST ВО внутреннее представление целой или вещественной переменной X, которое определяется типом этой переменной; параметр CODE содержит ноль, если преобразование прошло успешно, и тогда в Х помещается результат преобразования, в противном случае он содержит номер позиции в строке ST, где обнаружен ошибочный символ, и в этом случае содержимое Хне меняется; в строке STмогут быть ведущие пробелы, однако ведомые пробелы недопустимы; например, обращение val (' 123 ' , k, i) пройдет успешно: к получит значений 123, в / будет помещен 0, в то время как обращение val (' 123 ' , k, i) будет ошибочным: значение к не изменится, а i будет содержать 4. UPCASE (СН) - функция типа CHAR; возвращает для символьного выражения СН, которое должно представлять собой строчную латинскую букву, соответствующую заглавную букву; если значением СН является любой другой символ (в том числе строчная буква русского алфавита), функция возвращает его без преобразования.
Примеры:
var
х : Real;
у : Integer;
St,Stl: String;
begin
st := concat D2* ,'345') ; {строка st содержит 12345}
stl := copy (at, 3, Length (at)-2) ; {stl содержит 345}
insert ('-' ,stl, 2) ; {строка stl содержит 3-45}
delete (st,pos (' 2 ' , st) , 3) ; {строка st содержит 15}
str(pi:6:2,st) ; {строка st содержит 3.14}
val ('3,1415 ' ,x,у) ; {у содержит 2, x остался без изменения}
end.
Операции отношения =, о, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов (см. табл.4.1 и првл.2). Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются значением СНЩО) .
Следуютттие операции отношения дадут значение TRUE: 'А' > '1'
¦ Turbo' < ' Turbo Pascal' 'Паскаль' > 'Turbo Pascal'
Инициация файла
Инициировать файл означает указать для этого файла направление передачи данных. В Турбо Паскале можно открыть файл для чтения, для записи информации, а также для чтения и записи одновременно. Для чтения файл инициируется с помощью стандартной процедуры RESET: RESET (<ф.п.>); Здесь <ф.п. > - файловая переменная, связанная ранее процедурой ASSIGN с уже существующим файлом или логическим устройством приемником информации. При выполнении этой процедуры дисковый файл или логическое устройство подготавливается к чтению информации. В результате специальная переменная-указатель, связанная с этим файлом, будет указывать на начало файла, т.е. на компонент с порядковым номером 0.
Если делается попытка инициировать чтение из несуществующего файла или из логического устройства PRN, возникает ошибка периода исполнения, которая может быть сообщена программе ненулевым значением встроенной функции IORESULT пяла WORD. Например, следующий фрагмент программы позволяет установить, существует ли требуемый файл на диске:
var
f: file of Char;
begin
assign(f,'myfile.dat');
{$!'} {Отключаем контроль ошибок ввода-вывода;
reset (f) ;
{$!+} {Включаем контроль ошибок ввода-вывода}
if IOResult <> о then
{Файл не существует}
else
{Файл существует}
end.
В этом фрагменте с помощью директивы компилятора {$!*} отключается автоматический контроль ошибок ввода-вывода. Если этого не сделать, то отсутствие файла приведет к аварийному завершению программы. В Турбо Паскале разрешается обращаться к типизированным файлам, открытым процедурой RESET (т.е. для чтения информации), с помощью процедуры WRITE (т.е. для записи информации). Такая возможность позволяет легко обновлять ранее созданные типизированные файлы и при необходимости расширять их. Для текстовых файлов, открытых процедурой RESET, нельзя использовать процедуру WRITE или WRITELN.
Стандартная процедура
REWRITE (<ф.п.>) инициирует запись информации в файл или в логическое устройство, связанное ранее с файловой переменной <ф.п.>. Процедурой REWRITE нельзя инициировать запись информации в ранее существовавший дисковый файл: при выполнении этой процедуры старый файл уничтожается и никаких сообщений об этом в программу не передается. Новый файл подготавливается к приему информации и его указатель принимает значение 0.
Стандартная процедура APPEND (<ф.п.>) инициирует запись в ранее существовавший текстовый файл для его расширения, при этом указатель файла устанавливается в его конец. Процедура APPEND применима только к текстовым файлам, т.е. их файловая переменная должна иметь тип TEXT'(см. выше). Процедурой APPEND нельзя инициировать запись в типизированный или не- типизированный файл. Если текстовый файл ранее уже был открыт с помощью RESET или REWRITE, использование процедуры APPEND приведет к закрытию этого файла и открытию его вновь, но уже для добавления записей.
ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ С ФАЙЛАМИ
Ниже описываются процедуры и функции, которые можно использовать с файлами любого вида. Специфика работы с типизированными, текстовыми и нетипизированными файлами рассматривается в следующих разделах. Процедура Close. Закрывает файл, однако связь файловой переменной с именем файла, установленная ранее процедурой ASSIGN, сохраняется. Формат обращения: CLOSE (<ф.п.>) При создании нового или расширении старого файла процедура обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге. Функции процедуры CLOSE выполняются автоматически по отношению ко всем открытым файлам
при нормальном завершении программы.
Поскольку связь файла с
RENAME (<ф.П.>, <новое ИМЯ>)
Здесь <новое имя> - строковое выражение, содержащее новое имя файла. Перед выполнением процедуры необходимо закрыть файл, если он ранее был открыт процедурами RESET, REWRITE или APPEND. Процедура ERASE. Уничтожает файл. Формат обращения:
ERASE (<ф.п.»
Перед выполнением процедуры
необходимо закрыть файл, если
он ранее был открыт
ТЕКСТОВЫЕ ФАЙЛЫ
Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу TEXT, Текстовые файлы предназначены для хранения текстовой информации. Именно в такого типа файлах хранятся, например, исходные тексты программ. Компоненты (записи) текстового файла могут иметь переменную длину, что существенно влияет на характер работы с ними. Текстовый файл трактуется в Турбо Паскале как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. При создании текстового файла в конце каждой записи (строки) ставится специальный признак EOLN (EndOfLiNe- конец строки), а в конце всего файла - признак EOF(End Of File - конец файла). Эти признаки можно протестировать одноименными логическими функциями (см. ниже). При формировании текстовых файлов используются следующие системные соглашения:
EOLN- последовательность кодов ASCII #13 (CR) и #10 (LF);
EOF- код #26 стандарта ASCII.
Для доступа к записям применяются процедуры READ, READLN, WRITE, WRTTELN. Они отличаются возможностью обращения к ним с переменным числом фактических параметров, в качестве которых могут использоваться символы, строки и числа. Первым параметром в любой из перечисленных процедур может стоять файловая переменная. В этом случае осуществляется обращение к дисковому файлу или логическому устройству, связанному с переменной процедурой ASSIGN. Если файловая переменная не указана, происходит обращение к стандартным файлам INPUTn О UTPUT.
Процедура READ. Обеспечивает ввод символов, строк и чисел. Формат обращения: READ (<ф.П.>,<СП.ВВОДЭ>) или READ (<СП.БВОДа>)
Здесь <cn.eeoda> - список ввода: последовательность из одной или более переменных типа CHAR, STRING, а также любого целого или вещественного типа. При вводе переменных типа CHAR выполняется чтение одного символа из файла и присваивание считанного значения переменной. Если перед выполнением чтения указатель файла достиг конца очередной строки, то результатом чтения будет символ CR (ASCII код #13), а если достигнут конец файла, то - символ EOF (код #26). При вводе с клавиатуры символ CR вводится при нажатии на клавишу Enter, а символ EOF- при одновременном нажатии клавиш CTRL и Z. При вводе переменных типа STRING количество считанных процедурой и помещенных в строку символов равно максимальной длине строки, если только раньше не встретились символы CR или EOF. В этом случае сами символы CR и EOFe строку не помещаются. Если количество символов во входном потоке данных больше максимальной длины строки, «лишние» символы до конца строки отбрасываются, а новое обращение к READ возвращает пустую строку. Таким образом, процедура READ не в состоянии прочесть последовательность строк: первая строка будет прочитана нормально, а все последующие окажутся пустыми. Для ввода следовательности строк нужно использовать процедуру READLN(рл. ниже). При вводе числовых переменных процедура READ вначале вьщеляет подстроку во входном потоке по следующему правилу: все ведущие пробелы, символы табуляции и маркеры конца строк EOLN пропускаются; после выделения первого значащего символа, наоборот, любой из перечисленных символов или символ EOF служат признаком конца подстроки. Вьщеленная таким образом подстрока затем рассматривается как символьное представление числовой константы соответствующего типа и преобразуется во внутреннее представление, а полученное значение присваивается переменной. Если в подстроке был нарушен требуемый формат представления численной константы, возникает ошибка ввода-вывода. Если при пропуске ведущих пробелов встретился символ EOF, переменная получает значение 0. Отметим, что в Турбо Паскале не предусмотрен ввод шестнадцатеричных констант. При использовании процедуры READ применительно к стандартному файлу INPUT, т.е. при вводе с клавиатуры, символьные строки запоминаются в буфере, который передается процедуре только после нажатия на клавишу Enter. Это позволяет редактировать данные при их вводе. Для редактирования используются следующие клавиши:
• Backspace, Ctrl-H, перевод курсора влево - стирают символ слева от курсора;
перевод курсора вправо - восстанавливает символ за символом предыдущую строку ввода;
в Ctrl-ZEnter - завершает ввод по процедуре READ; оставшиеся «лишние» символьные параметры принимают значение СИЩ26), строки возвращаются пустыми, а численные переменные остаются без изменения. Максимальная длина буфера ввода при работе с клавиатурой составляет 127 символов. Ввод с клавиатуры по процедуре READ сопровождается эхо-повтором вводимых символов на экране ПК.
Процедура READ прекрасно приспособлена
к вводу чисел. При обращении
к ней за вводом очередного целого
или вещественного числа
const
N = 1000; {Максимальная длина ввода}
var
f : text;
m : array [1..N] of real;
l : Integer;
begin
assign(f, 'prog.dat');
reset {f) ;
i := 1;
while not EOF(f) and d <= N) do
begin
read(f,m[i]);
me (l)
end;
close(f);
end.
Процедура READLN. Обеспечивает ввод символов, строк и чисел. Эта процедура идентична процедуре READ за исключением того, что после считывания последней переменной оставшаяся часть строки до маркера EOLN пропускается, поэтому следующее обращение к READLNvum READ начинается с первого символа новой строки.
Кроме того, эту процедуру можно вызвать без параметра <cn,eeoda> (см. процедуру READ), что приведет к пропуску всех символов текущей строки вплоть до EOLN. Если процедура используется для чтения с клавиатуры, нажатие на клавишу Enter отобразится на экране как оследовательность CR + LF и курсор будет помещен в начало следующей строки, в то время как в процедуре READ эхо-повтором клавиши Enterявляется символ CR и курсор помещается в начало текущей строки.
Процедура WRITE. Обеспечивает вывод информации в текстовый файл или передачу ее на логическое устройство. Формат обращения:
WRITE (<ф.п.>, <сп.вывода>) или WRITE (<сп.вывода>)
Здесь <сп.вывода> - список вывода: последовательность из одного или более выражений типа CHAR, STRING, BOOLEAN, а также любого целого или вещественного типа Файловая переменная <ф.п.>, если она указана, должна быть предварительно описана как переменная типа TEXT' и связана с именем файла или логическим устройством процедурой ASSIGN. Если файловая переменная отсутствует, подразумевается вывод в стандартный файл OUTPUT, который обычно связан с экраном ПК Любой элемент списка вывода может иметь форму
OutExpr [ : MinWidth [ : DecPlaces ] ] Здесь OUTEXPR - выводимое выражение;
MINWIDTH, DECPLACES - выражения типа WORD (квадратные скобки означают возможность отсутствия заключенных в них параметров). Подпараметр MINWIDTH, если он присутствует, указывает минимальную ширину поля, в которое будет записываться символьное представление значения OUTEXPR. Если символьное представление имеет меньшую длину, чем MINWIDTH, оно будет дополнено слева пробелами, если - большую длину, то подпараметр MINWIDTH^игнорируется и выводится необходимое число символов.
Подпараметр DECPLACES задает количество десятичных знаков в дробной части вещественного числа. Он может использоваться только совместно с MINWIDTH и только по отношению к выводимому выражению одного из вещественных типов. Если ширина поля вывода не указана, соответствующий параметр выводится вслед за предьщущим без какого-либо их разделения. Символы и строки передаются выводному файлу без изменений, но снабжаются ведущими пробелами, если задана ширина поля вывода и эта ширина больше требуемой для вывода. При выводе логических выражений в зависимости от их значения выводятся строки TRUE или FALSE. (Ввод логических констант процедурами READ или READLNws предусмотрен).
Вещественные числа выводятся в экспоненциальном формате, если не указан подпараметр DECPLACES, в противном случае выбирается формат представления числа с фиксированной точкой. Экспоненциальный формат представляет вещественное число в виде _д#.##############Е*####, где _ пробел; s пробел для положительного и знак «-» для отрицательного чисел; # десятичная цифра; E символ десятичного основания; * знак «+» или «-» в зависимости от знака десятичного порядка числа. Если подпараметр MINWlDTHanynxeH, принимается его значение по умолчанию B3). Если MINWIDTHменьше 10, счшае!ся, чю он равен 10. Бели подпараметр DECPLACESравен нулю, ни дробная часть ЧКСЛ&, ни десятичная точка не выводятся. При отрицательном значении DECPLACES этот параметр игнорируется и число выводится в экспоненциальном формате с учетом MINWIDTH. Если значение DECPLACES больше 18, принимается значение 18. Следует учесть, что при указании подпараметра DECPLACES вещественное число всегда будет выводиться в формате с фиксированной точкой и требуемым количеством знаков з дробной части, даже если значение подпараметра MINWIDTH окажется недостаточным для размещения целой части: в этом случае значение MINWIDTH автоматически увеличивается. При выводе на экран в случае, когда длина выводимой последовательности символов превышает ширину экрана или созданного на нем окна, «лишние» символы переносятся на следующую экранную строку. При заполнении экрана или окна его содержимое сдвигается вверх на одну строку.
Процедура WRITELN Эта процедура полностью идентична процедуре WRITE за исключением того, что выводимая строка символов завершается кодами CR и LF. При вызове WRITELN можно опускать параметр <ап. выеода>: в этом случае в файл передается маркер EOLN, что при выводе на экран приведет к переводу курсора в начало следующей строки.
Логическая функция EOLN. Возвращает TRUE, если во входном текстовом файле дос1И1ну! маркер конца CipOi'". Форма! обращения. EOLN (<ф.П.>) Если параметр <ф.П.> опущен, функция проверяет стандартный файл INPUT. Существует некоторое отличие в работе функций EOLN и EOF с дисковыми файлами и логическими устройствами. Дело в том, что для логического устройства невозможно предвидеть, каким будет результат чтения очередного символа. Поэтому при работе с логическим устройством функция EOLN возвращает TRUE, если последним считанным с устройства символом был EOLN или EOF, в то время как при чтении с диска TRUE возвращается в случае, если следующим считываемым символом будет EOLNvuivl EOF. Аналогичное различие наблюдается и в функции EOF: для логического устройства TRUE возвращается в случае, если последним символом был EOF, а при чтении с диска - если следующим считываемым символом будет EOF. Иными словами, функции тестируют соответствующие признаки для логического устройства очередного чтения, а для файла - перед чтением. Логическая функция SEEKEOLN. Пропускает все пробелы и знаки табуляции до маркера конца строки EOLN или до первого значащего символа и возвращает TRUE, если маркер обнаружен. Формат обращения: SEEKEOLN (<ф.п.>) Если параметр <ф.п> опущен, функция проверяет стандартный файл INPUT.
Логическая функция SEEKEOF. Пропускает все пробелы, знаки табуляции и маркеры конца строки EOLNj\o маркера конца файла или до первого значащего символа и возвращает TRUE, если маркер обнаружен. Формат обращения: SEEKEOF (<ф.п.>) Если параметр <ф.п. > опущен, функция проверяет стандартный файл INPUT. В следующем примере, иллюстрирующем работу с текстовым файлом, подсчитывается общее количество символов в файле и результат делится на 40000 - таким способом можно оценить объем рукописи в так называемых учетно-издательских листах:
var
. f: text;
s: String;
const
Sum: Longlnt = 0; fЗдесь будет количество символов}
begin
Write('Имя файла: ') ; {Запрашиваем...}
Readln(s); {и вводим имя файла}
assign(f,s) ;
Reset (f); {Открываем файл}
while not EOF(f) do {Подсчитываем. . .}
begin (количество...}
ReadLn(f,s); {символов...}
inc(Sum, Length(s)) {в файле}
end;
Cloee (f) ; {Закрываем файл}
WriteLn('Объем = ',Sum/40000:6:2,' уч.изд.л.')
end.
Строки
Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY [0..N] OF CHAR, однако, в отличие от последнего, количество символов в строке-переменной может меняться от 0 до N, 'где N — максимальное количество символов в строке. Значение N определяется объявлением типа STRING [N] и может быть любой константой порядкового типа, но не больше 255. Турбо Паскаль разрешает не указывать N, в этом случае длина строки принимается максимально возможной, а именно N— 255. Строка в Турбо Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY to. . N] OF CHAR, например.

- Знакопеременные ряды
- Знаменитості у фешн рекламі
- Знаменитые замки древней Греции
- Знаменитые замки Европы
- Знаменитые зоологи и ботаники Воронежской области
- Знаменитые карнавалы мира и России
- Знаменитые люди Англии
- Знакомство с живописью
- Знакомство с количественной характеристикой натуральных чисел
- Знакомство с народной культурой школьников при работе с берестой на кружковых занятиях
- Знакомство с предприятием
- Знакомство с различными видами алгоритмов на примере русского языка
- Знакомство с родным городом и краем в процессе дидактических игр старших дошкольников
- Знакомство с родным краем