Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Литерные величины
Литерные величины представлены в Турбо Паскале следующими типами: символьным и строковым. Символьная величина – это величина, значением которой являются символы, взятые в апостроф (одна верхняя запятая). Для её обозначения используется служебное слово char. Строковая величина – это величина значением, которой является произвольная последовательность символов, взятая в апостроф. Для её обозначения используется служебное слово string. Каждому символу, согласно таблице ASCII, соответствует его код.ASCII – это американская стандартный код для обмена информацией. Код любого символа есть число целого типа от 0 до 127. Также есть расширенная таблица ASCII, которая состоит из двух частей: первая стандартная (0..127), вторая (128..255) предназначена для букв национальных алфавитов. Строковая величина представляет собой массив символов. Каждый символ в строке имеет свой порядковый номер, указав который мы можем обратиться к любому символу в строке. Нулевой символ в строке содержит длину данной строки. Описываются символьные и строковые переменные следующим образом: Var a, b, c: char; S: string [20]; S1: string; 7.1. Операции над строками: В Паскале имеется набор процедур и функций для работы со строками. 1. операция конкатенация (сцепление) двух строк. Обозначается «+» Тоже самое делает функция Concat (s1, s2). К строке s1прикрепляется строка s2. 2. функция chr (n) – по коду символа получает сам символ. 3. функция ord (s) – по символу получает его код. 4. функция upcase (s) – делает строчные буквы латинского алфавита прописными. 5. функция length (s) – определяет длину строки 6. функция сору (s, p, n) – копирует n символов из строки s начиная с позиции p. Например: srt: =copy(‘1234567abcd890’, 8, 4); Даст результат str=abcd 7. функция Pos (s1, s2) – определяет начальную позицию вхождения строки s1 в s2. Например: a: =pos(‘f(x)’, ’let f(x)=2x’); a=5 8. процедура delete (s, p, n) – удаляет из строки s начиная с позиции p n символов. Например: a: =’123abcde4567890’; Delete(a, 4, 5); a=’1234567890’ 9. процедура Insert (s1, s2, p) – вставляет строку s1 в строку s2 начиная с позиции p. Например: a: =’1237890’; insert(‘456’, a, 4); а=’1234567890’; 10. процедура Str (n, s) – преобразует число n в строку s. 11. процедура Val (s, n, t) – преобразует строку s в число n. Параметр t имеет значение 0 если преобразование выполнилась успешно. Если нет то в нём хранится номер позиции ошибочно заданного символа. К строкам можно применять операции отношения, т.е. сравнивать их. По сути дела сравниваются коды символов. Больший код символа имеет больший приоритет над меньшим. Более короткая строка всегда меньше более длинной.
Рассмотрим следующие примеры:
Пример № 1. В введенной литерной величине подсчитать количество букв «а» или «А».
Program Exemple_1; Var s: string; k, i, n: byte; Begin Write (‘Введите строку: ’); Readln (s); n: = length (s); for i: =1 to n do if (s[i]=’a’) or (s[i]=’A’) then inc (k); Writeln (‘k=’, k); End.
Пример № 2. В введенной литерной величине заменить буквы «а» или «А» на «о» или «О» соответственно.
Program Exemple_2; Var s: string; i, n: byte; Begin Write (‘Введите строку: ’); Readln (s); n: = length (s); for i: =1 to n do Begin if s[i]=’a’ then s[i]: =’o’; if s[i]=’A’ then s[i]: =’O’; End; Writeln (s); End.
Пример № 3. В введенной литерной величине содержатся латинские строчные буквы. Заменить строчные буквы на прописные соответственно.
Program Exemple_3; Var s: string; i: byte; Begin Write (‘Введите строку: ’); Readln (s); for i: =1 to ord (s[0]) do s[i]: = upcase (s[i]); Writeln (s); End.
Пример № 4. Дано натуральное число n. Приписать к нему соответственно по цифре 1 слева и справа и вывести измененное число n. (например: n =345, тогда результат n =13451). Program Exemple_4; Var s: string; i, n, t: longint; Begin Write (‘Введите число: ’); Readln (n); str (n, s); s: =’1’+s+’1’; val (s, n, t); Writeln (n); End.
Пример № 5. В введенной литерной величине все слова разделены пробелами. Заменить окончания слов «ла» или «ЛА» на «ло» или «ЛО» соответственно.
Program Exemple_5; Var s: string; i, n: integer; Begin readln (s); s: =s+' '; for i: =1 to length (s)-2 do Begin if copy (s, i, 3)='ла ' Then Begin delete (s, i, 3); insert ('ло ', s, i); end; if copy (s, i, 3)='ЛА ' Then Begin delete (s, i, 3); insert ('ЛО ', s, i); end; end; writeln (s); End.
Пример № 6. Составить программу, которая заменяет введенный текст по следующему правилу: А на B, B на C, C на D, и т.д.
Program char_bud; Var s: string; i, j: integer; Begin Writeln (‘Введите строку: ’); Readln (s); for i: =1 to length (s) do s[i]: =upcase(s[i]); for i: =1 to length (s) do s[i]: = char (ord (s[i])+1); Writeln (s); End.
|