Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №8.doc
Скачиваний:
4
Добавлен:
25.11.2019
Размер:
101.38 Кб
Скачать

Примеры программ для обработки строк.

Пример 1. Удвойте каждую букву слова X.

PROGRAM Primer_1;

var X, { Исходное слово }

Y: String[20];{ Слово - результат удваивания букв слова X }

i: Byte; { Параметр цикла }

BEGIN

WriteLn ('Введите последовательность символов...');

ReadLn (X); Y:='';

For i:=1 to Length(X) do Y:=Concat (Y,Copy(X,i,1),Copy(X,i,1));

Write (Y)

END.

Пример 2. Определите, имеются ли в слове X два одинаковых символа, идущих подряд.

PROGRAM Primer_2;

var X: String[70]; { Исследуемое слово }

Z: String[5]; { Сообщение результата проверки }

i: Integer; { Параметр цикла }

BEGIN

Z:='Нет!'; Write ('Введите строку... '); ReadLn (X);

For i:=1 to Length(X)-1 do

If Copy(X,i,1)=Copy(X,i+1,1) then Z:='Есть!';

WriteLn (Z)

END.

Пример 3. Определите, какая из букв "а" или "б" встречается в слове раньше.

PROGRAM Primer_3;

var X, { Исходное слово }

y: String[25]; { Результат проверки }

i: Integer;

BEGIN

Write ('Введите последовательность русских букв... ');

ReadLn (X);

y:='Ни а, ни б в слове нет!'; i:=1;

Repeat

If Copy(X,i,1)='а' then y:='А встречается раньше';

If Copy(X,i,1)='б' then y:='Б встречается раньше';

i:=i+1

until ((Copy(X,i,1)='а') OR (Copy(X,i,1)='б')) OR (i>Length(X));

WriteLn (y)

END.

Пример 4. Подсчитайте число сочетаний "му" в слове X.

PROGRAM Primer_4;

var X: String[60]; { Исходное слово }

J, { Параметр цикла }

S: Byte; { Счетчик сочетаний "му" }

BEGIN

S:=0; Write ('Введите исходное слово... '); ReadLn (X);

For J:=1 to Length(X)-1 do

If Copy (X,J,2)='му' then S:=S+1;

WriteLn ('Сочетаний "му" в слове: ',S)

END.

Задания

  1. Разработать программу согласно варианту задания.

1.1. Дано целое число N (32≤N≤126). Вывести символ с кодом, равным N.

1.2. Дано целое число N (1≤N≤26). Вывести N последних строчных (маленьких) букв латинского алфавита.

1.3. Дан символ С. Вывести его код (т.е. номер в кодовой таблице).

1.4. Дано целое число N (1≤N≤26). Вывести N первых прописных (заглавных) букв латинского алфавита.

1.5. Дан символ C, изображающий цифру или букву (латинскую или русскую). Если C изображает цифру, то вывести строку «digit», если латинскую букву – вывести строку «lat», если русскую – «rus».

1.6. Дана непустая строка. Вывести коды ее первого и последнего символа.

1.7. Дан символ C. Вывести два символа, первый из которых предшествует символу C в кодовой таблице, а второй следует за символом C.

1.8. Дано целое число N (N>0) и символ C. Вывести строку длины N, которая состоит из символов C.

1.9. Дана непустая строка. Вывести коды ее символов.

1.10. Дана строка. Вывести строку, содержащую те же символы, но расположенные в обратном порядке.

1.11. Дана непустая строка S. Вывести строку, содержащую символы строки S, между которыми добавлено по одному пробелу.

1.12. Дано четное число N (N>0) и символы C1 и C2. Вывести строку дины N, которая состоит из чередующихся символов C1 и C2, начиная с C1.

1.13. Дано целое число N (1≤N≤26). Вывести N последних строчных (маленьких) букв латинского алфавита в обратном порядке, начиная с буквы «z».

  1. Разработать программу согласно варианту задания.

2.1. Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке слева направо).

2.2. Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.

2.3. Дана строка, изображающая арифметическое выражение вида «<цифра>±<цифра>±…±<цифра>», где на месте знака операции «±» находится символ «+» или «-» (например, «4+7-2»). Вывести значение данного выражения.

2.4. Дана строка, изображающая целое положительное число. Вывести произведение ненулевых цифр этого числа.

2.5. Дана строка, изображающая арифметическое выражение вида «<цифра>+<цифра>+…+<цифра>» (например, «5+6+7»). Вывести значение данного выражения.

2.6. Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке справа налево).

2.7. Дана строка, изображающая арифметическое выражение вида «<цифра>*<цифра>*…*<цифра>» (например, «5*11*7»). Вывести значение данного выражения.

2.8. Дана строка, изображающая целое положительное число. Вывести сумму четных цифр этого числа.

