Var

Word : string;

SearchWord : string[20];

Position : Byte;

Begin

Word := 'фирма Microsoft';

writeln(Word); {выводится текст 'фирма MICROSOFT'}

writeln ('Введите искомый текст ');

readln (SearchWord);

Position := Pos(SearchWord, Word);

if Position <> 0

then

begin

write ('Фрагмент <',SearchWord,'> содержится в строке <',Word);

writeln ('>, начиная с позиции ',Position );

end

else

writeln('Фрагмент <',SearchWord,'> не содержится в строке <',Word); End.

Примечание. Функция Pos требует полного совпадения искомого фрагмента и фрагмента строки, в которой производится поиск. Причем большие и маленькие буквы считаются различными символами.

Функция Concat

Функция Concat (Str1,Str2,...,StrN) выполняет конкатенацию (или сцепление) строк Str1,Str2,...,StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех сцепленных строк не должна превышать 255.

Program DemoFunctionConcat;

Var

Word : string;

Word1, Word2 : string[20];

Begin

Word1 := 'фирмы ';

Word2 := 'Microsoft';

Word := Concat('Компьютеры ',Word1,Word2);

writeln(Word); {выводится текст 'Компьютеры фирмы Microsoft'}

End.

Задачи для самостоятельного решения

1. Задано существительное 1-го склонения, оканчивающееся на “а”. Проверьте правильность ввода. Напечатайте это слово во всех падежах. Применяйте подпрограммы.

2. Проверьте правописание “ча” и “ща” в тексте. Выведите на экран количество сделанных ошибок и исправленную строку. Применяйте подпрограммы.

НЕ нашли? Не то? Что вы ищете?

3. Напишите алгоритм, подсчитывающий, сколько раз в данном слове х встречается данное слово у. Если слово у длиннее, чем х, то результат должен быть равен нулю. Применяйте подпрограммы.

4. Выясните, сколько раз встречается каждая буква алфавита в предложенном тексте. Применяйте подпрограммы.

5. Запишите строку а в обратном порядке в строку б. Посчитайте, сколько одинаковых букв находятся на одинаковых местах в этих строках. Применяйте подпрограммы.

6. Заданы фамилия, имя и отчество учащегося, разделенные пробелом. Напечатайте его фамилию и инициалы. Применяйте подпрограммы.

7. Проверьте правописание “жи” и “ши” в тексте. Выведите на экран количество сделанных ошибок и исправленную строку. Применяйте подпрограммы.

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

9. Посчитайте количество цифр в веденной строке символов. Применяйте подпрограммы.

10. Посчитайте количество букв в введенной строке символов. Применяйте подпрограммы.

11. Запросите несколько символов и строку для выяснения, сколько заданных символов встречается в строке. Применяйте подпрограммы.

Занятие 4. Стандартные процедуры для работы со строками (delete, insert, str, val).

Процедура Insert

Процедура Insert вставляет в исходную строку, начиная с указанной позиции, какую-либо другую строку. Оператор Insert (Word1,Word2,5) указывает, строку Word1 необходимо вставить в строку Word2, начиная с 5-ой позиции.

Процедура Delete

Процедура Delete удаляет в исходной строке фрагмент определенной длины, начиная с указанной позиции. Так, оператор Delete(Word1,2,3) удаляет из указанной строки фрагмент, длиной в три символа, начиная со второго.

Процедура Str

Общий вид Str(Chislo, Stroka)

Процедура Str преобразовывает числовое значение переменной Chislo в строковую переменную Stroka. После первого параметра может указываться формат, аналогичный формату вывода.

Program DemoProcedureStr;

Var

Word : string;

Chislo : integer;

Begin

Chislo := 1560;

Str(Chislo:8, Word);

writeln(Word); {выводится строка ' 1500'}

End.

Процедура Val

Общий вид Val(Stroka, Chislo, Code)

Процедура Val преобразует значение строки Stroka в величину целочисленного или вещественного типа и помещает результат в Chislo. Значение строковой переменной Stroka не должно содержать пробелов в начале и в конце. Code ­ целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно нулю, если же ошибка обнаружена, Code будет содержать номер позиции первого ошибочного символа, а значение Chislo будет не определено.

Program DemoProcedureVal;

Var

Word : string;

Chislo, Code : integer;

Begin

writeln('Введите строку цифр ');

readln(Word);

Val(Word, Chislo, Code); {преобразование строки в число}

if Code <> 0

then

writeln('Ошибка! В позиции ',Code,' не цифра!',);

