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

лаба №2

.docx
Скачиваний:
20
Добавлен:
01.04.2014
Размер:
48.1 Кб
Скачать

Задача:

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

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

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

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

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

Лабораторная работа № 2

по дисциплине «Основы алгоритмизации и программирования»

часть 1

Вариант № 8

Выполнил студент: Батура Анастасия Владимировна

группа 001021

Зачетная книжка № 001021-07

Электронный адрес sativka@mail.ru

Минск 2010

Дана строка символов S, состоящая из латинских букв. Группы символов, разделенные пробелами и не содержащие пробелов внутри себя, будем называть словами. Преобразовать исходную строку в строки S1 и S2 в соответствии с пунктами 1 и 2 (п.1, п.2) заданий № 1 - 30. Если какая-либо из итоговых строк окажется пустой, выводить соответствующее сообщение

Задание №8

п.1. – Напечатать слова, отличные от последнего слова, если они удовлетворяют следующему условию: слово совпадает с начальным отрезком латинского алфавита (a, ab, abc и т.д.); учесть, что в диапазоне 'a' .. 'z' могут быть литеры, отличные от латинских букв.

п.2. - Напечатать слова, отличные от последнего слова, перенося последнюю букву в начало слова.

Листинг:

program lab2;

uses crt;

const Sabc='abcdefghijklmnopqrstuvwxyz';

var S,S1,S2,Stmp,Slast:string;

i:integer;

flag:boolean;

begin

{Ввод строки и проверка на отсутствие неправильных символов}

while 1=1 do begin

flag:=false;

writeln('vvedite stroku simvolov:');

readln(S);

for i:=1 to length(S) do begin

case S[i] of

'a'..'z',' ':flag:=true;

else begin

write('Stroka nekorrektna, ');

flag:=false;

break;

end;

end;

end;

if flag=true then break;

end;

{Удаление лишних пробелов с конца строки}

while S[length(S)]=' ' do delete(S,length(S),1);

{Нахождение последнего слова}

while S[length(S)]<>' ' do begin

insert(S[length(S)],Slast,1);

delete(S,length(S),1);

end;

{Поиск слов и сортировка их по строкам}

i:=1;

repeat

if S[i]<>' ' then Stmp:=concat(Stmp,S[i])

else begin

if Stmp<>Slast then begin

if Stmp=copy(Sabc,1,length(Stmp)) then S1:=concat(S1,Stmp,' ');

S2:=S2+copy(Stmp,length(Stmp),1)+copy(Stmp,1,length(Stmp)-1)+' ';

Stmp:='';

end

else Stmp:='';

end;

inc(i);

until i=length(S)+1;

{Вывод результатов}

writeln('S1: ',S1);

Writeln('S2: ',S2);

writeln('The end...');

repeat until keypressed;

end.

Тестовый набор данных: