Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Программирование!!!.docx
Скачиваний:
18
Добавлен:
04.04.2018
Размер:
219.34 Кб
Скачать

Truncate <имя файловой переменной>;

Файл может быть открыт для добавления записи в конец файлы. APPEND Append <имя файловой переменной>;

Repeat until false; - бесконечный цикл.

Прекратить работу цикла можно с помощью следующих операторов; Break; Exit; завершает работу текущего программного блока Halt; Halt(n); завершение всей программы

Символьный и строковой типы.

Кроме классические формы записей символов паскаля. Допускается представление символа его АСКИ кодом. ‘_’ # n

Writeln(‘привет’,#32,’!’);

Символы от 1 до 31 – управляющие. Могут быть представлены клавиатурными обозначением ^ и буква алфавита с тем же номером. ^G: #7 ^F: #9 – Tab

При необходимости включить в строку можно пользоваться их клавиатурными обозначениями или аскикод. Строку рассматриваем как массив символов. Следовательно любой символ из строки можно изъять по его номеру.

Var s:string; //уже массив s[i] //обращение

Begin s:=строка_символ

s[5]:=’и’

writeln(‘s=’,s);

Операции над символами и строками

Символы можно присваивать и сравнивать друг с другом. Символы равны, если равны их аскикоды. Если не равны, то больше символ, у которого больше АСКИ код. #50 > #49 ‘r’ > ’R’

Каждый символ можно рассматривать как элемент множества Set of char (базовый символьный тип) var a:char; //символ

К такому символу можно применять операцию in(операцию проверки вхождения элемента в множество)

Var ch:char; b:byte: begin ch:=’a’; if ch in [‘a’..’z’] then b:=ord(ch);

К символу значении и переменные применяются функции:

  • ord(c:char):byte

ord – возвращает аски код символа с

  • che(x:byte):char; получение символа по аскикоду.

Для перебора символов

Pred(c:char):char; (предыдущий символ) sicc(c:char):char; (следующий символ)

Upcase(c:char):char; (переводит строчные в прописные)

Строки можно присваивать, сливать и сравнивать.

  1. Слияние происходит с помощью знака + s:=s+’ : ‘;

  2. Сравнение строк происходит посимвольно, строки равны если имею одинаковую длину и посимвольно эквивалентно.

‘abc’=’abc’ ‘abc’=’abxd’ (попарное сравнение по АСКИ коду)

Любой символ больше пуского

Пр. ‘abc’ >’aba’

Функции, процедуры для работы со строками:

  1. Length (s:string):byte; Выдает текущую длину строки s.

  2. Concat(s1,s2,..,sn:string):string Конкотинации или слияние строк в одну.

  3. Copt (s:string; start,len:integer):string; возвращает подстроку длиной len с позиции start с строки s p:=copy (s,0,6); writeln(‘s=’,p);

  4. Delete (var s:string; start,len:integer); Удаляет из s подстроку длиной len начиная с позиции старт.

  5. Insert (var s:string;subs:string,start:integer); вставка в исходную строку s в строку subs с позиции start

  6. Pos(subs,s:string):byte; ищет вхождение подстроки subs в строке s и возвращает номер 1 символ subs в s. Если subs не содержит s, то subs =0

a:=’учебный год’ b:=’год’ byte (c:=pos(b,a);

Преобразование строк

Процедуры:

  1. Str(x[:f[:n]], var s:string числовое х в строковое s.Возможно задание формата для х.

X – не прописной тип. Х может быть переменной или значением целого или вещественного типа. Если задать формат, то F- общее количество, n – количество знаков после запятой. Число выравнивается по правому краю, избыток слева пробелами, если задать F<0, то выравнивание по левому краю, а излишки стираются.

  1. Val (s:string; var x; var Errcode:integer); Преобразует строковое s в числовое х, если преобразование возможно, то Errocod=0, иначе Errcode выдаст номер символа с которой застопорилось преобразование. Тип х должен соответствовать содержимому строки s.