Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.02.2009, 20:07   #21
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от daur3n Посмотреть сообщение
еще одно проблемка есть.Как сделать чтобы паскаль воспринимал русский текст или сделать так, чтобы прога читала текстовый файл в которой текст написан на русском...
Добавить в
Код:
var
f:text;
вместо
Код:
readln(s);
сделать
Код:
  Assign(f,'c:\1.txt');
            reset(f);
            readln(f,s);
            close(f);
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума
Старый 10.02.2009, 20:50   #22
daur3n
Начинающий вникать
 
Аватар для daur3n
 
Регистрация: 10.02.2009
Сообщений: 5
По умолчанию

vse nenado nashel!sps
daur3n вне форума
Старый 10.02.2009, 20:53   #23
daur3n
Начинающий вникать
 
Аватар для daur3n
 
Регистрация: 10.02.2009
Сообщений: 5
По умолчанию

sps za otvet!
daur3n вне форума
Старый 17.02.2009, 23:50   #24
didar_
Пользователь
 
Регистрация: 10.02.2009
Сообщений: 21
По умолчанию Срочно нужно

program d;
uses crt;
type TInf=record
ch:char;
i:byte;
end;
var i,n,j,k:integer;
a:array[1..1000] of TInf;
s:string;
q:set of char;
h:real;
f:text;
begin
clrscr;
assign(f,'c:\dake.txt');
reset(f);
read(f,s);
close(f);
q:=[];
n:=0;
for i:=1 to length(s) do
if not(s[i] in q) then begin
k:=0;
for j:=i to length(s) do
if s[i]=s[j] then inc(k);
inc(n);
a[n].ch:=s[i];
a[n].i:=k;
q:=q+[s[i]];
end;

k:=length(s);
h:=0;
for i:=1 to n do
begin
if a[i].ch=' ' then writeln('(пробел)=',a[i].i,' p=',a[i].i/k:5:3)
else writeln(a[i].ch,'=',a[i].i,' p=',a[i].i/k:5:3);
h:=h+(a[i].i/k)*(ln((a[i].i/k)/ln(2)));
end;
writeln('H=',-h:5:3,' бит/символ ');
writeln('N=',k,' (общее количество символов)');
writeln('нажмите любую клавишу');
end.



Вот это прога рабочая, но мой текст состоит больше 255 символов. Че мне делать? помоги плз очень нужно

Последний раз редактировалось didar_; 18.02.2009 в 00:10.
didar_ вне форума
Старый 18.02.2009, 00:01   #25
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

didar_ В программу не вникал. Попробуйте заменить
Код:
s:string;
на
Код:
s:array[1..1000] of char;
Компилируется и вроде работает.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 18.02.2009, 00:09   #26
didar_
Пользователь
 
Регистрация: 10.02.2009
Сообщений: 21
По умолчанию

прога считает сколько символов в строке и каждый сколько штук. Потом находит их вероятность и вычисляет по формуле Шена.

замена не помогла. Ошибку выдает
didar_ вне форума
Старый 18.02.2009, 00:17   #27
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от didar_
замена не помогла. Ошибку выдает
Какую ошибку? Какой компилятор? У меня все работает (компилируется)

Вот, отметил что изменил:
Код:
program d;
uses crt;
type TInf=record
ch:char;
i:byte;
end;
var i,n,j,k,len:integer;
a:array[1..1000] of TInf;
s:array[1..1000] of char;
q:set of char;
h:real;
f:text;
begin
clrscr;
assign(f,'dake.txt');
reset(f);
i:=1;
while not eof(f) do
 begin
 read(f,s[i]);
 inc(i);
 end;
len := i - 1;
close(f);
q:=[];
n:=0;
for i:=1 to len do
if not(s[i] in q) then begin
k:=0;
for j:=i to len do
if s[i]=s[j] then inc(k);
inc(n);
a[n].ch:=s[i];
a[n].i:=k;
q:=q+[s[i]];
end;

k:=len;
h:=0;
for i:=1 to n do
begin
if a[i].ch=' ' then writeln('(пробел)=',a[i].i,' p=',a[i].i/k:5:3)
else writeln(a[i].ch,'=',a[i].i,' p=',a[i].i/k:5:3);
h:=h+(a[i].i/k)*(ln((a[i].i/k)/ln(2)));
end;
writeln('H=',-h:5:3,' бит/символ ');
writeln('N=',k,' (общее количество символов)');
writeln('для возврата нажмите любую клавишу');
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 18.02.2009 в 00:25.
Sazary вне форума
Старый 18.02.2009, 00:23   #28
didar_
Пользователь
 
Регистрация: 10.02.2009
Сообщений: 21
По умолчанию

я заменил s:string на s:array[1..1000]of char;

assign(f,'c:\dake.txt');
reset(f);
read(f,s); вот здесь Connot Read or Write variables of this type.
close(f);
didar_ вне форума
Старый 18.02.2009, 00:30   #29
didar_
Пользователь
 
Регистрация: 10.02.2009
Сообщений: 21
По умолчанию

Огромное спасибо
didar_ вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Zip-архив и названия файлов украинскими буквами Richardcv Общие вопросы по Java, Java SE, Kotlin 0 14.01.2009 17:38
проблема с большими и мелкими буквами onded Паскаль, Turbo Pascal, PascalABC.NET 3 15.10.2008 22:15
Как поменять интервал между буквами в поле Acces? xruss Microsoft Office Access 9 08.05.2008 11:32
Как сделать так, чтобы в компонент edit вводились цифры и аналогично с буквами? Askat Общие вопросы Delphi 6 22.08.2007 21:00
Пробел между буквами Выручите! Mickle Помощь студентам 1 11.05.2007 01:18