Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 24.11.2017
Сообщений: 11
1

Сжатие на основе сравнения

18.10.2019, 16:10. Показов 1915. Ответов 2

Author24 — интернет-сервис помощи студентам
Здравствуйте. Помогите пожалуйста с задачей на Паскале:

Сжатие на основе сравнения. Вводится m различных сообщений произвольной длины, последовательности начальных символов в которых могут совпадать. Если такое совпадение имеется в двух сообщениях, следующих друг за другом, то начальные символы второго сообщения заменяются программой на эквивалентное представление вида *(k), где k – количество совпадающих символов.

Например, вводится m сообщений, в нашем случае 3:
Иванов Иванков Ивлев
В результате будет:
Иванов
*(4)ков
*(2)лев

Спасибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2019, 16:10
Ответы с готовыми решениями:

Сжатие на основе сравнения
Сжатие на основе сравнения. вводится m различных сообщений произвольной длины, последовательности...

Написать программу на основе алгоритма RLE (сжатие/восстановление массива)
Массив из 0 и 1 целых чисел. Массив надо сжать, а затем восстановить массива. Надо написать...

Реализовать метод, осуществляющий сжатие строки на основе счетчика повторяющихся символов
Решите задачу пожалуйста 1.Реализуйте метод, осуществляющий сжатие строки на основе счетчика...

Провести компрессию (сжатие) информации методом главных компонент (РСА) и на основе системы Э. Оя
Здравствуйте! Есть задание провести компрессию (сжатие) информации методом главных компонент (РСА)...

2
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
19.10.2019, 09:49 2
Лучший ответ Сообщение было отмечено AnthonyG как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  s, t: String;
  i, k, m: Integer;
begin
  ReadLn(m); ReadLn(t); WriteLn(t);
  for m:=2 to m do begin
    s:=t; ReadLn(t);
    k:=Length(t); if k>Length(s) then k:=Length(s);
    i:=1; while (i<=k) and (s[i]=t[i]) do Inc(i);
    if i>1
    then WriteLn('*(',i-1,')',Copy(t,i,Length(t)))
    else WriteLn(t);
  end;
end.
Чтобы было именно сжатие ("сжатая" строка короче исходной) нужно
Pascal
10
    if i>5
1
0 / 0 / 0
Регистрация: 24.11.2017
Сообщений: 11
20.10.2019, 14:14  [ТС] 3
Большое спасибо. Именно то, что нужно. Подкорректировал под себя
Вложения
Тип файла: rar 1 - 7.rar (619 байт, 16 просмотров)
0
20.10.2019, 14:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2019, 14:14
Помогаю со студенческими работами здесь

Копирование файлов на основе результатов сравнения содержимого каталогов
Добрый день! Прошу помощи в написании батника со следующим функционалом: Есть три папки A, B,...

Как вывести два графика для визуального сравнения сравнения
Как вывести два графика с данными в один для сравнения import numpy as np import...

Написать программу которая, подготавливает регистры к проведению цикла сравнения строк fam и tabs и сам цикл сравнения
Доброго времени суток нужна помощь в написании программы. Задание: Написать программу которая,...

Сжатие звука с потерями и обратно (или иное сжатие с потерями)
Доброго всем времени суток. Столкнулся с такой проблемой, есть канал связи с маленькой скоростью на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru