Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Преобразование строчных букв в заглавные

Листинг 9.1. Вывод строки в перевернутом виде и по отдельным словам | Операции над строками | Процедуры преобразования типов | Операции над множествами | Случайных неповторяющихся чисел | Определение и правила записи |


Читайте также:
  1. Z-ПРЕОБРАЗОВАНИЕ
  2. Дискретное во времени преобразование Фурье
  3. Никоновская справа церковно-богослужебной литературы и преобразование церковнославянского языка как следствие её
  4. Образование и преобразование ОВ на стадии диагенеза.
  5. Отсроченное преобразование
  6. ПРЕОБРАЗОВАНИЕ ГЕНЕТИЧЕСКОЙ ИНФОРМАЦИИ В ОДНОМ ПОКОЛЕНИИ
  7. Преобразование действительного залога в страдательный

Это тоже полезное действие, которое часто применяется в системах хране­ния и поиска данных. Дело в том, что при сравнении строк обязательно учитывается регистр, поэтому такие способы записи одного слова, как ком­пьютер, компьютер и компьютер будут восприняты как три разных слова, а в отсортированном списке они будут располагаться даже не рядом друг с другом. Учитывая данное обстоятельство, обычно при вводе информации выполняют преобразование слова к буквам какого-то одного регистра, чаще к заглавным буквам.

Начнем с простого примера. Преобразуем все строчные английские буквы введенной строки в заглавные. Для этого достаточно знания одной функ­ции upcase, которая преобразует к верхнему регистру один символ (лис­тинг 9.7).


I Листинг 9.7. Преобразование строчных латинских букв в заглавные

var s: string/­procedure upstring(var s:string);) процедура преобразования строки } var i: integer; begin

for i:=l to length(s) do

s[i]:=upcase(s[i]); { преобразование одного символа } end; begin { начало основной программы }

write('Введите исходную строку:');readln{з);

upstring(s); writeln(s); readln; end.

Усложним задачу. Пусть требуется преобразовать в строке строчные буквы русского алфавита в заглавные. Функция upcase с символами русского алфа­вита не работает. Придется писать свою функцию, работающую с русскими буквами.

Будем использовать две вспомогательные строки: строку из всех заглавных букв русского алфавита и строку всех строчных букв. Заметим, что здесь обязательным является применение типизированных констант (или пере­менных), т. к. обычная строковая константа не может интерпретироваться как массив символов (листинг 9.8).

Г Листинг 9.8. Преобразование русских букв в заглавные

var s:string;

function upstringrus(s:string):string; const small:з^1пд='абвгдежзиклмнопрстуфхцчишгьыьэюя'; big:s tring='АБВГДЕЖЗИКЛ1даОПРСТУФХЦЧШЩЬЫЬЭЮЯ'; var i,n:integer; begin

for i:=l to lengthfs) do begin

n:=pos{s[i],small);{ находим номер символа в строке строчных букв) if n>0 then s[i]:=big[n];{ заглавная буква с таким же номером }

end;

upstringrus:=s; end; begin

write('Введите строку');readln(s);

writeln(upstringrus(s)); readln; end.


Чтобы окончательно закрыть эту тему, приведем заключительный пример. Процедура getupstr преобразует русские и английские буквы в заглавные непосредственно при вводе. Буква вводится в любом регистре, а на экра­не — всегда заглавная. Такой способ ввода используется в различных про­граммах, теперь есть возможность узнать, как это делается (листинг 9.9).

^Листинг 9.9. Ввод строки с приведением всех букв к верхнему регистру

uses crt;

var s:string;

procedure getupstr(var st: string);

var с:char;

begin

st:='';{ сформировали пустую строй^ — это действие нельзя забывать } repeat

c:=readkey;{ слепой ввод без отображения на экране — модуль crt } case с of

{коды заглавных и прописных русских букв от А до П различаются на 32, } 'а1.. 'п1: c:=chr(ord(c)-32);

т.. 'я1: c:=chr(ord(c)-80); { а коды от Р до Я - на 80 } 'а1.. -z': c:=upcase(c);


end;

 

if c<>#13 then { не клавиша <Enter> } begin

st:=st+c; write(с);{ добавляем символ к строке и выводим } end;

until c=#13;{ ввод завершен нажатием клавиши <Enter> } writeln; end; "begin

writeln('Введите строку текста и нажмите <Enter>'); getupstr(s); writeln('Значение s:1); writeln(s); readln


Множества

Множества имеют большое значение в математике, поэтому не удивитель­но, что в языке Turbo Pascal имеется такой тип данных.


Дата добавления: 2015-11-14; просмотров: 74 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
И замена фрагментов текста| Понятие множества

mybiblioteka.su - 2015-2024 год. (0.006 сек.)