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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 22:30   #1
LittleStudent
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 17
Лампочка Метод наименьших квадратов

Доброе время суток уважаемые программисты.
Подскажите пожалуйста как мне сделать чтобы ввод и вывод данных выводился только из файла, но при этом и работал ввод и вывод данных с клавиатуры на экран???
Код:
uses Crt;
const
   N=10;
   M=3;
type
   TVectN=array [1..N] of real;
   TVectM=array [1..M] of real;
   TMatr=array [1..M,1..M] of real;
var
   X,Y:TVectN;
   B:TMatr;
   A,C:TVectM;
   i,k,f:byte;

Procedure MistakeR;
  begin
    writeln(Ошибка чтения файла ',IOresult);
    case IOresult of
          \\-----------
    end;
 end;

procedure ReadFile(var X,Y:TVectN);
  var
    F:text;
    FileOpen:string;
  begin
    writeln('Ввод с файла :');
    write('Введите имя файла: ');
    readln(FileOpen);
    assign(F,FileOpen);
    {$I-}
    reset(F);
    {$I+}
    if IOresult<>0 then
      begin
        MistakeR;
        close(F);
      end;
      i:=0;
      Readln(F);
      while not seekEOF(F) do
        begin
          inc(i);
          writeln;
          readln(F,X[i],Y[i]);
        end;
    close(F);
  end;

procedure ReadKeyboard(var X,Y:TVectN;N:integer);
  var
    i:byte;
  begin
    writeln('Ввод с клавиатуры  (максимум ',N,' ):');
    write('X = ');
    i:=0;
    repeat
      inc(i);
      read(X[i]);
    until
      EOLN or (i=N);
    readln;
    write('Y = ');
    i:=0;
    repeat
      inc(i);
      read(Y[i]);
    until
      EOLN or (i=N);
    readln;
  end;

function Reading(var X,Y:TVectN):boolean;
  var
    flag:boolean;
    ch:char;
  begin
    ch:='0';
    flag:=true;
    writeln('Ввести исходные данные:');
    writeln('1. С клавиатуры');
    writeln('2. С файла ');
    writeln('3. Выходим из программы');
    while (ch<>'1') and (ch<>'2')  and (ch<>'3') and flag do
      ch:=readkey;
      case ch of
        '1': ReadKeyboard(X,Y,N);
        '2': ReadFile(X,Y);
        '3': flag:=false;
      end;
    Reading:=flag;
  end;

procedure MistakeS;
  begin
    writeln('Ошибка записи файла: ',IOresult);
    case ioresult of
      \\--------------
    end;
  end;

procedure Fork1(A:TVectM);
  \\--выбираю ву
  end;

procedure iors;
  begin
    case ioresult of
       \\----------
    end;
  end;

procedure Fork2;
  Var
    F:text;
    Flag:Boolean;
  begin
    writeln('Печать на принтер:');
    assign(F,'prn');
    {$I-}
    rewrite(F);
    {$I+}
    if IOresult<>0
      then
        begin
          flag:=false;
          writeln('Ошибка печати: ',IOresult);
          iors;
          close(F);
        end;
      end;

procedure SAVER(var A:TVectM);
  \\выбираю ву
  end;

procedure PrintV(V:TVectN;N:integer);
  var i:integer;
  begin
    for i:=1 to N do
      begin
        write(V[i]:7:2);
      end;
    writeln;
  end;

procedure uravn;
  begin
    \\тут идут расчеты
  end;

procedure KoefBC(var B:TMatr; var C:TVectM; var X,Y:TVectN;N:integer);
  var
    i,j:integer;
  begin
    FillChar(B, sizeof (B),0);
    FillChar(C, sizeof (C),0);
    for i:=1 to N do
      uravn;
  end;

procedure PrintU(B:TMatr;C:TVectM;M:integer);
  var i,j:integer;
  begin
    writeln('Система уравнений  B*A=C:');
    for i:=1 to M do
      begin
        for j:=1 to M do
          begin
            write(B[i,j]:9:2);
          end;
        writeln(' = ',C[i]:12:6);
      end;
  end;

procedure Gauss(var A,C:TVectM;var B:TMatr;M:integer);
  \\расчеты
  end;

procedure XY;
  begin
    writeln('Пары точек (X,Y):');
    write('X = ');
    PrintV(X,N);
    write('Y = ');
    PrintV(Y,N);
  end;

procedure reh;
  begin
    write('A =',A[1]:6:2,';');
    write('B =',A[2]:6:2,';');
    write('C =',A[3]:6:2,';');
  end;
procedure FrokM;
  begin
        if Reading(X,Y)
          then
             begin
                 XY;
             End;
  End;

begin
  clrscr;
        FrokM;
        KoefBC(B,C,X,Y,N);
        PrintU(B,C,M);
        Gauss(A,C,B,M);
        PrintU(B,C,M);
        writeln('Полученные коэффициенты:');
        reh;
        writeln;
        SAVER(A);
        Writeln;
        Readkey;
      end;
end.
LittleStudent вне форума Ответить с цитированием
Старый 06.05.2011, 12:05   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

А теперь еще раз, подумав, прошу написать просьбу. Потому что нифига не понятно, что там имеется в виду. Если надо, чтобы программа могла получать данные как из файла, так и с клавиатуры - просто предусмотреть соответствующие процедуры и действия.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 06.05.2011, 14:00   #3
LittleStudent
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 17
По умолчанию

Я уже разобрался=)
Спс за внимание-)
LittleStudent вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аппроксимация методом наименьших квадратов kamil83 Помощь студентам 0 22.02.2011 17:33
Аппроксимация методом наименьших квадратов KSuxa1989 Помощь студентам 2 08.09.2010 15:20
Метод наименьших квадратов. Система линейных уравнений. Jarik Microsoft Office Excel 1 18.08.2009 12:53
Как нарисовать на Tchart график функции, заданной таблично(используя метод наименьших квадратов) Legion2008 Мультимедиа в Delphi 0 11.05.2009 16:00