End.

Задачи для самостоятельного решения

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

2. Составьте алгоритм замены в какой-нибудь литерной величине всех букв "а" на буквы "б" и наоборот (при такой замене, например, из слова "баба" должно получиться слово "абаб"). Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

3. Составьте алгоритм, утраивающий каждую букву в заданном тексте (при этом, например, из слова "кот" должно получиться слово "кккоооттт"). Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

4. Составьте алгоритм, выясняющий, является ли данное слово "перевертышем" (так называются слова, читающиеся одинаково слева направо и справа налево, например: ПОТОП, КАЗАК). Используйте подпрограммы для решения каждой частной задачи.

5. Составьте алгоритм, вычеркивающий из данного текста любую букву. Выведите полученную строку на экран. Если такого символа нет, то выведите соответствующее сообщение. Используйте подпрограммы для решения каждой частной задачи.

6. Составьте алгоритм, который каждую встреченную в слове букву "б" заменял бы сочетанием букв "ку". Если такого символа нет, то выведите соответствующее сообщение. Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

7. Как только в строке встретится символ "*", удалить все символы в строке после "*". Выведите полученную строку на экран. Если такого символа нет, то выведите соответствующее сообщение. Используйте подпрограммы для решения каждой частной задачи.

8. Вставить в строку слово по условию:

а) в конец строки

б) в начало строки

в) после первого слова.

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

9. В строке удалить все буквы "б","с","д",".". Если такого символа нет, то выведите соответствующее сообщение. Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

10. Все слова, в которых буква “а” встречается более 2х раз, удалить из текста. Выведите полученную строку на экран. Если такого символа нет, то выведите соответствующее сообщение. Используйте подпрограммы для решения каждой частной задачи.

11. Из строки удалить среднюю букву, если длина строки нечетная, иначе - удалить две средние буквы. Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

Задачи для дополнительного решения (на усмотрение учителя)

1. Составьте программу вычисления суммы мест, на которых в слове Х стоят буквы "в" и "п".

2. Дана строка символов. Дано слово. Удалить из строки это слово.

3. Дана строка символов. Выделить подстроку между первой и второй точкой.

4. Дана строка символов до точки. Группы символов в ней между группами пробелов считаются словами. Определить, сколько слов начинается и кончается одной и той же буквой.

5. Дана строка символов до точки. Группы символов в ней между группами пробелов считаются словами. Определить, сколько слов содержат хотя бы одну букву "е".

Занятие 5. Контрольная работа

Вариант 1

1. Результатом вычисления функции Copy('программирование',4,5) будет слово

a)  миров

b)  грамм

c)  программ

d)  программа

e)  грамми

2. Результатом работы программы:

Var x : string[6];

Begin

x := ‘мим’+’озадаченный’; writeln(x);

End.

будет слово:

a)  мим озадаченный

b)  мимозадаченный

c)  мимоза

d)  озадаченный мим

e)  озадаченныймим

3. Составьте подпрограмму для решения задачи:

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

Вариант 1I

1. Результатом работы программы:

Program DemoUpcase;

Var

Word : string;

i : Byte;

Begin

Word := 'фирма Microsoft';

for i := 1 to Length (Word) do

Word[i] := UpCase (Word[i]);

writeln(Word); {выводится текст 'фирма MICROSOFT'}

End.

будет предложение:

a)  'Фирма MICROSOFT'

b)  'ФИРМА MICROSOFT'

c)  'фирма Microsoft

d)  'фирма MICROSOFT'

e)  'фирма microsoft

2. Вызывая функцию Copy не нужно указывать:

a)  •имя строки, из которой должен извлекаться копируемый фрагмент,

b)  •позицию в строке, начиная с которой будет копироваться фрагмент,

c)  •число копируемых символов;

d)  имя строки, в которую копируется данный фрагмент

e)  имя функции.

3. Составьте подпрограмму для решения задачи:

Сколько букв "у" в слове стоит на четных местах?

Вариант III

1. Результатом работы программы:

Program DemoFunctionLength;

Var

Word : string[9];

Begin

Word := 'Я люблю программировать';

writeln(Length (Word));

End.

будет:

a)  9

b)  23

c)  'Я люблю программировать'

d)  'Я люблю '

e)  256

2. Результатом работы программы:

Program DemoFunctionPos;

Var

Word : string;

SearchWord : string[20];

Position : Byte;

Begin

Word := 'Карл у Клары украл кораллы. Клара у Карла украла кларнет.';

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70