Переделать программу с использованием процедур - Pascal

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

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

Нужна срочная помощь ! Сдеалал курсовую еще неделю назад ,программа работает ,приношу на проверку а меня рубят и требуют следующие "нужно задание матрицы, транспонирование, перестановку строк и скалярное произведение в процедуры переделать"(его слова). Решил не спорить ,у самого ничего не выходит,помогите ,комрады!
Program TheMatrix;
Uses crt;
var a:array [0..127,0..127] of integer;
i,j,d,b,c,e,f,N,p,proizv,matr: integer;
chislo: char;
Begin
clrscr;
WriteLn(‘Введите размер квадратной матрицы:’);
ReadLn(N);
for i:=0 to N-1 do
for j:=0 to N-1 do
begin
a[i,j]:=random(100);
end;
for i:=0 to N-1 do
begin
for j:=0 to N-1 do
Write(a[i,j]:N-1);
WriteLn;
end;
WriteLn(‘Введите число:’);
WriteLn(‘1-перестановка двух строк’);
WriteLn(‘2-транспонирование матрицы относительно побочной диагонали’);
WriteLn(‘3-скалярное произведение заданного столбца и строки’);
ReadLn(chislo);
case chislo of
‘1’:begin
WriteLn(‘Введите номера строк:’);
ReadLn(b,c);
for j:=0 to N-1 do
begin
d:=a[b-1,j];
a[b-1,j]:=a[c-1,j];
a[c-1,j]:=d;
end;
WriteLn(‘Результат равен:’);
for i:=0 to N-1 do
begin
for j:=0 to N-1 do
write(a[i,j]:N-1));
WriteLn;
end;
ReadLn;
end;
‘2’: begin
for i:=0 to N-1 do
for j:=0 to N-1 do
begin
matr:=a[j,i];
a[j,i]:=a[i,j];
a[i,j]:=matr;
end;
WriteLn(‘Результат транспонирования:’);
for i:=0 to N-1 do
begin
for j:=0 to N-1 do
Write(a[j,i]:N-1);
WriteLn;
end;
ReadLn;
end;
‘3’: begin
WriteLn(‘Введите номер строки и столбца:');
ReadLn(e,f);
proizv:=0;
for i:=0 to N-1 do
proizv:=proizv+a[e-1,i]*a[i,f-1];
Write(‘Скалярное произведение равно:’,proizv);
ReadLn;
end;
end;
End.

Решение задачи: «Переделать программу с использованием процедур»

textual
Листинг программы
Program TheMatrix;
Uses
  crt;
type
  matrix=array [0..127,0..127] of integer;
var
  a:matrix;
  i,j,d,b,c,e,f,N,p,proizv,matr: integer;
  chislo: char;
 
procedure creatematrix(var x:matrix);
begin
  WriteLn('Введите размер квадратной матрицы:');
  ReadLn(N);
  for i:=0 to N-1 do
    for j:=0 to N-1 do
      begin
        x[i,j]:=random(100);
      end;
  for i:=0 to N-1 do
    begin
      for j:=0 to N-1 do
        Write(x[i,j]:N-1);
      WriteLn;
    end;
end;
 
procedure Change(var x:matrix);
begin
  WriteLn('Введите номера строк:');
  ReadLn(b,c);
  for j:=0 to N-1 do
    begin
      d:=x[b-1,j];
      x[b-1,j]:=x[c-1,j];
      x[c-1,j]:=d;
    end;
  WriteLn('Результат равен:');
  for i:=0 to N-1 do
    begin
      for j:=0 to N-1 do
        write(x[i,j]:N-1);
      WriteLn;
    end;
end;
 
procedure Trans(var x:matrix);
begin
  for i:=0 to N-1 do
    for j:=0 to N-1 do
      begin
        matr:=x[j,i];
        x[j,i]:=x[i,j];
        x[i,j]:=matr;
      end;
  WriteLn('Результат транспонирования:');
  for i:=0 to N-1 do
    begin
      for j:=0 to N-1 do
        Write(a[j,i]:N-1);
      WriteLn;
    end;
end;
 
procedure Pr(x:matrix);
begin
  WriteLn('Введите номер строки и столбца:');
  ReadLn(e,f);
  proizv:=0;
  for i:=0 to N-1 do
    proizv:=proizv+x[e-1,i]*x[i,f-1];
  Write('Скалярное произведение равно:',proizv);
end;
 
Begin
  clrscr;
  creatematrix(a);
WriteLn('Введите число:');
WriteLn('1-перестановка двух строк');
WriteLn('2-транспонирование матрицы относительно побочной диагонали');
WriteLn('3-скалярное произведение заданного столбца и строки');
ReadLn(chislo);
case chislo of
'1':begin
      Change(a);
      ReadLn;
    end;
'2': begin
       ReadLn;
       Trans(a);
     end;
'3': begin
       pr(a);
       ReadLn;
     end;
end;
End.

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

  1. В программе объявлены переменные a, i, j, d, b, c, e, f, N, p, proizv, matr.
  2. Создается матрица с помощью процедуры creatematrix.
  3. Меняются строки матрицы с помощью процедуры Change.
  4. Транспонирование матрицы относительно побочной диагонали выполняется с помощью процедуры Trans.
  5. Вычисляется скалярное произведение заданного столбца и строки с помощью процедуры Pr.
  6. Программа предлагает пользователю ввести число от 1 до 3 для выбора операции.
  7. Пользователь вводит число, и программа выполняет соответствующую операцию.
  8. Программа завершается с помощью оператора End.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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