Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция  | 
    
	
 Фрагмент таблицы 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:= 'России'; 
 
 Функции обработки строковых переменных 
 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; просмотров: 784. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...  |