Дана квадратная матрица - Turbo Pascal (33566)

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

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

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

Решение задачи: «Дана квадратная матрица»

textual
Листинг программы
const 
  maxsize = 10;
  
var
  arr : array[1 .. maxsize] of integer;
  
var 
  mx : array[1 .. maxsize, 1 .. maxsize] of integer;
  mxSize : integer;
  i, j, k, size : integer;
begin
  repeat
    write('n = '); readln(size);
  until (size > 0) and (size <= maxsize);
  
  { сначала находим размер матрицы: }
  mxSize := (Trunc(Sqrt(Succ(8*size))) - 1) div 2;
  writeln('Размер матрицы: ', mxSize, '*', mxSize);
 
  writeln('Введите массив:');
  for i := 1 to size do
  begin
    write('A[', i:2, '] = '); readln(arr[i]);
  end;
  
 
  k := 1; { Ну, а потом - заполняем ее }
  for i := 1 to mxSize do 
  begin
    mx[i, i] := arr[k]; { элемент главной диагонали }
    inc(k);
    for j := i + 1 to mxSize do
    begin
      mx[i, j] := arr[k]; { над главной }
      mx[j, i] := arr[k]; { под главной }
      inc(k);
    end;
  end;
  
  for i := 1 to mxSize do
  begin
    for j := 1 to mxSize do
      write(mx[i, j]:5);
    writeln;
  end;
end.

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

  1. Объявляются переменные maxsize, arr и mx с соответствующими значениями.
  2. Запрашивается размер матрицы от пользователя.
  3. Проверяется, что введенный размер не превышает максимально допустимый размер матрицы.
  4. Вычисляется размер матрицы mx с помощью формулы mxSize := (Trunc(Sqrt(Succ(8*size))) — 1) div 2;.
  5. Выводится сообщение с размером матрицы.
  6. Запрашивается ввод массива arr от пользователя.
  7. Заполняется матрица mx с использованием циклов и значений из массива arr.
  8. Выводится матрица mx построчно с помощью цикла for.
  9. Конец программы.

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

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