Скопировать элементы файла в квадратную матрицу размером - PascalABC.NET
Формулировка задачи:
Дан типизированный файл, содержащий символы. Скопировать элементы этого файла в квадратную матрицу размером n×n (если элементов файла недостает, заполнить оставшиеся элементы матрицы символом «точка»). Поменять местами в каждой строке минимальный и максимальный элементы.
Решение задачи: «Скопировать элементы файла в квадратную матрицу размером»
textual
Листинг программы
var f:file of char; a:array[,] of char; c:char; n,i,j,k,jmx,jmn: integer; begin //создадим типизированный файл assign(f,'SPISOK');//файл в папке с программой rewrite(f); writeln('Введите в файл не менее 4 символов, окончание ввода 0'); i:=0; repeat readln(c); inc(i); write(f,c); until(i>3)and(c='0'); reset(f); n:=filesize(f); while frac(sqrt(n))<>0 do n:=n+1; n:=round(sqrt(n)); setlength(a,n,n); k:=0; writeln('Исходная матрица'); for i:=0 to n-1 do begin for j:=0 to n-1 do begin k:=k+1; if k<filesize(f) then read(f,a[i,j]) else a[i,j]:='.'; write(a[i,j]:2); end; writeln; end; close(f); for i:=0 to n-1 do begin jmn:=0; jmx:=0; for j:=1 to n-1 do begin if a[i,j]<a[i,jmn] then jmn:=j; if a[i,j]>a[i,jmx] then jmx:=j; end; c:=a[i,jmn]; a[i,jmn]:=a[i,jmx]; a[i,jmx]:=c; end; writeln('Обмен минимального и максимального в строках'); for i:=0 to n-1 do begin for j:=0 to n-1 do write(a[i,j]:2); writeln; end; end.
Объяснение кода листинга программы
Список действий в коде:
- Создание файла и его открытие для записи.
- Ввод данных в файл с помощью цикла и операции чтения.
- Закрытие файла после ввода всех данных.
- Определение размера файла и вычисление квадратного корня из этого значения.
- Создание квадратной матрицы с помощью операции присваивания и операции чтения из файла.
- Вывод исходной матрицы на экран с помощью двойного цикла и операции вывода.
- Обмен минимального и максимального значения в каждой строке матрицы с помощью двойного цикла и операции обмена значений.
- Вывод обновленной матрицы на экран с помощью операции вывода.
- Закрытие программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д