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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2008, 11:03   #1
vdv08
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 42
По умолчанию создать типизированный файл который будет использоваться в Методе Гаусса

Вот программа как в нее добавить типизированный файл?

Код:
var r,i,j,k,n: integer;
    max,c,m,s:real;a: array[1..100,1..100] of real;
    x,b: array[1..100]of real;
    begin
{ввод элементов массива}
write ('Введите размерность = ');
read (n);
for i:=1 to n do begin
    for j:=1 to n do begin
    write ('a[',i,',',j,']=');
   read (a[i,j]);
    end;
    writeln;
    write ('b[',i,']=');
    readln(b[i]);
    end;
{прямой ход метода Гаусса}
for k:=1 to n do begin
max:=abs(a[k,k]);
r:=k;
     for i:=k+1 to n do
     if abs(a[i,k])>max then begin
     max:=abs(a[i,k]);
     r:=i; end;
for j:=1 to n do begin
    c:=a[k,j];
    a[k,j]:=a[r,j];
    a[r,j]:=c;
    end;
    c:=b[k];
    b[k]:=b[r];
    b[r]:=c;
    for i:=k+1 to n do begin
    m:=a[i,k]/a[k,k];
        for j:=k to n do
        a[i,j]:=a[i,j]-m*a[k,j];
    b[i]:=b[i]-m*b[k];
    end;
end;{вывод треугольной матрицы}
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j]:1:2,' ');
writeln(b[i]:1:2);
end;

{Обратный ход метода Гаусса}
   if a[n,n]=0 then
   if b[n]=0 then 
   writeln ('Бесконечное множество решений')
   else 
   writeln ('Нет решений')
else for i:=n downto 1 do begin
     s:=0;
     for j:=i+1 to n do begin
     s:=s+a[i,j]*x[j]; end;
     x[i]:=(b[i]-s)/a[i,i];
     writeln('x(',i,')=',x[i]:1:2);
      end;
     end.
Благодарен всем кто откликниться!!!

Последний раз редактировалось AlDelta; 23.10.2008 в 12:09.
vdv08 вне форума Ответить с цитированием
Старый 23.10.2008, 11:44   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Что значит добавить? Сохранить результаты в типизированный файл али ещё как?
eoln вне форума Ответить с цитированием
Старый 23.10.2008, 14:52   #3
vdv08
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 42
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Что значит добавить? Сохранить результаты в типизированный файл али ещё как?
да!сохранить результаты в типизированом файле!!!!Пдскажи как это сделать без наворотов.ЭТо типизированный файл!
Спасибо от души заранее!!!
vdv08 вне форума Ответить с цитированием
Старый 23.10.2008, 15:08   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
var
  r,i,j,k,n: integer;
  max,c,m,s:real;a: array[1..100,1..100] of real;
  x,b: array[1..100]of real;
  f: file of real;//раз строчка
begin
  {ввод элементов массива}
  write ('Введите размерность = ');
  read (n);
  for i:=1 to n do begin
    for j:=1 to n do begin
      write ('a[',i,',',j,']=');
      read (a[i,j]);
    end;
    writeln;
    write ('b[',i,']=');
    readln(b[i]);
  end;
  {прямой ход метода Гаусса}
  for k:=1 to n do begin
    max:=abs(a[k,k]);
    r:=k;
    for i:=k+1 to n do
    if abs(a[i,k])>max then begin
      max:=abs(a[i,k]);
      r:=i;
    end;
    for j:=1 to n do begin
      c:=a[k,j];
      a[k,j]:=a[r,j];
      a[r,j]:=c;
    end;
    c:=b[k];
    b[k]:=b[r];
    b[r]:=c;
    for i:=k+1 to n do begin
      m:=a[i,k]/a[k,k];
      for j:=k to n do
      a[i,j]:=a[i,j]-m*a[k,j];
      b[i]:=b[i]-m*b[k];
    end;
  end;
  {вывод треугольной матрицы}
  for i:=1 to n do begin
    for j:=1 to n do
    write(a[i,j]:1:2,' ');
    writeln(b[i]:1:2);
  end;
  {Обратный ход метода Гаусса}
  assign(f, 'otvet.dat');//два строчка
  rewrite(f);
  if a[n,n]=0 then
  if b[n]=0 then
    writeln ('Бесконечное множество решений')
  else
    writeln ('Нет решений')
  else for i:=n downto 1 do begin
    s:=0;
    for j:=i+1 to n do begin
      s:=s+a[i,j]*x[j];
    end;
    x[i]:=(b[i]-s)/a[i,i];
    writeln('x(',i,')=',x[i]:1:2);
    write(f, x[i]);//три строчка
  end;
  close(f);//четыре строчка
  readln
