Синформатикой, дана действительная квадратная матрица порядка n преобразовать матрицу по правилу : строку с номером n сделать столбцом с номером n, а столбец с номером n cделать строкой с номером n
Var matrix1:array [,] of real; n:integer; tmp:real; begin write('Введи размерность матрицы:'); readln(n); matrix1:=new real[n,n]; for var i:=0 to n-1 do begin for var j:=0 to n-1 do begin matrix1[i,j]:=Random(100); write(matrix1[i,j]:4); end; writeln; end; writeln('Поменяли:'); for var j:=0 to n-1 do begin tmp:=matrix1[j,n-1]; matrix1[j,n-1]:=matrix1[n-1,j]; matrix1[n-1,j]:=tmp; end; for var i:=0 to n-1 do begin for var j:=0 to n-1 do write(matrix1[i,j]:4); writeln; end; end.
Sub Alg_1() xN = -5: xK = 5: h = 0.1 x = xN: i = 1 Do While x <= xK y = 3 * x ^ 2 - 6 * x + 5 Cells(i, 1) = x: Cells(i, 2) = y x = x + h: i = i + 1 Loop End Sub
Во вложении файл с рабочей книгой MS Excel 2003. Макрос на листе 1.
Теперь о Вашей ошибке
Dim xN, xK, x As Integer Dim y, h As Single xN = -5 ... h = 0.1 x = xN ... x = x + h
Такое описание означает, что xN, xK будут типа Variant, х - типа Integer. y тоже будет типа Variant, h - типа Single. При выполнении опeратора x=x+h целочисленное x сначала увеличится на 0.1, а затем дробная часть будет отброшена. Поэтому х постоянно будет равен xN и цикл станет бесконечным.
begin
write('Введи размерность матрицы:');
readln(n);
matrix1:=new real[n,n];
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
begin
matrix1[i,j]:=Random(100);
write(matrix1[i,j]:4);
end;
writeln;
end;
writeln('Поменяли:');
for var j:=0 to n-1 do
begin
tmp:=matrix1[j,n-1];
matrix1[j,n-1]:=matrix1[n-1,j];
matrix1[n-1,j]:=tmp;
end;
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
write(matrix1[i,j]:4);
writeln;
end;
end.