2.9. Дана строка. Если она представляет собой запись целого числа, то вывести 1, если вещественного (с дробной частью) – вывести 2; если строку нельзя преобразовать в число, то вывести 0. Считать, что дробная часть вещественного числа отделяется от его целой части десятичной точкой «.».

2.10. Дана строка, изображающая арифметическое выражение вида «<цифра><операция><цифра><операция>…<операция><цифра>», где на месте операции находится символ «*» или «/» (например, «4*5/2»). Вывести значение данного выражения. Предполагается, что символ «0» в строке не встречается.

2.11. Дана строка, содержащая цифры числа, разделенные пробелами. Вывести это число на экран.

2.12. Дана строка, изображающая арифметическое выражение вида «<цифра>‑<цифра>‑…‑<цифра>» (например, «5‑6‑7»). Вывести значение данного выражения.

2.13. Дана строка, изображающая целое положительное число. Вывести сумму четных цифр этого числа.

  1. Разработать программу обработки строк с помощью стандартных функций согласно варианту задания.

3.1 Дана строка, содержащая по крайней мере один символ пробела. Вывести подстроку, расположенную между первым и вторым пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.

3.2 Даны строки S, S1 и S2 . Заменить в строке S все вхождения строки S1 на строку S2.

3.3 Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

3.4 Даны строки S и S0. Найти количество вхождений S0 в строку S.

3.5 Дан символ C и строки S и S0. Перед каждым вхождением символа C в строку S вставить строку S0.

3.6 Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на строку S2.

3.7 Даны строки S и S0. Удалить из строки S первую подстроку, совпадающую с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

3.8 Даны строки S, S1 и S2. Перед каждым вхождением подстроки S1 в строку S вставить строку S2.

3.9 Дан символ C и строки S и S0. После каждого вхождением символа C в строку S вставить строку S0.

3.10 Дана строка, содержащая по крайней мере один символ пробела. Вывести подстроку, расположенную между первым и последним пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.

3.11 Даны строки S, S1 и S2. Заменить в строке S последнее вхождение строки S1 на строку S2.

3.12 Даны строки S и S0. Проверить, содержится ли строка S0 в строке S.

3.13 Даны строки S и S0. Удалить из строки S последнюю подстроку, совпадающую с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

  1. Разработать программу согласно варианту задания (под словом подразумевается строка, состоящая из 2 и более символов, не разделенных пробелами; под буквой подразумевается символ, изображающий букву русского или латинского алфавита).

    1. Дано слово S и буква C. Посчитать число букв С, стоящих в слове S на четных местах.

    2. Дано слово S. Посчитать сколько раз в слове S встречается первая буква слова.

    3. Дано слово S. Определить, какая из букв первая или последняя встречается в слове S чаще.

    4. Даны слова S1 и S2. Посчитать сколько раз в слове S1 встречается сочетание из первых двух букв слова S2.

    5. Дано слово S. Посчитать сколько раз в слове S на четных местах встречается первая буква слова.

    6. Дано слово S. Посчитать сколько раз в слове S встречается удвоенная первая буква слова.

    7. Дано слово S и буква C. Посчитать число букв С, стоящих в слове S на нечетных местах.

    8. Даны слова S1 и S2. Посчитать сколько раз в слове S1 встречается сочетание из последних двух букв слова S2.

    9. Дано слово S. Вывести символ, который в слове S встречается чаще всего.

    10. Дано слово S. Посчитать сколько различных символов используется в написании слова S.

    11. Даны слова S1 и S2. Посчитать, сколько различных букв стоят на одних и тех же местах в словах S1 и S2.

    12. Даны слова S1 и S2. Посчитать сколько раз в слове S1 встречается на четных местах вторая буква слова S2.

    13. Дано слово S. Посчитать сколько раз в слове S встречается последняя буква слова.

  1. Разработать программу согласно варианту задания.

5.1 Дана строка, состоящая из слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые начинаются и заканчиваются одной и той же буквой.

5.2 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Найти количество слов, в которых не повторяется первая буква.

5.3 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Найти длину самого короткого слова.

5.4 Дана строка, состоящая из слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат хотя три буквы «A».

5.5 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Вывести самое длинное слово.

5.6 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним символом «.» (точка). В конце строки точку не ставить.

5.7 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Найти длину самого длинного слова.

5.8 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все последующие вхождения его первой буквы на символ «.» (точка).

5.9 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Вывести самое короткое слово.

5.10 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в обратном порядке.

5.11 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним символом «-» (тире). В конце строки тире не ставить.

5.12 Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все предыдущие вхождения его последней буквы на символ «.» (точка).

5.13 Дана строка, состоящая из слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат хотя бы одну букву «A».