end.
Сразу скажу, что файл otvet.dat блокнотом не прочитается, т.к. он типизированный
eoln вне форума Ответить с цитированием
Старый 23.10.2008, 15:17   #5
vdv08
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 42
По умолчанию

[QUOTE=eoln;14Спасибо от души!!!
vdv08 вне форума Ответить с цитированием
Старый 23.10.2008, 15:17   #6
vdv08
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 42
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Код:
var
  r,i,j,k,n: integer;
  max,c,m,s:real;a: array[1..100,1..100] of real;
  x,b: array[1..100]of real;
  f: file of real;//раз строчка
begin
  {ввод элементов массива}
  write ('Введите размерность = ');
  read (n);
  for i:=1 to n do begin
    for j:=1 to n do begin
      write ('a[',i,',',j,']=');
      read (a[i,j]);
    end;
    writeln;
    write ('b[',i,']=');
    readln(b[i]);
  end;
  {прямой ход метода Гаусса}
  for k:=1 to n do begin
    max:=abs(a[k,k]);
    r:=k;
    for i:=k+1 to n do
    if abs(a[i,k])>max then begin
      max:=abs(a[i,k]);
      r:=i;
    end;
    for j:=1 to n do begin
      c:=a[k,j];
      a[k,j]:=a[r,j];
      a[r,j]:=c;
    end;
    c:=b[k];
    b[k]:=b[r];
    b[r]:=c;
    for i:=k+1 to n do begin
      m:=a[i,k]/a[k,k];
      for j:=k to n do
      a[i,j]:=a[i,j]-m*a[k,j];
      b[i]:=b[i]-m*b[k];
    end;
  end;
  {вывод треугольной матрицы}
  for i:=1 to n do begin
    for j:=1 to n do
    write(a[i,j]:1:2,' ');
    writeln(b[i]:1:2);
  end;
  {Обратный ход метода Гаусса}
  assign(f, 'otvet.dat');//два строчка
  rewrite(f);
  if a[n,n]=0 then
  if b[n]=0 then
    writeln ('Бесконечное множество решений')
  else
    writeln ('Нет решений')
  else for i:=n downto 1 do begin
    s:=0;
    for j:=i+1 to n do begin
      s:=s+a[i,j]*x[j];
    end;
    x[i]:=(b[i]-s)/a[i,i];
    writeln('x(',i,')=',x[i]:1:2);
    write(f, x[i]);//три строчка
  end;
  close(f);//четыре строчка
  readln
end.
Сразу скажу, что файл otvet.dat блокнотом не прочитается, т.к. он типизированный
спасибо от души!!
vdv08 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal]типизированный файл+записи Fuaran8989 Помощь студентам 4 30.11.2008 14:01
Типизированный файл Лубышев Помощь студентам 2 11.10.2008 11:08
Как создать типизированный файл Kosya4ok Паскаль, Turbo Pascal, PascalABC.NET 3 16.12.2007 09:29
скрипт который будет сам формировать запрос в Яндекс Antivoin HTML и CSS 1 18.08.2007 19:23