Конференция "Начинающим" » Рациональная интерполяция с помощью непрерывных дробей. [Delphi, Windows]
 
  • SvK.droNe © (02.04.12 09:28) [0]
    Помогите пожалуйста с массивами, программа работает но вывод неправельный.

    Код:
    program Project2;
    {$APPTYPE CONSOLE}
    uses
     SysUtils;
    label 150,130,250;
    const MaxN=10;
    var
     A,B,D,P,Q,X,Y:array[0..MaxN] of real;
     i,j,m,m1:integer;
     r,s,k:real;
    begin
     writeln ('Vvedit kilcist tochok m=');readln(m);                // 20
      for i:=1 to m do
      begin
       writeln('x[' ,i, ']='); readln (x[i]);
      end;
      for i:=1 to m do
       begin
       writeln('y[' ,i, ']='); readln (y[i]);
        end;                                //30
        m1:= m div 2;
       for j:=1 to m do
        begin
         R:=Y[j]; S:=X[j];
         if j=1 then goto 130;
         for i:=1 to j-i do
         begin
         r:= (S-X[i])/(R-A[i]);
        end;

         130:A[j]:=r;                    //130
        end;

        P[0]:=1; Q[0]:=A[1];K:=1;
      150: for i:=1 to m1 do
         begin
         P[i]:=0; Q[i]:=0;
         end;
         for i:=2 to m do                //160
         begin
          for j:=(i div 2) downto 1 do     //170
          begin
          r:=A[i]*Q[j]-X[i-1]*P[j]+P[j-1];
          P[j]:=q[j];q[j]:=r;
          end;
        R:=A[i]*Q[0]-X[i-1]*P[0];        //200
        P[0]:=Q[0];
        Q[0]:=R;
        end;
       if k=2 then goto 250;               //220
       for i:=0 to m1 do
        begin
        B[1]:=Q[1];
       k:=2; P[0]:=0; Q[0]:=1;  goto 150;
       end;
        for i:=0 to m1 do
        begin
        250: d[i]:=Q[i];
          end;
         Writeln('Koeficientu:');

        writeln ('Koeficientu A:');
        for i:=1 to m do
        begin
        writeln ('A(',i,')=');
        Writeln (A[i]:2:2);
         end;

        writeln ('Koeficientu B:');
        for i:=0 to m1 do
        begin
        writeln ('B(',i,')=');
        Writeln (B[i]:2:2);
         end;

        writeln ('Koeficientu D');
        for i:=0 to m1 do
        begin
        writeln ('D(',i,')=');
        writeln (D[i]:2:2);
         end;
        readln;

    end.

  • Сергей М. © (06.04.12 11:53) [1]
    Отладчик что говорит ?
  • Jeer © (06.04.12 14:36) [2]

    > программа работает


    Если программа скомпилировалась, то, с большой вероятностью, она будет работать.
    Вопрос "Как ?" - это следующий вопрос.
  • ford © (06.04.12 18:59) [3]
    Увидев ЭТО


    >  if j=1 then goto 130;

    ...

    > 130:A[j]:=r;  


    брррр, тебя кто так писать код учил?
    убейте своего учителя информатики, и повесьте труп на фонарном столбе, чтобы другим не повадно было!!

    "ЭТО" преобразуется в

    A[1]:=Y[1];
    for j:=2 to m do
       begin
         R:=Y[j]; S:=X[j];
         for i:=1 to j-i do
          begin
            r:= (S-X[i])/(R-A[i]);
          end;
       end;



    Вообще посмотрите внимательно на строчки

    for i:=0 to m1 do
       begin
       B[1]:=Q[1];
      k:=2; P[0]:=0; Q[0]:=1; goto 150;
      end;

  • ford © (06.04.12 19:06) [4]
    И к стати,

    ...
        if j=1 then goto 130;
        for i:=1 to j-i do
        begin
    ...



    при каждой итерации, чему у Вас равна переменная i ?
    в этот цикл, Ваша программа не зайдет никогда в жизни :)
  • Jeer © (06.04.12 19:40) [5]
    Да там полный бред, передранный из Бейсика.
    Массив объявлен с нуля ( динам, поскольку ), а используется с 1.
    Ну и кому это надо ?
    Ф топку.
  • ford © (06.04.12 20:28) [6]

    > Jeer ©   (06.04.12 19:40) [5]

    нуу будьте снисходительны, сейчас в школах такую ахинею по информатике преподают, что этот "опус" еще так-себе :) , я и по хуже видел :)
    но вот препода .... точно повесить, причем за яйцЫ :)) (если нету, то пришить и повесить :)) )
  • Jeer © (06.04.12 20:45) [7]

    > нуу будьте снисходительны,


    Не могу, иначе - это пособничество преподам-недоумкам и без-мысли-учащимся.
  • MBo © (06.04.12 20:56) [8]
    Код из библиотеки численного анализа НИВЦ МГУ. Изначально на фортране, отсюда и метки и единичная база массивов. (Не сомневаюсь, что он был отлажен и работал корректно).
  • ford © (06.04.12 20:58) [9]

    > это пособничество преподам-недоумкам

    А Вы лично как представляете себе педагога за 5000-7000р. в месяц ?
    вот, сами посмотрите вакансии
    http://www.rostobr.ru/activity/cadres/vacancy/
    я не просто так говорю :)
    Я лично, ни-за что не пойду преподавать в школу за такие деньги :)
    Преподавать что-либо за прожиточный минимум....
    http://www.rostov-gorod.ru/?ID=3242
    Это КОЩУНСТВО :)
    ну и как следствие... такие вот "опусы" от таких вот "учеников", которым "преподают" за такие деньги, такие вот "преподаватели"
    :( груустно однако
  • ford © (06.04.12 21:00) [10]

    > MBo ©

    дайте ссылку на код
  • Сергей М. © (06.04.12 21:00) [11]

    > нуу будьте снисходительны


    ага.
    и будучи снисходительными не удивляйтесь потом почему  наши спутники с орбиты горохом падают в океаны)
  • MBo © (06.04.12 21:04) [12]
    http://num-anal.srcc.msu.ru/lib_na/cat/cat913.htm
    Перевод на Паскаль-Дельфи появился, видимо, недавно, раньше не было. С динмассивами, вероятно, перемудрили (код не смотрел, просто сомневаюсь, что на нулевую  базу автоматически переведено)
  • ford © (06.04.12 21:12) [13]

    > Сергей М.

    Извиняюсь, судя по
    > MBo ©   (06.04.12 21:04) [12]
    >
    > http://num-anal.srcc.msu.ru/lib_na/cat/cat913.htm

    это не "школьная программа", сл-но..... еще хуже
    этот "вопрошающий" из института... и явно не сельхозмашиностроения..... !!!!

    > наши спутники с орбиты горохом падают в океаны)

    тут уж не только спутники будут падать .... :(
  • Jeer © (06.04.12 21:35) [14]

    > Код из библиотеки численного анализа НИВЦ МГУ.


    Борис !
    В этом-то и беда, что существуют и выложены в Инет изумительные алгоритмы, созданные и отлаженные поколениями математиков и алгоритмистов, но неучи используют их бездумно и, вполне вероятно, включая их "ремиксы" в реальные проекты, типа "Фобос в грунт"
  • ford © (06.04.12 21:44) [15]

    > включая их "ремиксы" в реальные проекты, типа "Фобос в грунт"

    нифига-се "ремиксы" :)
  • ford © (06.04.12 21:51) [16]

    > Jeer ©

    Кстати, а Вы давно общались в проф. плане с выпускниками институтов?
    Я вот недавно был, так сказать удручен... мягко выражаясь - "ЖО-ПА полная"
    они ничего не знают... только как бабло считать.....
  • Jeer © (06.04.12 22:20) [17]

    > Кстати, а Вы давно общались в проф. плане с выпускниками
    > институтов?


    Преподавал в Бауманском и готовил группу из 5-ти человек для серьезной работы с моим участием.
    Работа была выполнена, пятеро потом устроились вполне адекватно.
    Было это где-то в 2005.

    Из тех выпускников, кого встречаю сейчас ( впрочем, Калуга - не лучший расклад, в этом плане ) - ничего из себя, как инженеры, не представляют.
    Но это не их вина.
 
Конференция "Начинающим" » Рациональная интерполяция с помощью непрерывных дробей. [Delphi, Windows]
Есть новые Нет новых   [119166   +69][b:0][p:0.002]