Лабораторные задания
Сконструировать консольное приложение в соответствии с одним из приведенных ниже заданий.
Напишите программу, которая осуществляет обработку информации по одному из условий, заданных ниже. Разделителем слов предложения считать пробел ( '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):