Автор: Пользователь скрыл имя, 06 Ноября 2011 в 02:04, реферат
В языке программирования Паскаль реализованы три типа операторов цикла:
- цикл с параметром FOR .. TO/DOWNTO .. DO;
- цикл с предусловием WHILE .. DO;
- цикл с постусловием REPEAT .. UNTIL.
Теория к программе
Операторы цикла
В языке
программирования Паскаль
- цикл с параметром FOR .. TO/DOWNTO .. DO;
- цикл с предусловием WHILE .. DO;
- цикл с постусловием REPEAT .. UNTIL.
Цикл с параметром (счетчиком)
Общий вид:
FOR <управляющая переменная,i>:=<
DO <оператор,S>;
Цикл с предусловием
Общий вид:
WHILE <логическое выражение,V> DO <оператор,S>
Цикл с постусловием
Общий вид :
REPEAT <оператор,S1>;
<оператор,S2>;
.
.
<оператор,SN>;
UNTIL <логическое выражение,V>;
Теория к программе
Условные операторы
Оператор IF
Общий вид:
IF <выражение V> THEN <оператор S1> [ELSE <оператор S2>];
Где: V - выражение логического типа
(условие, за которым
Вложенный оператор IF
Условный оператор if может содержать в свою очередь также оператор if, например:
IF V1 THEN IF V2 THEN S1 ELSE S2
Для избежания ошибки лучше использовать операторные скобки:
IF V1 THEN BEGIN
IF V2 THEN S1
ELSE S2
END;
Оператор выбора CASE
Используется в том случае, если переменная может принимать ряд дискретных значений. Общий вид оператора:
CASE <K> OF
<значение K1 или список значений K1>: S1
<значение K2 или список значений K2>: S2
.
.
<значение KN или список значений N>: SN
[ELSE SN+1]
END;
Где: K - выражение или переменная перечислимого типа;
S1 .. SN+1 - операторы, которые
Теория к программе
Работа с текстовым файлом
Структурированные данные - строка
Тип строка: STRING[n] - последовательность символов длиной n, что помещаются в апострофах, n [0,255], по умолчанию n=225.
+ операция конкатенации (склеивание строк).
Сравнение строк
Для
данных типа строка
Строка как массив
Данные типа строка
К каждому байту (символу)
Процедуры и функции работы с строками
CONCAT - конкатенация последовательности строк
COPY - выделить подстроку
DELETE - изъять подстроку
INSERT - прибавить подстроку
LENGTH - определить длину строки
POS - выполнить поиск подстроки в строке
STR - преобразовать числовое значение в его символьную репрезентацию
VAL - преобразовать строку в её числовое значение
1) LENGTH(S: string):integer - возвращает длину строки (значение первого байту)
LENGTH('word') --> 4
2) CONCAT(s1,....s:string):
где si - список строк или выражений типа строка; общая длина результата *255 символов
4) DELETE(var s:string, n1,n2:integer) - процедура, разрешает изъять подстроку из строки S, причем сама строка S изменяется; здесь n1 - первый изымаемый символ; n2 - количество изымаемых символов.
5) INSERT(S1:string;var S2:string;n:integer); - процедура
добавляет подстроку S1 в строку
S2 начиная из позиции n; S1, S2 и
n - выражения соответствующего
6) POS(S1,S2: string):byte - разыскивает подстроку S1 в строке S2 и возвращает номер позиции первого найденного вхождения. Если возвращается 0 - строка не содержит предоставленной подстроки. S1, S2 - могут быть выражениями типа строка
7) STR(x[:l1[:l2]], var s:string);
где x - выражение целого (integer) или действительного (real) типа
Процедура предоставленна в
8) VAL(s:string; var v:integer/real; var c:integer);
Процедура строка s преобразовывает в числовую форму (обратная к str) и сохраняет её в переменной v. Если строка содержит недопустимый символ (который не может быть применена в записи числа), то ее позиция сохраняется в переменной c, в другом случае c=0.
Работа с текстовыми файлами
Текстовый файл описывается:
var f:text;
Элементами
текстового файла являются
При вводе/выводе численных данных они автоматически превращаются в значения соответствующего типа при вводе или в последовательность символов соответственно формата вывода при выводе
Специальные функции и процедуры работы с текстовыми файлами
1) eoln(var t:text): boolean;
Окончание строки определяется кодами двух символов:
#13 - CR (возвращение каретки или переход к началу строки)
#10 - LF (переход на новую строку)
Оба кода генерируются при нажиме Enter.
Функция eoln принимает значение true, если достигнуто окончание строки, то есть показатель на текущий символ что обрабатывается стоит на первом с двух символов признака конца строки (#13). В других ситуациях возвращает false.
Если eof=true, то и eoln=true.
2) seekeoln(var f:text):boolean.
Действие такая же, как и функции eoln, но опускаются пропуски и символы табуляции в средине и в конце строки. Удобно использовать при обработке числовых данных.
3) seekeof(var f:text):boolean.
Действие такая же, как и функции eof, но опускаются пропуски, символы табуляции и переводу строки в конце файла
4) settextbuf(var t:text,var buf [;<размер>:word]).
Процедура переопределяет буфер ввода/вывода (по умолчанию стандартный, 128 байт), что удобно для быстрой обработки текстовых файлов или непосредственного доступа к буферу
Ограничение:
а) процедура не используется для открытых файлов;
б) переобозначенный буфер
Параметры:
buf - любая переменная, что определяет буфер обмена;
<размер> - необязательный параметр,
который определяет размер
Функция
sizeof(<идентификатор
5) flush(var f:text).
Процедура переписывает
Используется как
6) Особенности работы процедур read, write для текстовых файлов.
Как и при вводе из клавиатуры:
read(f,v1,v2,...vn); ~ read(f,v1);read(f,v2);...read(
readln(f,v1,v2,...vn); ~ read(f,v1);read(f,v2);...
read(input,v1,v2,...vn); ~ read(v1,v2,...,vn);
аналогично при выводе:
write(f,v1,v2,...vn); ~ write(f,v1);write(f,v2);...
writeln(f,v1,v2,...vn); ~ write(f,v1);write(f,v2);...
write(output,v1,v2,...,vn); ~ write(v1,v2,...,vn).
Если список вывода отсутствует, то:
readln(f);
- показатель текущей записи
writeln(f); - в файл записываются коды конца строки (CR/LF) то есть пустая строка в текущем месте.