ИПР №2 В-5
.doc
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет НиДО
Специальность ПОИТ
Лабораторная работа № 2
по дисциплине «Основы алгоритмизации и программирования»
часть 1
Вариант № 5
Выполнил студент:
группа
Зачетная книжка №
Минск 2011
1). Задание
Изучение строкового типа данных. Для заданного преподавателем варианта составить соответствующую программу на языке Паскаль. Программа должна содержать все необходимые комментарии в соответствии с принятыми правилами. Предусмотреть простейший вывод на экран входных и выходных данных.
Задача:
Дана строка символов S, состоящая из латинских букв. Группы символов, разделенные пробелами и не содержащие пробелов внутри себя, будем называть словами. Преобразовать исходную строку в строки S1 и S2 в соответствии с пунктами 1 и 2 (п.1, п.2) заданий № 1 - 30. Если какая-либо из итоговых строк окажется пустой, выводить соответствующее сообщение.
п.1. - Напечатать все слова, отличные от последнего слова, в которые последняя буква входит еще раз.
п.2. - Напечатать все слова, отличные от последнего слова, преобразовав их таким образом: после каждой буквы q добавить букву u.
program stk;
uses crt;
var n,i,j,w: integer;
str,slov: string;
a: array[1..100] of string;
begin
clrscr;
writeln ('Vvedite tekst'); {Ввод исходного текста}
readln (str);
n:=length(str);
j:=1;
for i:=1 to n do
begin
if (str[i]<>' ') and (i<n) {Текст разбивается на слова и каждое слово заносится в ячейку массива}
then slov:=slov+str[i]
else
begin
if str[i]=' '
then a[j]:=slov
else a[j]:=slov+str[i];
w:=j; {Переменной w присваевается последнее значение переменной j (последнее слово)}
j:=j+1;
slov:='';
end;
end;
for j:=1 to w-1 do {Производиться сравнение всех слов с последним}
if a[j]=a[w]
then continue
else
begin
for i:=1 to length(a[j])-1 do {Производиться поиск буквы аналогичной последней в каждом слове}
if a[j][length(a[j])]=a[j][i]
then
begin
write(a[j]+' ');
break;
end
end;
writeln; {Вывод строки согласно условию №1}
for j:=1 to w-1 do
if a[j]=a[w]
then continue
else
begin
for i:=1 to length(a[j]) do {поиск буквы "q" в словах}
if a[j][i]='q'
then write(a[j][i]+'u') {Добавление к букве "q" буквы "u"}
else write(a[j][i]);
write(' ');
end;
writeln; {Вывод строки согласно условию №2}
readkey;
end.
Результаты работы программы:
Исходный текст: |
to be or not to be that is the question |
Строка по условию №1 |
that |
Строка по условию №2 |
to be or not to be that is the |