Есть ответ 👍

Найти ошибку в коде не находит максимальные значения.: в исходном текстовом файле записаны строки, содержащие текст на языке.
требуется написать программу, которая для каждой строки исходного файла будет
определять и выводить в результирующий файл букву, встречающуюся в этой
строке чаще всего, и количество там таких букв. строчные и прописные буквы при этом
считаются не различимыми. если искомых букв несколько, то программа должна выводить на
экран первую из них по алфавиту.
uses crt;
const
lat = ['a'..'z'];
type mas = array['a'..'z'] of integer;



procedure strtomas(s: string; var a: mas);
var
c: char;
i: integer;
begin
for c : = 'a' to 'z' do
a[c] : = 0;
for i : = 1 to length(s) do
if s[i] in lat then
a[upcase( : = a[upcase( + 1;
end;

procedure max(var a: mas; var s: string; var k: char; amax: integer);
var
c: char;
begin
amax : = 0;
c : = 'a';
for c : = 'a' to 'z' do
begin
strtomas(s, a);
if a[c] > amax then
amax : = a[c];
k : = c;
end;
end;

procedure mastostr(var a: mas; var sres: string);
var
c, k: char;
amax: integer;
s: string;
begin
sres : = '';
k : = ' ';
amax : = 0;
for c : = 'a' to 'z' do
begin
if a[c] > 0 then
max(a, s, k, amax);
sres : = sres + k + ' ' + amax + ',';
if length(sres) > 2 then
delete(sres, length(sres) - 1, 2);
end;
end;

procedure filetofile(var f1, f2: text);
var
sres, s: string;
a: mas;
begin
reset(f1);
while not eof(f1) do
begin
readln(f1, s);
if s < > '' then begin
strtomas(s, a);
mastostr(a, sres);
end
else sres : = '';
rewrite(f2);
writeln(f2, sres);
end;
close(f1); close(f2);
end;

var
f1, f2: text;
fname1, fname2: string;

begin
clrscr;
task;
write('введите имя исходного файла ');
readln(fname1);
assign(f1, fname1);

if fileexists(fname1) then begin

write('введите имя результата ');
readln(fname2);
assign(f2, fname2);
filetofile(f1, f2);
end
else writeln('файл с таким именем не существует');
end.

243
410
Посмотреть ответы 1

Ответы на вопрос:


1. для кодирования одного из 256 символов требуется log(2)256 = 8 бит (2^8=256). информационный объем сообщения = 100*8 бит = 100*8 / 8 байт = 100 байт. 2. 1/512 мбайт = 1024*1/512 кбайт = 2 кбайта = 2*1024 байт = 2*1024*8 бит. объем одного символа = 2*1024*8 / 2048 = 8 бит мощность алфавита = 2^8 = 256 символов 3. для записи одного из 64 символов требуется log(2)64 = 6 бит (2^6=64) количество символов в тексте = 7*16*56 объем информации = 7*16*56*6 бит = 7*16*56*6 / 8 байт = 7*2*56*6 байт = 4704 байт = 4704/1024 кбайт  ≈ 4,6 кбайт 4. для записи одного из 120 номеров требуется log(2)120  ≈ 7 бит (2^7=128). информационный объем сообщения о результатах 64 лыжников = 64*7 бит = 64*7/8 байт = 56 байт

Популярно: Информатика