
- •Алгоритмизация и программирование
- •Среда программирования turbo pascal 7.0
- •Структура меню среды
- •Правила оформления программ
- •Команды редактора тп
- •Компиляция и исправление ошибок в программе
- •Элементы языка pascal Алфавит языка
- •Константы. Идентификаторы
- •Операторы Оператор присваивания
- •Оператор безусловного перехода
- •Стандартные функции
- •Условный оператор if
- •Опеpатоp варианта case
- •Составной и пустой операторы
- •Операторы цикла
- •Процедуры прерываний
- •Типизированные константы
- •Структура программы
- •Типы в Турбо Паскале
- •Целые типы
- •Классификация целых типов
- •Встроенные процедуры и функции для целых типов
- •Логический тип
- •Символьный тип
- •Служебные символы
- •Строковый тип
- •Встроенные функции и процедуры для обработки строк
- •Перечислимый тип
- •Ограниченный тип (диапазон)
- •Вещественные типы
- •Вещественные типы
- •Встроенные функции
- •Структурированные типы данных. Массивы
- •Технология программирования Этапы подготовки и решения задач на компьютере
- •3.3. Отладка программных средств
- •Зарезервированные слова Turbo Pascal 7.0
- •Лабораторная работа 1 Основы программирования в среде Турбо Паскаля. Оператор присваивания, процедуры ввода - вывода
- •Приоритет операций в выражении
- •Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления
- •Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
- •Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
- •Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
- •Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Лабораторная работа 7 Программирование алгоритмов обработки двумерных массивов
- •Порядок выполнения лабораторных работ
- •Приложение 1 Обозначения графические в схемах алгоритмов (гост 19.701-0)
- •Приложение 2 Сообщение об ошибках Сообщения об ошибках периода компиляции
- •Сообщения об ошибках периода исполнения Ошибки операционной системы dos
- •Ошибки вода - вывода
- •Критические ошибки
- •Приложение 3 Кодировка символов в соответствии с кодами ascii
- •Альтернативная кодировка госТа для кодов 128...255
- •Приложение 5 Клавиши с кодами из двух частей
- •Содержание
Встроенные функции и процедуры для обработки строк
LENGTH(s:string):byte выдает длину строки в символах.
Например, функция LENGTH(st), где St='ABBCCD' возвратит значение 6. CONCAT(s1,s2,...,sN:string):string - осуществляет сцепление строк. Например:
St:='1a'; S3:=Concat(St,'bc'); аналог S3:=St+'bc' S3='1abc'.
COPY(S:string; Start,Len:integer):string выдает подстроку S длиной Len, начиная с символа с номером Start. Если Start >Length(S) (больше длины всей строки S), то функция вернет пустую строку; если Start>255, то возникает ошибка. Если Len больше, чем число символов от позиции Start до конца строки S, то вернется остаток строки S от Start до конца. Например, для выражения COPY('ABCDEF',2,3) результатом является строка 'BCD'.
DELETE(Var S:string; Start,Len:integer) удаляет из строки S подстроку длиной Len, начиная с символа с номером Start.
После стирания подстроки ее оставшиеся части "склеиваются". Если Start=0 или превышает длину строки S, то строка не изменяется. Не изменит строку и значение Len=0. При Len большем, чем остаток строки, будет удалена подстрока от Start до конца S. Например, для
Delete('aбвгде',4,2) результат будет “абве”.
INSERT(Subs:string; Var S:string;index:integer) вставляет в строку S подстроку Subs, начиная с символа с номеpом index;
Если измененная строка S оказывается слишком длинной, то она автоматически укорачивается до объявленной длины S (при этом всегда теряются символы справа). Например,
st:='abcdef' ;
Insert('-***-',st,4); {результат: St='abc-***-de' 0 }
POS(Subs,S:string):byte отыскивает вхождение подстроки Subs в строке S и выдает номер позиции, с которой начинается это вхождение. Если строка s не содержит данной подстроки, то функция POS выдает 0. Если в строке s несколько одинаковых подстрок subs, то функция выдает только номер первого вхождения.
Для St='abcdef' результатом функций
POS('de',St) является значение 4,
POS('k',St) является значение 0.
Процедуры преобразования
STR(x[:w[:n]], Var s:string) преобразует числовое значение x в строковое s, x может быть переменной или выражением целого или вещественного типа. Для переменной x может быть указана ширина поля w, которое она занимает, а также n количество знаков после десятичной точки. Параметры [:w[:n]] не обязательны. Если параметр n отсутствует для вещественного типа, то используется экспоненциальное представление. Если w больше, чем реальное количество знаков в числе, то производится выравнивание числа по правому краю. Для выравнивания по левому краю используется отрицательное значение w. Если в дробной части числа x знаков больше, чем указано в n, выполняется округление. Например:
str(6.66:8:1,s); {результат: S='6.7' c округлением}
str(6.66:-8:2,s); {результат: S='6.66'}
VAL(S:string,Var x,Var ErrCod) преобразует числовую строку S в числовую переменную x и формирует код ошибки ErrCod. Строка S не должна содержать незначащих пробелов, в том числе в начале и конце. ErrCod целочисленная переменная. Она равна 0, если преобразование выполнено. В противном случае (если преобразование невозможно) эта функция выдает код символа, на котором прекратилось преобразование, значение x в этом случае неопределено. Если в строке S имеется десятичная точка или символ E, то переменная x должна быть определена вещественной.
Например, результат преобразования VAL(1324,x,Cod) есть x=1324,Cod=0;
FILLCHAR(Var X; k:word; Value) процедура заполнения k последовательных байт переменной Х значением Value. Х многобайтовая переменная. Процедура служит для заполнения участков памяти ОЗУ одним и тем же однобайтовым значением.