Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Фрагмент таблицы ASCII-кодов букв русского алфавита
Функции обработки символьных переменных
chr(x:byte):char - возвращает символ, соответствующему коду x. Например: writeln( chr(65) ); Результат на экране: заглавная буква A латинского алфавита.
ord(c:char):byte возвращает число, соответствующее коду символа c. Например: writeln( ord(‘A’) ); Результат на экране: число 65 – код заглавной буквы A латинского алфавита.
upcase (c:char):char – преобразует малые буквы латинского алфавита в заглавные. Например: writeln( upcase(‘a’) ); Результат на экране: заглавная буква A латинского алфавита. Если аргументом этой функции окажется не малая буква латинского алфавита, то эта функция никаких действий не выполнит.
pred(c:char):char - возвращает предшествующий символ.
Например: writeln( pred('B') ); Результат на экране: заглавная буква A латинского алфавита, код которой на 1 меньше кода буквы B.
succ(c:char):char - возвращает последующий символ. Например: writeln( succ(‘A’) ); Результат на экране: заглавная буква B латинского алфавита, код которой на 1 больше кода буквы A.
Задача. Вывести на экран таблицу ASCII-кодов.
program ASCII; var i: byte; begin for i:=1 to 255 do writeln (chr(i),'=',i); end.
Тип char в программах на Паскале часто используют для хранения вводимых с клавиатуры ответов на запросы меню. Для этого используют функцию readkey. Работу этой функции обеспечивает модуль Crt. Приведем пример использования: Program char; uses crt; begin repeat … ch:= readkey until (ch='n') or (ch='N'); end.
Цикл действий продолжается до тех пор, пока не будет введено с клавиатуры 'n' или 'N'.
Строковые переменные
Строковые переменные используются для хранения любой цепочки символов и занимают 255 байт памяти. Для описания строковых переменных используют служебное слово string.
а) var s:string; b) var t:string[20]; По умолчанию под строковую переменную s будет отведено 255 байт памяти (вариант а), а под строковую переменную t будет отведено 20 байт (вариант b). Строковые константы задаются в апострофах: S:=’Москва’;
Ввод строковых переменных осуществляется с помощью оператора - readln, а вывод - writeln. var S:string; begin readln(s); … Ввод цепочки символов завершается нажатием Enter. Если количество введенных символов превышает 255, то «хвост» отбрасывается, и в переменную попадают только первые 255 символов. Над строковыми переменными допустимы три операции: присвоение, сравнение и «слияние». Существует два способа обработки строковых переменных: обработка всей строки как единого целого; строковые переменные можно рассматривать как одномерный массив символов (элементов типа char) и применять к ним функции символьных переменных. Операция слияния: d:= 'Москва - столица'; a:= 'России'; d + a 'Москва - столица России'
Функции обработки строковых переменных
length(s:string):byte - подсчитывается фактическая длина строки, включая пробелы и знаки препинания. Например: … s:=’Москва’; wrtiteln(length(s));
Результат на экране: Число 6, количество символов в сломе Москва.
copy(s:string,i,n):string - копируется фрагмент строки s. Где s - переменная, из которой копируется фрагмент; i - позиция, с которой копируется; n - количество копируемых символов.
Если i и n - вне пределов строки, сообщения об ошибке не будет. Если i>length(s ) результат - строка нулевой длины. Если n >length(s ) результат - фрагмент от i до конца строки. Например: … s:='электрификация'; b:=copy(s,8,3)+copy(s,12,3); writeln(s); … Результат на экране: фикция
pos(t:string,s:string):byte - осуществляет поиск подстроки t в строке s. Результатом этой функции является позиция вхождения t в s. Если подстрока не найден - результат 0. Например: … t:='ритм'; s:='алгоритм'; k:=pos(t,s); wrieln(‘k=’,k); Результат на экране: k=5
Процедуры обработки строковых переменных
insert(t,s,i); - вставить подстроку t в строку s начиная, начиная с позиции i. Например: … s:='ритм'; insert(‘алго’,s,1); wrieln(s); …
Результат на экране: алгоритм
delete(s,i,n) ; - удалить из строки s с позиции i - n символов. Например: … s:='алгоритм'; delete(s,1,4); writeln(s); … Результат на экране: ритм
i,n - в процедурах insert и delete обязательно должны присутствовать в строке s. Иначе - сообщение об ошибке. Примеры обработки строковых переменных
Задача. В произвольном тексте заменить все сочетания “чя” на “ча”. Таблица идентификаторов
Program word_text; Uses crt; var text:string; i:integer; begin clrscr; writeln(‘Введите текст’); readln(text); for i:=1 to length(text)-1 do if copy(text,i,2)=‘чя’ then begin delete (text,i+1,1); insert (‘a’,text,i+1); end; writeln(‘Преобразованный текст’); writeln(text); readln; end.
Задача. В произвольном тексте (text) в слове word заменить первую букву на заглавную и подсчитать количество замен (текст латинский). Таблица идентификаторов
Program word_text1; Uses crt; var text,word:string; s,i:integer; begin writeln(‘Введите текст’); readln(text); s: =0; writeln(‘Введите слово’); readln(word); for i:=1 to length(text)-lenght(word)+1 do if copy(text,i,length(word))=word then begin s:=s+1; text[i]:=upcase(text[i]); end; writeln (s); readln; end.
Задача. Заменить в произвольном тексте все слова word1 на слово word2.
Таблица идентификаторов
Program word_text2; var text,word1,word2:string; i:integer; begin writeln(‘Введите исходный текст’); readln text); writeln(‘Введите первое слово’); readln(word1); writeln(‘Введите второе слово’); readln(word2); repeat i:=pos(word1,text) if i<>0 then begin delete(text,i,length(word1)); insert(word2,text,i); end; until i=0; writeln(‘Преобразованный текст’); writeln(text); readln; end.
Вопросы для самоконтроля |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-04-12; просмотров: 647. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |