Двумерный массив из файла - 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.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая содержит функции для работы с файлами.
- Объявляются переменные: a - двумерный массив целых чисел размером от 1 до 20 строк и 1 до 20 столбцов; f - файл для чтения и записи; s - строка для чтения из файла; n - количество строк в массиве; i, j, kp, ko - переменные для хранения текущего значения i, j, kp и ko соответственно.
- Запускается функция clrscr, которая очищает экран.
- Задается значение переменной f как 'input.txt' - имя файла для чтения и записи.
- Запускается функция reset(f), которая готовит файл к чтению.
- Вычисляется количество строк в массиве n.
- Запускается цикл while, который читает строки из файла до конца файла или до тех пор, пока не будет достигнут конец файла (EOF).
- Для каждой прочитанной строки увеличивается значение n на 1.
- После окончания чтения файла закрывается файл с помощью функции close(f).
- Инициализируются переменные kp и ko для отслеживания количества положительных и отрицательных чисел в матрице соответственно.
- Запускается цикл for, который проходит по каждой строке массива.
- Для каждой строки запускается вложенный цикл for, который проходит по каждому элементу массива.
- Читается значение элемента массива с помощью функции read(f, a[i,j]), где i - номер строки, а j - номер столбца.
- Выводится значение элемента массива с помощью функции write(a[i,j]:4), где i - номер строки, а j - номер столбца.
- Если значение элемента массива больше 0, то увеличивается значение kp на 1.
- Если значение элемента массива меньше 0, то увеличивается значение ko на 1.
- После окончания вложенного цикла выводится символ новой строки с помощью функции writeln.
- После окончания внешнего цикла выводится символ новой строки с помощью функции writeln.
- Выводится размер матрицы равный n.
- Выводится количество положительных чисел равное kp.
- Выводится количество отрицательных чисел равное ko.
- Запускается функция readln, которая ожидает ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д