IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на массив и кодировку, Помогите решить!!!
Лекса
сообщение 17.04.2006 19:31
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Срочно нужно написать программу. Условие:

"Для заданного массива (можно взять любой файл), рассматривая его как двоичное кодирование. вычислить коэффициенты экономии или перерасхода памяти (отношения использованных объёмов при разных способах хранения) при хранении его в виде длин цепочек с полубайтовым, байтовым и двухбайтовым представлением длин цепочек."

Может у кого есть готовая или кто нибудь по быстрому накатает. Заранее всем спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Лекса
сообщение 18.04.2006 17:21
Сообщение #2





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Возможно. Только мне кажеться что начинать нужно не с нуля, а с единици. И уже их количество считать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 18.04.2006 21:24
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Лекса @ 18.04.2006 17:21) *
Возможно. Только мне кажеться что начинать нужно не с нуля, а с единици. И уже их количество считать.

Не понял, что возможно, и какая разница с чего начинать. Вот набросок второго варианта:
uses crt;
const max:array [0..2] of word =($f,$ff,$ffff);
var q:byte;
f:file of byte;
j,b,i,c:byte;
l,ct:longint;
begin
assign (f,'c:\test.dat');
for j:=0 to 2 do begin
l:=0; reset (f); c:=0; ct:=0;
repeat
read(f,b); q:=128;
for i:=7 downto 0 do begin
if (b and q) shr i=c then begin
inc (ct);
if ct>max[j] then begin
inc(l,2); ct:=1; end;
end else begin c:=1-c; ct:=1; inc(l); end;
q:=q shr 1;
end;
until eof(f);
inc(l);
writeln (max[j],'=',l*((1 shl j)/2):0:1, ' bytes');
end;
close(f);
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"