Программа не запускается "неправильный тип параметров подпрограммы" - PascalABC.NET
Формулировка задачи:
Код 1.
Код 2
Листинг программы
- Unit matrix;
- Interface
- type matr=array[1..10, 1..10] of real;
- procedure sozdmatr(var a:matr; x,y:byte);
- procedure vivod(a:matr; x,y:byte);
- procedure mul(a:matr;x,y:byte;h:integer;var b:matr);
- procedure N1N2(y:byte;n1,n2:byte;var a:matr);
- procedure minmax(a:matr;x,y:byte);
- Implementation
- procedure sozdmatr(var a:matr; x,y:byte);// процедура создания и заполнения матрицы
- var i,j:byte;
- begin
- for i:=1 to x do
- for j:=1 to y do
- a[i,j]:=random(10);
- end;
- procedure vivod(a:matr; x,y:byte); // процедура вывода матрицы
- var i,j:byte;
- begin
- for i:=1 to x do
- begin
- for j:=1 to y do
- write(a[i,j]:5:1);
- writeln;
- end;
- end;
- procedure mul(a:matr;x,y:byte;h:integer;var b:matr); //процедура умножения матрицы на число
- var i,j:byte;
- begin
- for i:=1 to x do
- begin
- for j:=1 to y do begin
- b[i,j]:=a[i,j]*h;
- write (b[i,j]:5:1);
- end;
- writeln;
- end;
- end;
- procedure N1N2(y:byte;n1,n2:byte;var a:matr);
- var j:byte;
- x:real;
- begin
- for j:=1 to y do
- begin
- x:=a[n1,j];
- a[n1,j]:=a[n2,j];
- a[n2,j]:=x;
- end;
- end;
- procedure minmax(a:matr;x,y:byte); //нахождение минимально и максимального элемента в строке
- var i,j:byte;
- min,max:real;
- begin
- min:=a[1,1];
- max:=a[1,1];
- for i:=1 to x do // цикл по строкам
- begin
- for j:=1 to y do // цикл по столбцам
- begin
- if a[i,j]<min then min:=a[i,j]; //нахождение минимального
- if a[i,j]>max then max:=a[i,j]; // нахождение максимального
- end;
- writeln('Минимальный элемент в строке ',i,' - ',min, '[',i,',',j,']'); // вывод минимального в строке
- writeln('Максимальный элемент в строке ',i,' - ',max, '[',i,',',j,']'); // вывод максимального в строке
- min:=a[i+1,1];//минимальный элемент в след строке 1 столбце
- max:=a[i+1,1];//максимальный элемент в след строке 1 столбце
- end;
- end;
- end.
Листинг программы
- program mat;
- uses crt,matrix;
- type matr=array[1..10, 1..10] of real;
- var n,m,k,l1,l2:byte;
- l:integer;
- A,sum,B:matr;
- begin
- clrscr;
- writeln('Составить библиотеку алгоритмов для обработки произвольных числовых матриц (тип REAL):');
- writeln('1 - умножение матрицы на число');
- writeln('2 - поменять местами строки с номерами N1 и N2');
- writeln('3 - определить наибольший(наименьший) элемент в строке, дополнительно определить местоположение найденного элемента.');
- readln(k);
- case k of
- 1: begin writeln('Введите размер матицы '); readln(n,m);
- sozdmatr(A,n,m);
- writeln('Матрица ');
- vivod(A,n,m);
- write('Введите число ');readln(l);
- mul(A,n,m,l,B);
- end;
- 2: begin writeln('Введите размер матицы '); readln(n,m);
- sozdmatr(A,n,m);
- writeln('Матрица ');
- vivod(A,n,m);
- write('Введите номер первой строки (N1)');readln(l1);
- write('Введите номер второй строки (N2)');readln(l2);
- if (l1<=n) and (l2<=n) then begin
- N1N2(m,l1,l2,A);
- vivod(A,n,m);
- end else write('Таких строк нет!');
- end;
- 3: begin writeln('Введите размер матицы '); readln(n,m);
- sozdmatr(A,n,m);
- writeln('Матрица ');
- vivod(A,n,m);
- minmax(A,n,m);
- end;
- end;
- end.
Решение задачи: «Программа не запускается "неправильный тип параметров подпрограммы"»
textual
Листинг программы
- type matr=array[1..10, 1..10] of real;
Объяснение кода листинга программы
В данном коде объявляется тип данных матрица
(подразумевается, что это двумерный массив), который может содержать до 10 строк и до 10 столбцов, каждая ячейка имеет тип данных реальное число
.
Также в коде, скорее всего, происходит попытка инициализации этой матрицы, но точный код не указан, поэтому дальнейший список пунктов не применим.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д