informatica_lr_05 (Вариант 6 - ЛР №5 - Обработка символьной и строковой информации)
Описание файла
Файл "informatica_lr_05" внутри архива находится в папке "Обработка символьной и строковой информации, Вариант 6". Документ из архива "Вариант 6 - ЛР №5 - Обработка символьной и строковой информации", который расположен в категории "". Всё это находится в предмете "информационные технологии" из 2 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информационные технологии" в общих файлах.
Онлайн просмотр документа "informatica_lr_05"
Текст из документа "informatica_lr_05"
МИРЭА
Лабораторная работа № 5
Тема:
“Обработка символьной и строковой информации”
Вариант 6
Кафедра РПУ
Выполнил ст.
гр. ВРУ-3-02
Проверил
Давлечин Д.И.
2003
Цель: Приобрести навыки работы с данными символьного и строкового типов.
Постановка задачи.
Задание: составить программу для поиска самого короткого общего слова в двух предложениях текста.
При запуске программы на монитор выводится диалоговое окно и запрос на введение текста. Текст нужно вводить соблюдая следующие правила:
-
Слова вводить прописными буквами.
-
Между словами и после точки в конце предложения ставить один пробел.
-
Перед точкой пробел не ставить.
Спецификация.
В программе используются процедуры ClrScr из модуля Crt и собственные процедуры: BOX – создание границы (обрамления) окна, WIN – создание самого окна, VDP – процедура ввода и родготовки текста к дальнейшей обработке и процедура OST, выполняющая поиск и сравнение слов в предложениях. Для задания цвета используется команда TextColor.
Алгоритм программы.
-
Запрос на ввод текста
-
Выделение из текста двух предложений
-
Подсчет количества слов в первом предложении по пробелам
-
Поочередная выборка слов из первого предложения и их сравнение со словами во втором предложении (используется функция POS)
-
Если слово есть, то оно запоминается и выборка проводится далее до тех пор, пока не закончиться первое предложение.
-
Если встречается еще одно или более одинаковых слов, программа сравнивает их длину с запомненным ранее словом и если длина нового слова меньше, то старое удаляется, а новое запоминается.
-
Если программа вообще не нашла одинаковых слов, выводится сообщение о отсутствии одинаковых слов.
Описание переменных.
S, S1, S2, SS1, SS2 : String;
I, K, L, L1, L2, T1, T2, P, M, PR, h : Integer
Текст программы.
Program LABA_5_6;
Uses CRT;
Var
S, S1, S2, SS1, SS2 : String;
I, K, L, L1, L2, T1, T2, P, M, PR, h : Integer;
Procedure BOX;
var
x,y : integer;
begin
TextColor(0);
x :=5;y :=3;
GotoXY(x,y);
write(#177);
for x := 6 to 76 do
begin
GotoXY(x,y);
Write(#177);
end;
for y := 4 to 21 do
begin
GotoXY(x,y);
Write(#177);
end;
for x := 75 downto 5 do
begin
GotoXY(x,y);
Write(#177);
end;
for y :=20 downto 4 do
begin
GotoXY(x,y);
Write(#177);
end;
end;
Procedure Win;
begin
TextBackGround(195);
ClrScr;
Box;
Window(6,4,75,20);
TextBackGround(7);
ClrScr;
{TextColor(12);}
end;
Procedure VDP;
BEGIN
Writeln('Vvedite tekst');
Readln(S);
L:= Length(S);
For I:= 1 to L-1 do
if S[I] = '.' then
T1:= (I-1);
T2:= ((L-T1)-3);
S1:= Copy(S,1,T1);
S2:= Copy(S,(T1+3),T2);
S1:= S1 + ' ';
S2:= S2 + ' ';
L1:= Length(S1);
L2:= Length(S2);
Writeln;
Writeln(S1);
Writeln(S2);
Writeln;
readln;
END;
Procedure OST;
LABEL 1;
BEGIN
SS2:= 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzz';
K:= 0;
M:= 0;
FOR I:= 1 TO L1 DO
IF S1[I] = ' ' THEN K:=K+1;
1: P:= POS(' ',S1);
M:= M+1;
SS1:= COPY(S1,1,(P-1));
DELETE(S1,1,P);
PR:= POS(SS1,S2);
IF (PR > 0) THEN
BEGIN
IF (SS2 >= SS1) THEN
SS2:= SS1;
end;
IF M < K THEN GOTO 1;
END;
Begin
BOX;
WIN;
clrscr;
VDP;
OST;
if SS2 < 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzz' then
Writeln('Slovo: ', SS2)
Else
Begin
Writeln ('Net takih slov');
Readln;
end.
Результат работы программы.
Программа выполняет заданные функции, при условии, что повторяющиеся слова не превышают 28 символов.