
- •6. Алгоритмы и программы
- •6.1. Алгоритм и алгоритмический процесс
- •6.1.1. Основные свойства алгоритмов:
- •6.1.2. Способы записи алгоритма
- •6.1.3. Схемы алгоритмов и программ
- •6.2. Переменная и постоянная величина Выражения
- •6.3. Присваивание
- •6.4. Основные этапы решения задач на эвм
- •6. 5. Алгоритмизация. Базовые алгоритмические структуры
- •6.5.1. Реализация базовых структур в языке Pascal
- •6.5.2. Реализация базовых структур в языке qBasic
- •Операторы тела цикла
- •6.6. Ввод - вывод
- •6.6.1.Ввод-вывод данных на языке Pascal
- •Var X, y: integer; {Описание переменных X, y целочисленного типа}
- •6.6.2. Ввод-вывод данных на языке qBasic
- •6.7. Алгоритмы линейной и разветвляющейся структуры
- •Решение задачи 6.3. На языке Turbo Pascal:
- •6.8. Циклические алгоритмы
- •Input "Введите натуральное м : " , m
- •Print : print "о т в е т : Сумма этих чисел равна "; s
- •6.9. Итерационные циклы
- •6.10. Массивы
- •6.11. Вложенные циклы
- •6.12. Подпрограммы
- •6.12.1. Параметры подпрограмм
- •6.12.2. Подпрограммы в языке Pascal
- •Операторы функции, один из которых
- •6.12.3. Подпрограммы в языке Basic
- •6.13. Рекурсия
- •6.14. Логические операции с числами
- •6.15. Работа с символьной информацией
- •6.15.1. Работа с символьной информацией в языке Basic
- •6.15.2. Работа с символьной информацией в языке Pascal
6.15. Работа с символьной информацией
Символьная информация в программах описывается данными двух типов: символьным и литерным. Значением символьной переменной является одиночный символ, а литерной - строка символов. Строка рассматривается как группа символов. Строковая константа в программе – это последовательность символов, заключенная в кавычки в языке Basic или в апострофы - в языке Pascal.
Присваивание последовательности символов строковым переменным можно с помощью оператора присваивания.
Две строки можно сравнить с помощью операций отношения > (больше) >= (больше или равно) < (меньше) <= (меньше или равно) = (равно) <> (не равно). Строки сравниваются посимвольно в лексикографическом (алфавитном) порядке, символ ‘A’ по алфавиту меньше символа ‘B’. Каждый символ имеет числовой код, символы в строках сравниваются по их числовым кодам. Например,
‘A’ > ‘F’ истина
‘ab’ > ‘Ab’ истина, т.к. код строчной буквы больше, чем заглавной;
‘ ’ = ‘ ’ истина (сравниваются две строки, равные символу пробел)
‘Jaz’ > ‘Janna’ истина, т.к. код символа ‘z’ больше, чем код символа ‘n’.
Например, справедливы соотношения
‘CAR’ < ‘CARD’ < ‘CARTA’ < ‘CAT’
а также
‘0’ < ‘1’ < ‘2’.
Над строками возможно применение операции конкатенации (или сцепки, или соединения) строк. Операция конкатенации обозначается символом +.
Например, ‘КАИ’ + ‘-’ + ‘КГТУ’, в результате получим строку
‘КАИ-КГТУ’
Для расширения операций над строками в языках программирования есть стандартные функции работы со строками.
Таблица 6.4. Некоторые стандартные функции и процедуры работы со строками
Функции и процедуры языка Pascal |
Функции языка Basic |
Действие функции или процедуры |
Length (S: String): Byte |
LEN (S$) |
Возвращает количество символов в строке S |
Ord (S: Char): LongInt |
ASC(S$) |
Возвращает ASCII код первого символа строки S |
Chr (N: Byte): Char |
CHR$(N) |
Возвращает символ с кодом ASCII, равным числу N |
|
LEFT$ (S$, N) |
Возвращает подстроку из N первых символов строки S |
|
RIGHT$ (S$, N) |
Возвращает подстроку из N последних символов строки S |
Copy(S:String; N,M:Integer):String |
MID$(S$,N,M) |
Возвращает подстроку из M символов строки S, начиная с символа номер N |
Процедура Str(N: Integer; Var S: String) |
STR$(N) |
Возвращает представление числа N в символьной форме – в виде строки S |
Процедура Val(S:String; Var N,C:Integer), где С = 0, если нет ошибки преобразования |
VAL (S$) |
Возвращает представление символов строки S в числовой форме N |
6.15.1. Работа с символьной информацией в языке Basic
В языке Basic строка – это заключенная в кавычки группа символов. Особенно часто строки используются в операторе PRINT, например:
PRINT “Результат = ”; S; “литров.”
Строка может содержать любые символы, в строке учитываются и символы пробел. Для хранения строк используются переменные типа строка, так называемые литерные (текстовые) переменные. Строковую переменную можно объявить с помощью оператора DIM, например DIM S AS STRING*80, переменная S объявлена как строка длиной до 80 символов. Если переменная явно не объявлена, то в конец имени литерной переменной добавляется символ $. Например, A$ = ”Изучаем литерные величины”; p$ = “” (пустая строка).
Объявим литерные величины, длиной по 10 символов:
DIM S, T, P, M AS STRING*10
Выполним следующие операторы:
S = “1234”
T = “5678”
P = S + T
M = VAL(S) + VAL(T)
В результате P получит значение “12345678”, а M – значение 1234+5678 = 6912.
После выполнения оператора A$ = MID$ (P, 2, 3), строка A$ получит значение ”234” (подстрока длиной 3 символа, начиная со второго символа строки P)