- •3. Система программитрования турбо паскаль
- •3.1 Окно среды разработчика
- •3.2. Элементы диалоговой среды
- •3.3. Команды редактора
- •3.4. Модули
- •4. Общие сведения о языке паскаль
- •4.1 Алфавит языка
- •4.2. Типы данных в TurboPascal 7.0
- •4.3. Операции и выражения в языке Паскаль
- •4.4 Стандартные функции в языке Паскаль
- •5. Линейные алгоритмы
- •5.1. Структура программы на языке Паскаль
- •5.2. Конструкция «следование»
- •6. Разветвляющиеся алгоритмы
- •And, * (умножение), / (деление), div, mod;
- •6.1. Операторы условных переходов
- •Var a, b, c : Real; lv : Boolean;
- •Var a, b, c : Real; lv : Boolean;
- •Var X, y : Real;
- •6.2. Оператор безусловного перехода
- •Var n, p, X : Real;
- •20: WriteLn('Факториал числа ' , n:4:2,' равен ' ,p:4:2);
- •7. Циклические алгоритмы
- •7.1. Цикл с предусловием While
- •X, xn, xk, dx, y, s, p: real;
- •7.2. Цикл с постусловием repeat
- •X1, x0, X, eps: real;
- •7.3. Цикл с параметром for
- •I: integer; c: char;
- •7.4. Принудительное завершение цикла
- •X, xn, xk, dx: real;
- •8. Символьный тип
- •8.1. Особенности символьного типа
- •8.2. Объявление символьной переменной
- •8.3. Операции с символами
- •Строковые переменные
- •9.1. Определение и типы строк
- •9.2. Упакованный строковый тип
- •9.3. Строковый тип
- •9.5. Примеры работы со строками
- •9.6. Индивидуальные задания по работе со строками и символами
- •10. Массивы
- •10.1. Организация данных в массиве
- •10.2. Объявление массивов
- •10.3. Ввод и вывод значений элементов массива
- •10.4. Подсчет количества элементов по заданному условию
- •10.5. Поиск минимального элемента массива
- •10.6. Вычисление произведения ненулевых элементов массива
- •10.7. Сортировка элементов массива
- •10.8. Заполнение массива случайными числами
- •10. 9. Индивидуальные задания по работе с массивам
- •11. Процедуры и функции
- •11.1. Понятие подпрограммы
- •11.2. Описание процедуры
- •11.3. Описание функции
- •11.4. Области действия имен
- •11.5. Индивидуальные задания по разработке процедур и функций
- •Var k,l; real;
Строковые переменные
9.1. Определение и типы строк
Строка – это последовательность символов (кодов символов) определенной длины. Причем под строкой в данном контексте следует понимать конструкцию языка Pascal, а не строку текста в печатном издании (хотя при некоторых условиях эти понятия могут быть эквивалентными). Строки, как и любые другие данные, подвергаются обработке (при обработке текстовой информации) и выводятся на печать (в качестве текстов, комментариев, сообщений и т.д.).
Строки могут представляться следующими типами данных:
- символьным. Этот тип рассмотрен ранее и приведен здесь в составе строк как частный случай строки с единственным символом. Этот тип с другими строками объединяет множество совместно реализуемых операций;
- упакованным строковым (строки постоянной длины);
- строковым (строки переменной длины).
Конспективно объявление типов и задание строк показано на рисунке с детализацией в последующих разделах.
9.2. Упакованный строковый тип
Под упакованным строковым типом понимают данные типа "одномерного массива", состоящего из символов. Массив символов, естественно, является строкой постоянной длины, Размер которой не должен превышать 64 Кбайт. Объявление такой строки выполняется по правилам объявления массива:
VAR
FIXSTR1: ARRAY[1. .10] OF CHAR;
FIXSTR2: PACKED ARRAY[1. .10] OFCHAR.
Две этих записи эквивалентны. В языке TurboPascal ключевое слово PACKED (упакованный) можно пропустить.
Ясно, что определенные таким образом строки обрабатываются по правилам работы с массивами за исключением операции вывода в текстовый файл, где не накладывается требование поэлементной обработки.
Константы упакованного строкового типа могут быть типизированными и поименованными, например:
CONST
FIXSTR3 : ARRAY[1. .10] OF CHAR =(‘7’,’9’,#47,’4’,’1’,#52,’2’,’3’,’0’,’8’);
FIXSTR4 : ARRAY[1. .9] OF CHAR = ‘KLM’#72 ’RОSTO’;
FIXSTR5 : ‘КАФЕДРА 44’;
Первые две константы являются типизированными и представляют собой массивы символов, допускающие обращение как к строке в целом, так и поэлементно.
Третья константа является поименованной строковой константой и обращение к ней поэлементно невозможно.
Упакованные строки можно сравнивать. Сравнение осуществляется посимвольно (в порядке их записи) на основе кодов литер, например:
‘ABC’ = ‘ADC’ Результат сравнения - FALSE.
Массиву упакованного строкового типа возможно присваивание целого массива этого же типа с помощью оператора присваивания, а также присваивание значения константы строкового типа, если количество символов константы равно количеству символов массива.
Ввод-вывод упакованных строк осуществляется с помощью стандартных процедур READ, WRITE, READLN, WRITELN. Выводить значения переменных и констант упакованного строкового типа можно целым массивом, в то время как ввод таких массивов должен осуществляться поэлементно.