- •Лекция 22
- •1. Введение. Понятие.
- •2. Виды языков программирования:
- •3. Уровни языков программирования:
- •4. Краткая история создания языка программирования
- •5. Особенности:
- •6. Основные элементы языка программирования Turbo Pascal.
- •Среда программирования Turbo Pascal.
- •9. Состав среды программирования Turbo Pascal.
- •10. Данные и величины
- •11. Типология данных. Характеристика основных типов данных.
- •Минимально необходимый набор основных типов данных.
- •Классификация данных по структуре.
- •Характеристики основных типов данных.
- •12. Элементы окна редактирования интегрированной среды программирования тр 7.0.
- •Состав окна редактирования интегрированной среды программирования тр 7.0.
- •13. Основные команды.
- •14. Структура программы.
- •15. Оператор ввода
- •16. Оператор вывода
- •17. Выражения. Виды выражений.
- •Виды выражений:
- •18. Правила записи арифметических операций.
- •19. Встроенные математические функции.
- •Оператор безусловного перехода.
- •Правила использования оператора безусловного перехода (go to):
- •21. Пустой оператор.
- •22. Оператор условного перехода.
- •1. Полная форма записи оператора ветвления:
- •Цикл с предусловием.
- •25. Цикл с постусловием.
- •26. Цикл с параметром.
- •27. Понятие массива.
- •28. Оператор описания массивов.
- •29.Одномерные массивы.
- •30. Двумерный массив.
- •31. Формирование массивов.
- •33. Вывод массива.
- •34. Понятие символьных и строковых переменных.
- •35. Строковые выражения. Операции над строками.
- •3. Строковые процедуры и функции
34. Понятие символьных и строковых переменных.
Строка – это последовательность символов кодовой таблицы персонального компьютера. При использовании в выражениях строка (символ) помещаются в апострофы. Количество символов в строке не превышает 255. Для определения данных строкового типа используют идентификатор string, после которого в квадратных скобках указывается максимальная длина строки, а для символьного типа – char.
Формат записи:
Var <идентификатор, …>:string[максимальная длина];
<идентификатор, …>: char;
Пример 1.
Var s,s1:string[50]; {длина строки = 50 символов);
St:string; {длина строки = 255 символов);
Ch,ch1:char;{отдельные символы};
Строка в Турбо Паскаль трактуется как цепочка символов (для строки из N символов отводится N +1байт, N байт - для хранения символов строки, и 1 байт – для значений текущей длины строки).
К любому символу в строке можно обратиться, указав его номер. В самом начале строки (под нулевым номером) расположен байт, содержащий значение текущей длины строки.
|
0 |
1 |
2 |
3 |
4 |
… |
N+1 |
N |

Текущая длина строки
Поэтому для определения объема памяти в байтах, требуемой для размещения строки, к значению ее максимальной длины прибавляется 1.
Если рассмотреть структуру размещения строки в памяти, можно увидеть следующее: М – максимальная длина строки, L – текущая длина, А – ячейка памяти.
A- содержит величину текущей длины;
A+ 1 - первый символ строки;
A+L- последний значащий символ;
- незанятые ячейки.
35. Строковые выражения. Операции над строками.
Выражения, в которых операндами служат строковые данные, называются строковыми. Они состоят из строковых Const, переменных, указателей функций и знаков операций.
Над строковыми данными допустимы следующие операции:
Операция сцепления (+) применяется для сцепления нескольких строк в одну результирующую.
Операции отношения (=, <>, >, <, >=, <=). Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией. Результат сравнения всегда имеет булевский тип.
Пример 2. Примеры операций отношения и результат.
|
Описание |
Выражение |
Результат |
|
|
‘MS-DOS’<’MS-Dos’ ‘program’>’PROGRAM’ |
True True |
|
|
‘Принтер’>’Принтер’ ‘Intell’=’Intell’ |
True True |
|
Str1: = ‘Группа учащихся’; Str2: =Str1+’школы-лицея’; Fio: = ‘Бочаров А.А.’ |
|
Группа учащихся школы-лицея Бочаров А.А. |
|
А: string [6] А: string [8] А: string [2] |
A: = ‘ГРУППАI’ A: = ‘ГРУППАI’ A: = ‘ГРУППАI’ |
‘ГРУППА’ ‘ГРУППА I’ ‘ГР’ |
3. Строковые процедуры и функции
При работе со строками и символами используют следующие процедуры и функции:
|
Процедура или функция |
Назначение |
|
Delete(St, P, N)
|
Удаляет Nсимволов строкиSt, начиная с позицииP. |
|
Insert(St1, St2, P)
|
Вставка строки St1 в строкуSt2, начиная с позиции Р. |
|
Str(I, St) |
Преобразование числового значения величины Iи помещение результата в строкуSt. |
|
Val(St, I, Code) |
Преобразование строкового значения Stв величину вещественного типа и помещение результата вI. Если преобразование произошло без ошибок тоCode=0, иначе оно равно первому ошибочному символу в строке. |
|
Copy(St, P, N) |
Выделяет из строки Stподстроку длинойNсимволов, начиная с позицииP. |
|
Concat (St1, St2, StN)
|
Выполняет сцепление строк. |
|
Length (St)
|
Возвращает текущую длину строки St. |
|
Pos(St1, St2) |
Обнаруживает первое появление в строке St2 подстрокиSt1. |
|
UpCase(Ch)
|
Преобразует стоковую букву в прописную. |
Пример 3: Некоторый пользователь вводит в компьютер слово, задача компьютера сделать все буквы данного слова заглавными и вывести на экран сообщение слово состоит из четного или нечетного числа букв. Удалить все знаки препинания, если таковые имеются.
Program primer;
Var s:string;
i:integer;
begin
Write ('Vvedite slovo: ');
Readln (s);
For i: = 1 to length (s) do s[i]: = upcase (s[i]);
Writeln (s);
If length (s) mod 2 = 0 then Writeln ('chetnoe') else Writeln ('nechetnoe');
For i:=1 to length(s) do
If (s[i]='.') or (s[i]=',') or (s[i]=':') or (s[i]=';') or (s[i]='!') then delete (s,i,1);
Writeln (s);
Readln;
end.
