Двумерный массив из файла - Turbo Pascal (29105)

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

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

Всем добрый день,помогите с решением задачи. Двумерный квадратный массив целых считывается из текстового файла. Программа выводит квадратный массив в консольное окно, выдает информацию о его размере, количестве положительных и отрицательных элементов.

Решение задачи: «Двумерный массив из файла»

textual
Листинг программы
uses crt;
var a:array[1..20,1..20] of integer;
    f:text;
    s:string;
    n,i,j,kp,ko:integer;
begin
clrscr;
assign(f,'input.txt');{файл в папке с программой}
reset(f);
{определим размер=количествл строк}
n:=0;
while not eof(f) do
 begin
  readln(f,s);
  n:=n+1;
 end;
close(f);
kp:=0;
ko:=0;
reset(f);
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    read(f,a[i,j]);
    write(a[i,j]:4);
    if a[i,j]>0 then kp:=kp+1
    else if a[i,j]<0 then ko:=ko+1;
   end;
  writeln;
 end;
close(f);
writeln('Размер матрицы=',n);
writeln('Количество положительных=',kp);
writeln('Количество отрицательных=',ko);
readln
end.

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

  1. В начале кода подключается библиотека crt, которая содержит функции для работы с файлами.
  2. Объявляются переменные: a - двумерный массив целых чисел размером от 1 до 20 строк и 1 до 20 столбцов; f - файл для чтения и записи; s - строка для чтения из файла; n - количество строк в массиве; i, j, kp, ko - переменные для хранения текущего значения i, j, kp и ko соответственно.
  3. Запускается функция clrscr, которая очищает экран.
  4. Задается значение переменной f как 'input.txt' - имя файла для чтения и записи.
  5. Запускается функция reset(f), которая готовит файл к чтению.
  6. Вычисляется количество строк в массиве n.
  7. Запускается цикл while, который читает строки из файла до конца файла или до тех пор, пока не будет достигнут конец файла (EOF).
  8. Для каждой прочитанной строки увеличивается значение n на 1.
  9. После окончания чтения файла закрывается файл с помощью функции close(f).
  10. Инициализируются переменные kp и ko для отслеживания количества положительных и отрицательных чисел в матрице соответственно.
  11. Запускается цикл for, который проходит по каждой строке массива.
  12. Для каждой строки запускается вложенный цикл for, который проходит по каждому элементу массива.
  13. Читается значение элемента массива с помощью функции read(f, a[i,j]), где i - номер строки, а j - номер столбца.
  14. Выводится значение элемента массива с помощью функции write(a[i,j]:4), где i - номер строки, а j - номер столбца.
  15. Если значение элемента массива больше 0, то увеличивается значение kp на 1.
  16. Если значение элемента массива меньше 0, то увеличивается значение ko на 1.
  17. После окончания вложенного цикла выводится символ новой строки с помощью функции writeln.
  18. После окончания внешнего цикла выводится символ новой строки с помощью функции writeln.
  19. Выводится размер матрицы равный n.
  20. Выводится количество положительных чисел равное kp.
  21. Выводится количество отрицательных чисел равное ko.
  22. Запускается функция readln, которая ожидает ввода пользователя.

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

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