Студопедия — Обработка строк, символов
Студопедия Главная Случайная страница Обратная связь

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

Обработка строк, символов






Задания для самостоятельного выполнения:

1 Заменить в строке каждый символ-точка на символ-пробел.

2 Удалить из строки первый символ.

3 Удалить из строки второй символ.

4Удалить из строки третий символ.

5 Удалить из строки десятый символ.

6 Вставить символ a на вторую позицию в заданную строку.

7 Вставить символ a на k-ую позицию в заданную строку.

8 Найти количество четных цифр, содержащихся в строке.

9 Проверить, содержится ли в строке символ ‘!’?

10 Подсчитать, сколько раз содержится в строке каждый из символов ‘a‘, ’b’, ‘c’, ‘d’?

 

Примеры решения задач

Пример1. Заменить в строке каждый символ a на символ b.

Текст программы:

var s:string;

a,b:char;

i,n:integer;

Begin

write(' строка s?... '); readln(s);

write ('символы a,b?...' ); read(a,b);

write( 'исходная строка:'); writeln(s);

n:=length(s);

for i:=1 to n do

if s[i]=a then s[i]:=b;

writeln( 'строка после замены символов:', s);

end.

Результаты выполнения программы:

Исходная строка: ‘а роза упала на лапу азора’.

Символы a =’a’,b = ’у’.

Строка после замены символов:’ у розу упулу ну лупу узору’.

Пример 2. Удалить из строки два первых символа.

Предлагается два способа решения задачи.

В первом – используется стандартная функция delete.

Текст программы:

var s:string [100];

i,n:integer;

Begin

write(' строка s?...'); readln(s);

n:=length(s);

writeln ( 'исходная строка:', s, ', длина строки:' ,n);

delete(s,1,2); //с 1-ой позиции удаляются 2 символа

write(' строка после удаления символов:');

writeln(s,', длина строки:' ,length(s));

end.

Результаты выполнения программы:

Исходная строка: ‘информация’, длина строки: 10

Строка после удаления символов: ‘формация’, длина строки: 8

Второй способ решения использует сдвиг элементов в строке.

Текст программы:

var s:string [100];

i,n:integer;

Begin

write(' строка s?...'); readln(s);

n:=length(s);

writeln ( 'исходная строка:', s, ', длина строки:' ,n);

for i:=3 to n do // сдвиг с3-ей позиции влево на 2 символа

s[i-2]:=s[i];

setlength(s,n-2); //установить новую длину строки

write( 'строка после удаления символов:' );

writeln(s,', длина строки:' ,length(s));

end.

Результаты выполнения программы:

Исходная строка: ‘ информация’, длина строки: 10

Строка после удаления символов: ‘формация’, длина строки: 8

Пример 3. Вставить в начало строки символ a.

Предлагается два способа решения задачи.

В первом – используется стандартная функция вставки insert.

Текст программы:

var s:string [100];

a:char;

i,n:integer;

Begin

write(' строка s?...'); readln(s);

n:=length(s);

writeln ( 'исходная строка:', s, ', длина строки:' ,n);

write( 'символ a?...' );read(a);

insert(a,s,1); //вставить в s на 1-ую позицию символ a

write( 'строка после добавления символа:');

writeln(s,', длина строки:', length(s));

end.

Результаты выполнения программы:

Исходная строка: ‘клад’, длина строки: 4, символ a =’o’

Строка после добавления символа: ‘оклад’, длина строки: 5

Второй способ решения использует сдвиг вправо элементов в строке.

Текст программы:

var s:string [100];

a:char;

i,n:integer;

Begin

write(' строка s?...'); readln(s);

n:=length(s);

writeln ( 'исходная строка:', s, ', длина строки:' ,n);

write( 'символ a?...'); read(a);

setlength(s,n+1); //установить новую длину строки

for i:=n downto 1 do

s[i+1]:=s[i];

s[1]:=a;

write( 'строка после добавления символа:');

writeln(s, ', длина строки:', length(s));

End.

Результаты выполнения программы:

Исходная строка: ‘клад’, длина строки: 4, символ a =’о’

Строка после замены символа: ‘оклад’, длина строки: 5

Пример 4. Найти сумму значений всех цифр, содержащихся в строке.

Текст программы:

var s:string [100];

sum:integer;

i,n:integer;

Begin

write(' строка s?...'); readln(s);

n:=length(s);

writeln ( 'исходная строка:', s, ', длина строки:' ,n);

sum:=0;

for i:=1 to n do

if (s[i]>='0') and (s[i]<='9') then

sum:=sum+(ord(s[i])-ord('0'));

writeln( 'сумма цифр=', sum);

end.

Результаты выполнения программы:

Исходная строка: ‘вес груза 980453’, длина строки: 16, сумма цифр=29

Пример 5. Подсчитать, сколько раз каждая цифра встречается в тексте.

Текст программы:

var s:string [100];

k:array['0'..'9'] of integer; //массив счетчиков

i,n:integer;

c:char;

Begin

write( 'строка s?...'); readln(s);

n:=length(s);

writeln ( 'исходная строка:', s, ', длина строки:' ,n);

for c:='0' to '9' do k[c]:=0; //обнуление счетчиков

for i:=1 to n do

if (s[i]>='0') and (s[i]<='9') then

k[s[i]]:=k[s[i]]+1;

writeln('--------------------------------------');

writeln(' |количество повторений цифр в строке:|' );

writeln('--------------------------------------');

for c:='0' to '9' do

writeln(c,' - ', k[c]);

End.

Результаты выполнения программы:

исходная строка: ‘3,1415926543’, длина строки: 12

--------------------------------------------------

|количество повторений цифр в строке:|

-----------------------------------------------------------

0 - 0

1 - 2

2 - 1

3 - 2

4 - 2

5 - 2

6 - 1

7 - 0

8 - 0

9 - 1

 







Дата добавления: 2015-08-31; просмотров: 409. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

МЕТОДИКА ИЗУЧЕНИЯ МОРФЕМНОГО СОСТАВА СЛОВА В НАЧАЛЬНЫХ КЛАССАХ В практике речевого общения широко известен следующий факт: как взрослые...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия