AZelensky
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: AZelensky Да правильно всё, ты ж просто новый массив вывести забыл: в самом конце вместо Код: write(MatrixMass[j,j]); writeln; ReadLN; end. надо делать Код: For i:= 1 to n Do begin For j:= 1 to n Do write(MatrixMass[i, j]:0:0, ' '); writeln; end; ReadLN; end. Добавлено: Или ты хочешь понять, почему у тебя получается нуль? Так это потому, что при сортировке при последнем внешнем цикле i становится =n, соответственно во внутреннем цикле начальное значение j=i+1=n+1 и цикл закономерно не выполняется. В итоге write(MatrixMass[j,j]) превращается в write(MatrixMass[n+1,n+1]). Если хочешь, чтобы после цикла было j=n, то сортировку надо делать: Код: For i:= 1 to n-1 Do For j:= i + 1 to n Do | После упорядочивания главной диагонали должно получиться число или же матрица с последовательностью цифр главной диагонали от малого к большему? Добавлено: И как можно сделать это без использования функции? А думал-думал и не придумал. Не получается сделать некоторые действия. Вот код: Код: {$N+} function y(const a,b,x: double): double; begin if x<-pi/2 then y:=(x-a)/(pi/2+a) else if x<pi/2 then y:=sin(x) else y:=1; end; var a,b,h,e,ip,ic: double; i,n: longint; begin writeln('a=?'); readln(a); writeln('b=?'); readln(b); writeln('точность=?'); readln(e); ic:=0; n:=16; h:=(b-a)/n; for i:=0 to n-1 do ic:=ic+y(a,b,a+i*h); ic:=ic*h; repeat ip:=ic; ic:=0; for i:=0 to n-1 do ic:=ic+y(a,b,a+i*h+h/2); ic:=(ic*h+ip)/2; n:=n*2; h:=(b-a)/n; until abs(ic-ip)<e; writeln('результат=',ic:6:6); readln; end. |
|