Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Пожалуйста,обьясните вот эту программку! Система линейных уравнений метод Крамера 
:(
    Опции темы
angel9630
Дата 2.5.2013, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 29.4.2013

Репутация: нет
Всего: нет



Пожалуйста помогите,объясните мне вот эту программку в виде комментариев!очень нужно,а то не могу объяснить учителю что где происходит,а зачет нужен(((

Код

uses crt;
type
   Tmass=array[1..20] of real;
   Tmatrix=array[1..20] of Tmass;
procedure Per(k,n:integer;var a:Tmatrix;var p:integer);
var    
   z:Real;j,i:integer;
begin
   z:=abs(a[k,k]);
   i:=k;
   p:=0;
   for j:=k+1 to n do
     begin
       if abs(a[j,k])>z then
         begin
           z:=abs(a[j,k]);
           i:=j;
           p:=p+1;
         end;
     end;
   if i>k then
   for j:=k to n do
     begin
       z:=a[i,j];
       a[i,j]:=a[k,j];
       a[k,j]:=z;
    end;
    end;
function Znak(p:integer):integer;
   begin
     if p mod 2=0 then
       Znak:=1 
     Else
       Znak:=-1;
   end;
procedure Opr(n:integer;a:tmatrix;var det:real);
var
   k,i,j,p:integer;r:real;
begin
   det:=1.0;
     for k:=1 to n do
        begin
          if a[k,k]=0 then Per(k,n,a,p);
          det:=znak(p)*det*a[k,k];
          for j:=k+1 to n do
            begin
              r:=a[j,k]/a[k,k];
              for i:=k to n do
              begin
                a[j,i]:=a[j,i]-r*a[k,i];
              end;
          end;
      end;
end;
var
   a:Tmatrix;
    c:array[1..20] of Tmatrix;
    b,x:Tmass;
    det,det1:real;
    n,k,j,i:integer;
begin
  clrscr;
  write('порядок системы n=');
  readln(n);
  writeln('введите коэфицмэнт системы:');
  for i:=1 to n do
  for j:=1 to n do
  read(a[i,j]);
  readln;
  writeln('введите свободные члены:');
  for i:=1 to n do
  read(b[i]);
  readln;
  clrscr;
  writeln('расширенная мтрица системы:');
  for i:=1 to n do
   begin
     for j:=1 to n do
     write(a[i,j]:7:2);
     write(b[i]:9:2);
     writeln;
   end;
Opr(n,a,det);
 for i:=1 to n do
   begin
     for k:=1 to n do
       begin
         for j:=1 to n do
           c[i][k,j]:=a[k,j];
           c[i][k,i]:=b[k];
       end;
   Opr(n,c[i],det1);
     if(det=0)and(det1=0) then
       begin
         writeln(системв не определена!');
         readln;
         exit;
       end;
     if(det=0)and(det1<>0) then
       begin
         writeln('система не имеет решения!');
         readln;
         exit;
       end;
       x[i]:=det1/det;
   end;
  writeln('корни системы:');
  for i:=1 to n do
    writeln('x',i,'=',x[i]:7:0);
    readln
end.
end.



Это сообщение отредактировал(а) MetalFan - 3.5.2013, 09:13
PM MAIL   Вверх
MetalFan
Дата 3.5.2013, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: нет
Всего: 128



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0382 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.