Лабораторные задания

Сконструировать консольное приложение в соответствии с одним из приведенных ниже заданий.

Напишите программу, которая осуществляет обработку информации по одному из условий, заданных ниже. Разделителем слов предложения считать пробел ( 'V').

1. Строка содержит произвольные символы X1, X2, X3, X4,. X5, X6. Измените исходный состав символов и их порядок с помощью минимального числа вызовов строковых процедур и функций:

a. X6, X5, X1, X2

b. X3, X4, X2, X5, X6

c. X2,X4, X6

d. X2, X3, X5, X6, X4

e. X5, X6, X3, X4, X1, X2

2. Введите с клавиатуры фамилию, имя и отчество. Программа должна преобразовать введенные данные и вывести их в виде инициалов и фамилии. Например, при вводе Тургенев Иван Сергеевич программа должна вывести И.С. Тургенев.

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

4. Найти в предложении слова длиной не более 6символов, в которых количество гласных букв составляет не менее 30%

5. Найти в предложении все слова, которые являются палиндромами.

6. Заменить в предложении окончания слов «ing» на окончания «ed».

7. Найти в предложении все слова, в которых встречаются первые три буквы первого слова предложения.

8. В предложении S найти все слова, которые содержат строку S1 (длина 2символа) или строку S2(длина 3 символа).

9. В предложении S1 найти самое длинное слово, которое отсутствует в предложении S2.

10. В предложении S1 найти все слова, которые есть в предложении S2

11. Сформировать строки (строку), которые содержат операторы вывода языка Object Pascal, эквивалентные заданному оператору вывода языка С/С++. Пример оператора вывода в языке С/С++:

cout<<"Сумма=V"<<summa<<"\n",

гдеcout –опрератор вывода

<< –разделитель

"Сумма=V" –строка

summa –переменная

"\n" –символ перехода на новую строку.

Для данного примера программа должна сформировать строки:

write('Сумма=V', summa);

writeln;

 

Записи

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

Выбор компонентов является основной операцией над записями. Эта операция подобна выбору элементов из массива, но с одним существенным отличием: индекс здесь всегда является именем компонента и никогда не может быть вычисляемым значением. Синтаксически операция выбора компонента записи представляет собой имя записи, за которым следует имя компонента.

Компоненты записи называют полями, и соответственно имена компонентов являются именами полей.

Синтаксис:

Record

<имя поля>: <тип поля>;

. . .

<имя поля>: <тип поля>

end;

Пример:

Type

Student = record

name : string[20];

gruppa : string[5];

number: integer;

end;

Var

s: Student;

Begin

s.name := 'Иванов И.И.';

s.number:= 5;

writeln (s.name, s.number);

End.

 

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

Операция присваивания одной записи некоторой другой допустима, если записи имеют одну и ту же структуру.

 

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

Синтаксис оператора with:

with <имя записи> do

<оператор>;

Пример (переменная s: Student):