Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.20;
Скачать: CL | DM;

Вниз

Частотный букварь текста   Найти похожие ветки 

 
Indigo   (2007-12-18 12:59) [0]

Необходимо было в паскале написать программу, которая составляет частотный букварь текста, т.е. необходимо посчитать количество использований в тексте каждого символа. Я написал, но при выводе результатов все счётчики на нулях:
var text:string; i,j:integer; z:char;
a: array [1..256] of integer;
b: array [1..256] of char;

procedure sABC(text:string; a: array [1..256] of integer; b: array [1..256] of char);
begin
For i:=1 to 256 do b[i]:=chr(i-1);
for i:=1 to length(text) do begin
   For j:=1 to 256 do
   If text[i]=b[j] then a[j]:=a[j]+1;
   end;
end;

begin
    Writeln("Enter a text in English language:");
    Readln(text);
    sABC(text, a, b);
    For i:=0 to 255 do Write(i+1, ") ", chr(i), ":", a[i+1], " ");
end.


Просьба указать на ошибку. Заранее спасибо.


 
Плохиш ©   (2007-12-18 13:07) [1]


> procedure sABC(text:string; var a: array [1..256] of integer;
>  var b: array [1..256] of char);


 
morgoth   (2007-12-18 13:07) [2]

ошибка здесь
procedure sABC(text:string; a: array [1..256] of integer; b: array [1..256] of char);


 
Indigo   (2007-12-18 13:11) [3]

Спасибо огромное, теперь всё ок :)


 
Sha ©   (2007-12-18 13:44) [4]


for i:=1 to length(text) do begin
  For j:=1 to 256 do
  If text[i]=b[j] then a[j]:=a[j]+1;
  end;


попробуй заменить на


for i:=1 to length(text) do inc(a[1+ord(text[i])]);


 
MBo ©   (2007-12-18 13:49) [5]

еще проще использовать возможность языка - индексирование массива любым порядковым типом

a: array[Char] of Integer

for i:=1 to length(text) do
 Inc(a[text[i]]);


 
Sha ©   (2007-12-18 13:58) [6]

Также в твоем случае, кроме отказа от использования массива b,
целесообразно объявить a: array [ #0..#255] of integer;
тогда подсчет символов будет выглядеть более прозрачно:

for i:=1 to length(text) do inc(a[text[i]]);


 
Sha ©   (2007-12-18 13:58) [7]

))


 
Indigo   (2007-12-18 14:00) [8]

Просто идеально, спасибо за помощь!



Страницы: 1 вся ветка

Текущий архив: 2008.01.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
15-1197655294
TUser
2007-12-14 21:01
2008.01.20
Привезли комп


15-1197412788
Drowsy
2007-12-12 01:39
2008.01.20
Растягивающаяся рамка.


9-1165844621
Аццкий_рыцарь
2006-12-11 16:43
2008.01.20
Насчет разработки РПГ


3-1189424450
Ulugbek
2007-09-10 15:40
2008.01.20
Как скрыть в DbLookupComboBox Drop-Down стрелку


2-1198222673
Kolan
2007-12-21 10:37
2008.01.20
Возвращение объекта из процедуры.