русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

СТРОКИ (STRING)


Дата добавления: 2014-11-28; просмотров: 1256; Нарушение авторских прав


Данное строкового типа — это ограниченная последовательность произвольных символов (то есть элементов типа char). Постоянные строкового типа записывают при помощи двух штрих-символов (апострофов), охватывающих текст. Строка может иметь от 0 до 255 символов. Например, 'Украина', 'Львовская политехника', '' - пустая строка нулевой длины, ' ' - строка, состоящая из одного символа-пропуска.

Переменную строкового типа объявляют с помощью слова string так:

 

var<переменная> : string[n];

 

где n —длина строки, n<256. Длину строки можно не указывать. Например,

constslovo = 'University';

varfrazal : string[45];

fraza2 : string;

Над переменными строкового типа определены операции объединения (символ операции +) и сравнения (<, <=, >, >=, =, <>). Сравнение двух строк осуществляется слева направо до первых различных символов, причем 'А' < 'В', 'В' < 'С' и т.д. «Большим» считается символ, который размещён в алфавите дальше (он имеет больший номер в таблице кодов компьютера ASCII). Числовой код символа даёт функция ord, например, ord('B') = 66, ord('A') = 65. Обратное действие выполняет функция chr: chr(66) даёт 'В'.

Пример. Пусть tl = 'New', t2=' Year'. Тогда объединением этих строк будет s := tl + t2 (результат: s = 'New Year'). Здесь s > tl.

Пример. Вывести на экран строчные буквы латинского алфавита и их коды можно таким образом:

for v := 'a' to'z' do

writeln(v, ord(v):5);

Для обработки данных строкового типа предназначены стандартные функции:

length(<строка>) — определяет количество символов в заданной строке;

сору(r,m,n) -даёт n символов строки r, начиная с символа с номером m;

concat(rl,r2, ...,rn) — объединяет строки rl, ..., rn в одну строку;

pos(rl, r2) - определяет номер символа, с которого начинается



вхождение строки rl в строку r2.

и процедуры

insert(rl, <переменная>, n) - вставляет строку rl в строку,

которая задана переменной, начиная с позиции n;

dе1еtе(<переменная>, m, n) — удаляет n символов со строки,

которая задана переменой, начиная с позиции m;

str(<число>, <переменная>) - переводит числовое данное в

данное строкового типа;

val(rl, s1, s2) — засылает в числовую переменную s1 числовой образ строки rl. Если это возможно, то переменная s2 получает значение 0, иначе - числовое значение номера первого недопустимого символа заданной строки.

Указанная переменная передает в процедуру входное данное строкового типа и получает обратно измененную строку - результат выполнения процедуры.

Пример.Пусть переменная Lvov имеет значение 'Львовская политехника'. Рассмотрим примеры функций и их значения:

Функция Значение
length(Lvov) 21;
copy(Lvov, 15, 11) 'техника';
concat(Lvov,' - 2001') 'Львовская политехника - 2001';
pos(V, Lvov) 15.

Следующие процедуры присвоят переменной Lvov такие значения:

Процедура Значение переменной Lvov
Insert('HУ', Lvov, 1) 'НУ Львовская политехника'
delete(Lvov, 6, 16) 'Львов'
str(2001, Lvov) '2001'
val('1256', Lvovl, Ozn) Lvovl = 1256, Ozn = 0

Существует два способа обработки данных типа string. Первый: всю строку пользователь обрабатывает как единое данное с помощью описанных выше функций и процедур. Второй: строку рассматривает как массив символов и обрабатывает ее поэлементно.

Пример. Значения строковым переменным frazal и fraza2 можно присвоить, а потом вывести их на экран так:

frazal := 'Вы любите каникулы?';

for i := 1 to 19 do{Вводим текст с клавиатуры}

read(fraza2[i]);

writeln(frazal);

writeln(fraza2);

Задача 1. Кодировка текста. Удалить из некоторой фразы а все пропуски, запятые и точки, другие символы продублировать. Вывести результат.

programMyCode;

uses Crt;

var a, b, с : string;

i : integer;

Begin

clrscr;

write('Введите текст: ');

readln(a);

b:= '';

for i := 1 to Length(a) do

Begin

с := copy(a, i, 1); {или поэлементно так: с := a[i];}

if (с <> ',') and (с <>'.') and (с <>' ' )

thenb := b + с + с

end;

writeln(b);

readln

End.

Задание 1. Модифицируйте программу MyCode таким образом, чтобы в некоторой фразе заменить все буквы «а» на «о», а «м» на «н».

 

Задача 2. Написать программу, которая всюду в заданном тексте mytext будет заменять каждое встретившееся слово word1 другим словом такой же длины word2.

programFindAndChange;

usesCrt;

varmytext, wordl, word2 : string;

i, k : integer;

Begin

clrscr;

write('Введите текст: ');

readln(mytext);

write('Введите искомое слово: ');

readln( wordl);

write('Введите второе слово: ');

readln(word2);

k := length(wordl);

for i := 1 to length(mytext) - k do

ifcopy(mytext, i, k) = wordl then

Begin

delete(mytext, i, k);

msert(word2, mytext, i)

end;

writeln(my text);

readln

End.

Задача З. Пусть задана строка 'Я люблю Мерседес'. Определить длину строки. Вывести на экран второе слово этой строки.

programStroka;

usesCrt;

constrl : string = 'Я люблю Мерседес';

vari, k, m, nl, n2 : integer;

Begin

clrscr; m := 0;

k := length(rl);{Определяем длину строки}

writeln('Длинa строки k =', k);

for i := 1 to k do {Перебираем все символы строки}

ifrl[i] = ' ' then{и ищем пропуск}

Begin

m := m + 1;

{Определяем номер первого пропуска}

ifm = 1 thennl:=i;

{Определяем номер второго пропуска}

if m = 2 thenn2 := I

end;

{Выводим слово между двумя пропусками}

for 1 := nl + 1 to n2 - 1 do

write(rl[i]);

readln

End.

Задание 2. Решите задачу 3, используя функцию pos для определения позиции пропуска и процедуру delete для получения второго слова.

Задание 3. Некоторый текст закодируйте кодом Цезаря, поменяв каждую букву на четвертую за ней в алфавите.

Задание 4. Решите задачу № 13а своего варианта.

Задание 5. Решите задачу № 136 своего варианта.



<== предыдущая лекция | следующая лекция ==>
МАССИВЫ | ПОДПРОГРАММЫ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.219 сек.