Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2009, 21:01   #1
RrR007
Новичок
Джуниор
 
Регистрация: 10.06.2009
Сообщений: 1
Сообщение Метод квадратного корня

Задание:
- Ввод и вывод исходных данных;
- Проверка применимости метода;
- Нахождение нужной верхнетреугольной матрицы и ее вывод;
- Нахождение и печать вспомогательного вектора У;
- Нахождение и печать ответа - вектора Х.
- Компакт-метод для произвольных матриц (дополнительно).

Огромная просьба прокомментировать что, где и как происходит в данной программе:


Код:
Program MKK;
Uses crt;
const n=4;
type mass1=array[1..n,1..n] of real;
     mass2=array[1..n] of real;
var  a,s:mass1;b,y,x:mass2;i,j,k:integer;
     f:boolean;
 
procedure vvod;
var i,j:integer;
begin
a[1,1]:=4;a[1,2]:=2;a[1,3]:=6;a[1,4]:=8;
a[2,1]:=2;a[2,2]:=5;a[2,3]:=5;a[2,4]:=10;
a[3,1]:=6;a[3,2]:=5;a[3,3]:=14;a[3,4]:=17;
a[4,1]:=8;a[4,2]:=10;a[4,3]:=17;a[4,4]:=30;
b[1]:=-80;
b[2]:=156;
b[3]:=-304;
b[4]:=221;
writeln('Variant 10:');
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j]:2:0,' ');
writeln('| ',b[i]:2:0);end;
writeln;
end;
 
 
procedure proverka(var f:boolean);
var i,j:integer;
begin
f:=true;
for i:=1  to n do
for j:=1 to n do
if a[i,j]<>a[j,i] then f:=false;
end;
 
procedure matr_S;
var i,j,k:integer;s1:real;
begin
for i:=1 to n do begin
s1:=0;
for k:=1 to (i-1) do
s1:=s1+s[k,i]*s[k,i];
s[i,i]:=sqrt(a[i,i]-s1);
for j:=(i+1) to n do begin
s1:=0;
for k:=1 to (i-1) do
s1:=s1+s[k,i]*s[k,j];
s[i,j]:=(a[i,j]-s1)/s[i,i];
end;end;
writeln('Matrica S:');
for i:=1 to n do begin
for j:=1 to n do
write(s[i,j]:2:0,' ');writeln; end;
end;
 
procedure matr_Y;
var i,k:integer;s1:real;
begin
for i:=1 to n do begin
s1:=0;
for k:=1 to (i-1) do
s1:=s1+s[k,i]*y[k];
y[i]:=(b[i]-s1)/s[i,i];end;
writeln;
writeln('Vspomogatelniy vektor Y:');
for i:=1 to n do begin
write(y[i]:2:0,' ');writeln;end;
end;
 
procedure matr_X;
var i,k:integer;s1:real;
begin
for i:=n downto 1 do begin
s1:=0;
for k:=(i+1) to n do
s1:=s1+s[i,k]*x[k];
x[i]:=(y[i]-s1)/s[i,i];end;
writeln;
writeln('Otvet (vektor X):');
for i:=1 to n do begin
write(x[i]:2:0,' ');writeln;end;
end;
 
begin
clrscr;
 
vvod;
proverka(f);
if f=true then begin
matr_S;matr_y;matr_x;end
else writeln('metod ne primenim dlya dannoy matrici!');
end.
RrR007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожалуйста написать програмку для вычисления квадратного корня ! срочно !!! ylvia Помощь студентам 7 20.02.2012 19:29
Вычисление квадратного корня вручную 6AZblJlb Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 16.11.2011 04:02
Pascal, метод Ньютона, вычисление корня ф-ии. Qousio Помощь студентам 2 02.05.2009 19:47
Длинная арифметика (Нахождение квадратного корня) 08ekhiv1 Помощь студентам 6 06.03.2009 15:48