ОАиП_ПОИТ_дистанционная_1_семестр_2-яЛабораторнаяРабота_3_вариант
.docxБЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет ФНиДО
Специальность ПОИТ
Лабораторная работа № 2
по дисциплине «Основы алгоритмизации и программирования»
часть 1
Вариант № 3
Выполнил:
Минск 2012
Условие:
Дана строка символов S, состоящая из латинских букв. Группы символов, разделенные пробелами и не содержащие пробелов внутри себя, будем называть словами. Преобразовать исходную строку в строки S1(напечатать слова, отличные от последнего слова, которые симметричны) и S2 (напечатать все слова, отличные от последнего слова, заменив первое вхождение x на ks, если такое есть). Если какая-либо из итоговых строк окажется пустой, выводить соответствующее сообщение.
Решение:
Текст программы
program LR_2;
uses Crt;
var s,k :string;
a:array[1..100] of string;
i,n,j,l,pos1:Integer;
f:boolean;
BEGIN
ClrScr;
{Ввод последовательности слов S}
Writeln('Введите слова :');
Readln(s);
{Запись слов в массив a}
for i:=1 to length(s) do begin
if (s[i-1]<>' ') and (s[i]=' ') and (length(k)<>0) then begin
inc(n);
a[n]:=k;
k:='';
end;
if s[i]<>' ' then k:=k+s[i];
if (i=length(s)) and (length(k)<>0) then begin
inc(n);
a[n]:=k;
k:='';
end;
end;
{Проверка на симметричность слов, содержащихся в масстве а}
l:=0;
for i:=1 to n-1 do begin
f:=false;
if a[i]<>a[n] then
if length(a[i]) mod 2 = 0 then begin
for j:=1 to length(a[i]) div 2 do
if a[i][j]<>a[i][length(a[i])+1-j] then f:=true;
if f=False then begin
l:=l+1;
if l=1 then Write('S1 : ');
Write(a[i],' ');
end;
end;
end;
if l=0 then Writeln('Симметричные слова отсутствуют');
WriteLn;
Write ('S2 : ');
for i:=1 to n-1 do begin
if a[i]<>a[n] then begin
if pos1 <> 256 then begin
pos1:= pos ('x', a[i]);
if pos1 <> 0 then begin
delete (a[i], pos1, 1);
insert ('ks', a[i], pos1);
pos1:=256;
end;
end;
Write(a[i],' ');
end;
end;
Writeln;
Writeln;
Write('Нажмите Enter');
Readln;
END.
Тестовый набор данных
-
Последовательность слов S :
Симметричные слова отсутствуют
S2:
Нажмите Enter
-
Последовательность слов S : o x
Симметричные слова отсутствуют
S2: o
Нажмите Enter
-
Последовательность слов S : 123 assa xor assa
Симметричные слова отсутствуют
S2: 123 ksor
Нажмите Enter
-
Последовательность слов S : very ada 6_7 boob poop
S1: boob
S2: very ada 6_7
Нажмите Enter
-
Последовательность слов S : xx assa assa
S1: xx
S2: ksx
Нажмите Enter
-
Последовательность слов S : uouo irri xx thrrht xx
S1: irri thrrht
S2: uouo irri thrrht
Нажмите Enter
-
Последовательность слов S : x xx oppo asdfghjklqwertyuiop 1234554321 xor xo
S1: xx oppo 1234554321
S2: ks xx oppo asdfghjklqwertyuiop 1234554321 xor
Нажмите Enter