Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИПР №2 В-5

.doc
Скачиваний:
10
Добавлен:
01.04.2014
Размер:
40.45 Кб
Скачать

 

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра программного обеспечения информационных технологий

 

 

Факультет НиДО

Специальность ПОИТ

 

 

Лабораторная работа № 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