лаба №2
.docxЗадача:
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет ФНиДО
Специальность ПОИТ
Лабораторная работа № 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.
Тестовый набор данных: