Получить гистограмму длин строк файла - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Заданный текстовый файл. Получить гистограмму длин строк этого файла. вот что мне удалось написать.
Что здесь не так?

Решение задачи: «Получить гистограмму длин строк файла»

textual
Листинг программы
program fajly;
 
var
  f: text;
  a: array[1..100] of string;
  len: array[1..100] of integer;
  max, i, n, m, j: integer;
  s: string;
 
begin
  assign(f, 'f.txt'); 
  rewrite(f);
  write('N= ');
  readln(n);
  for i := 1 to n do
  begin
    m := random(n);
    s := '';
    for j := 1 to m do
      s := s + '#';
    writeln(s);  
  end;
  close(f);
  reset(f);
  i := 0;
  while not eof(f) do 
  begin
    inc(i);
    readln(f, a[i]);
  end;
  close(f);
  n := i;
  for I := 1 to n do
    len[i] := length(a[i]);
  for I := 1 to n do
  begin
    for j := 1 to len[i] do write('#');
    writeln;
  end;
  readln;
end.

Объяснение кода листинга программы

  1. В программе объявлены переменные: f (тип text), a (массив строк), len (массив целых чисел), max, i, n, m, j (целые числа).
  2. Задается имя файла для чтения и записи - 'f.txt'.
  3. Выполняется операция перезаписи файла 'f' с помощью функции rewrite(f).
  4. Выводится сообщение 'N= ' и считывается значение переменной n.
  5. Для каждой строки в файле 'f' выполняется цикл for i := 1 to n do.
  6. Внутри цикла генерируется случайное число m от 1 до n.
  7. Строка s инициализируется пустой строкой.
  8. Для каждой цифры от 1 до m выполняется цикл for j := 1 to m do.
  9. Каждая цифра добавляется к строке s с помощью оператора конкатенации.
  10. Выводится строка s.
  11. Выполняется операция rewrite(f) для очистки файла перед следующим чтением.
  12. Считывается следующая строка из файла 'f' с помощью функции readln(f, a[i]).
  13. Значение переменной i увеличивается на единицу.
  14. Выполняется цикл while не достигнуто условие eof(f) do.
  15. После каждого чтения строки из файла 'f' вызывается функция close(f).
  16. Переменная n инициализируется значением i.
  17. Для каждой строки в файле 'f' выполняется цикл for I := 1 to n do.
  18. Вычисляется длина строки a[i] с помощью функции length(a[i]).
  19. Выводится символ '#' для каждой строки a[i].
  20. Выводится символ '\n' для завершения строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы