Gt;Преобразовать сточную букву в ПРОПИСНУЮ просто!
ПРЕОБРАЗОВАТЬ СТРОЧНУЮ БУКВУ В ПРОПИСНУЮ ПРОСТО!
В программе использована встроенная функция Ord, которая возвращает код (номер в таблице ASCII ) символа, указанного в качестве ее аргумента.
Помимо массивов символов для хранения и обработки строк можно использовать переменные типа string.
Переменная типа string должна быть объявления переменных так:
Имя: string;
Или
Имя: sting [длина];
Где Имя- имя переменной строкового типа; string- ключевое слово обозначения строкового типа; длина- константа целого типа, определяющая, что значением объявляемой переменной может быть любая строка, длина которой (количество символов) не превышает указанное в объявлении значение.
Примеры объявления переменных типа string:
Name: string [30];
Buff: string;
Эквивалентны.
В тексте программы последовательность символов, являющаяся строкой, заключается в одинаковые кавычки. Например, чтобы присвоить строковой переменной parol значение, нужно записать:
Papol: = ‘большой секрет’;
Parol: =’1997’;
Инструкция Parol: =1997неверная, она приведет к ошибке времени компиляции, так как тип переменной не соответствует типу константы.
Переменную типа string можно сравнить с другой переменной или константой типа string, используя операторы =,<,>,<=,>=,<>. Строки сравниваются посимвольно от первого символа. Если все символы сравниваемых строк одинаковые, то такие строки считаются равными. Если в одинаковых позициях строк находятся разные символы, большей считается та строка, у которой в этой позиции находится символ с большим кодом. Ниже приведены примеры сравнения строк.
СТОКА1 СТРОКА2 РЕЗУЛЬТАТ СРАВНЕНИЯ
Иванов Иванов Строки 1и 2 равны
Васильев Васильев Строка1 больше Строки 2
Алексеев Петров Строка 1 меньше Строки 2
Иванова Иванов Строка 1 больше Строки 2
Следующая программа, ее текст приведен на листинге 5, запрашивает пароль и, если введенный пароль верный, фамилию.
Листинг 5. Пример сравнения символьных сток (stparol.pas)
Program stparol;
Var
Name: string[30];
Parol: string [6];
Begin
Write (‘Пароль (6 символов)?’);
Readln (parol);
If parol=’секрет’ then begin
Write(‘Ваша фамилия?’);
Readln (name);
Writeln (name,’, Вам доступ разрешен. ‘);
End
Else begin
Writeln (Неверный пароль! Доступ запрещен!’);
End;
End.
Кроме операций сравнения к строковым переменным и константам можно применить оператор сложения, в результате выполнения которого получается новая строка. Например, в результате выполнения инструкции
First _name:=’Иванов’;
Last_name:=’Иван’;
Ful_name:=first_name+’ ‘+last name;
Значение переменой ful_name будет равно ‘Иванов Иван’.
Turbo Pascal 7.0 предоставляет несколько полезных при работе со строками функции и процедур. Ниже приведены их описания и примеры использования.
Функция length возвращает длину строки. У функции один параметр-переменная строкового типа. Значение функции (целое число) - количество символов, из которых состоит строка. Например, в результате выполнения инструкций
N: =length (‘Иванов’)
M: =length (‘Невский проспект’)
Значения переменных n и m будут равны 6 и 18.
Следующая программа, ее текст приведен на листинге 6, использует функцию length для завершения цикла ввода информации с клавиатуры.
Листинг 6. Ввод символьного массива (instarr.pas)
Program instarr;
Const
N=35;
Var
Student: array [1..N] of string; {список – массив строк}
Name: string [30]; {введенная строка}
I: integer;
Begin
I: =1;
Repeat
Write (‘Введите фамилию или <Enter> для завершения- >’);
Readln (name);
If length (name)<>0
Then
Begin
Student [i]:=name;
I: =i+1;
End;
Until (length (name) =0) or (i=N);
{вывод введенного списка}
i:=1;
while (length (student[i])<>0) and (i<=N) do
begin
Writeln (student[i]);
I:=i+1;
End;
End.
Программа вводит список студентов. Цикл ввода завершается, если введен весь список (35 фамилий), или есть в ответ на запрос очередной фамилии пользователь нажмет клавишу <Enter> (в этом случае длина введенной строки равна нулю)