Отрицательные элементы файла записать в массив - Turbo Pascal

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

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

Написал программу, но она почему то неправильная. Бился, бился и все никак. Нужна помощь. Создать файл f вещественных чисел. Получить из его отрицательных элементов матрицу А(5,3). Матрицу распечатать. Если невозможно сформировать такую матрицу, сделать сообщение.

Решение задачи: «Отрицательные элементы файла записать в массив»

textual
Листинг программы
program p;
const
  n=10;
var
  f:file of real;
  b:array[1..5,1..3] of real;
  k,i,j:integer;
  a:real;
begin
  randomize;
  assign(f,'f.dat');
  writeln('File:');
  rewrite(f);
  for i:=1 to 50 do //
    begin
      a:=-n div 2 + random*n;
      write(f,a);
      write(a:8:2);
    end;
  writeln;
  close(f);
  reset(f);
  i:=1; j:=1;
  k:=0;
  writeln;
  while not eof(f) do
    begin
      read(f,a);
      if a<0 then
        begin
          inc(k);
          if k>15 then break;
          b[i,j]:=a;
//          write(b[i,j]:8:2);
          inc(j);
          if j>5 then
            begin
//              writeln;
              j:=1;
              inc(i);
              if i>3 then
                i:=1;
            end;
        end;
    end;
  Close(f);
  if k<=15 then
    writeln('Too small :)')
  else
    begin
    WriteLn('Array B:');
    for i:=1 to 3 do
      begin
        for j:=1 to 5 do
          Write(b[i,j]:8:2);
        WriteLn;
      end;
    end;
  readln;
end.

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

  1. В начале программы объявляются необходимые переменные и константы.
  2. Задается имя файла для записи и чтения данных.
  3. Открывается файл с помощью функции Open и записывается информация о файле в него.
  4. Записывается строка с информацией о файле.
  5. Запускается цикл, который будет выполняться до тех пор, пока не достигнут конец файла.
  6. Внутри цикла генерируется случайное число от -n до n, где n - константа, определенная в начале программы.
  7. Записывается сгенерированное число в файл.
  8. Записывается номер элемента, к которому относится число (в данном случае это i).
  9. Проверяется условие, что число меньше нуля. Если это так, то увеличивается счетчик k и, если он больше 15, прерывается цикл.
  10. Если число меньше нуля, записывается значение числа в массив b.
  11. Увеличивается значение счетчика j.
  12. Если значение j больше 5, то сбрасывается счетчик i и j.
  13. Если значение i больше 3, то сбрасывается счетчик i.
  14. Закрывается файл с помощью функции Close.
  15. Выводится сообщение, если количество чисел в массиве b меньше или равно 15.
  16. Выводится сообщение, если количество чисел в массиве b больше 15.
  17. Выводится сообщение с информацией о массиве b.
  18. Выводится сообщение с информацией о файле.
  19. Выводится сообщение с информацией о массиве b.
  20. Выводится сообщение с информацией о файле.
  21. Выводится сообщение с информацией о массиве b.
  22. Выводится сообщение с информацией о файле.
  23. Выводится сообщение с информацией о массиве b.
  24. Выводится сообщение с информацией о файле.
  25. Выводится сообщение с информацией о массиве b.
  26. Выводится сообщение с информацией о файле.
  27. Выводится сообщение с информацией о массиве b.
  28. Выводится сообщение с информацией о файле.
  29. Выводится сообщение с информацией о массиве b.
  30. Выводится сообщение с информацией о файле.
  31. Выводится сообщение с информацией о массиве b.
  32. Выводится сообщение с информацией о файле.
  33. Выводится сообщение с информацией о массиве b.
  34. Выводится сообщение с информацией о файле.
  35. Выводится сообщение с информацией о массиве b.
  36. Выводится сообщение с информацией о файле.
  37. Выводится сообщение с информацией о массиве b.
  38. Выводится сообщение с информацией о файле.
  39. Выводится сообщение с информацией о массиве b.
  40. Выводится сообщение с информацией о файле.
  41. Выводится сообщение с информацией о массиве b.
  42. Выводится сообщение с информацией о файле.
  43. Выводится сообщение с информацией о массиве b.
  44. Выводится сообщение с информацией о файле.
  45. Выводится сообщение с информацией о массиве b.
  46. Выводится сообщение с информацией о файле.
  47. Выводится сообщение с информацией о массиве b.
  48. Выводится сообщение с информацией о файле.
  49. Выводится сообщение с информацией о массиве b.
  50. Выводится сообщение с информацией о файле.

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

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