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

ОАиП_ПОИТ_дистанционная_1_семестр_2-яЛабораторнаяРабота_3_вариант

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

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

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

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

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

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

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

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

  1. Последовательность слов S :

Симметричные слова отсутствуют

S2:

Нажмите Enter

  1. Последовательность слов S : o x

Симметричные слова отсутствуют

S2: o

Нажмите Enter

  1. Последовательность слов S : 123 assa xor assa

Симметричные слова отсутствуют

S2: 123 ksor

Нажмите Enter

  1. Последовательность слов S : very ada 6_7 boob poop

S1: boob

S2: very ada 6_7

Нажмите Enter

  1. Последовательность слов S : xx assa assa

S1: xx

S2: ksx

Нажмите Enter

  1. Последовательность слов S : uouo irri xx thrrht xx

S1: irri thrrht

S2: uouo irri thrrht

Нажмите Enter

  1. Последовательность слов S : x xx oppo asdfghjklqwertyuiop 1234554321 xor xo

S1: xx oppo 1234554321

S2: ks xx oppo asdfghjklqwertyuiop 1234554321 xor

Нажмите Enter