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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2013, 10:04   #1
jhon_jhonson
Новичок
Джуниор
 
Регистрация: 07.10.2013
Сообщений: 1
По умолчанию Помогите с программой

Помогите с программой нужно переделать ее на C ++ builder
Код:
Program F_An;
 uses CRT;
 type complex = record re, im: real;
  end;
 type Opis_comp = record nam:char;a,b:integer; par: real;
  end;
 const n=2; Ninp=1; Nout=2; Nf=21; f1=0.01; f2=100;
   Zapis: array [1..2] of Opis_comp=
            ((nam: 'R'; a:1; b:2; par:1),
             (nam: 'C'; a:2; b:0; par:0.159));
 var i,j,k, m, a, b  : integer;
   f,df,w,Kvid,Kdb: real;
   Cres,t, z, y1: complex;
  Y:array [0..n,0..n+1] of complex;

    Procedure CAdd(C1, C2: complex; var Cres:complex);
      begin Cres.Re:= C1.Re+C2.Re; CRes.Im :=C1.Im+C2. Im
      end;

    Procedure CMinus(C1, C2: complex; var Cres:complex);
      begin Cres.Re:= C1.Re-C2.Re; CRes.Im :=C1.Im-C2. Im
      end;

    Procedure CMult(c1, c2: complex; var Cres:complex);
      begin Cres.re:= c1.Re*c2.Re-c1.im*c2.im;
                CRes.im:= c1.re*c2.im+c2.re*c1.im
      end;

    Procedure CDiv(c1, c2: complex; var Cres:complex);
      var q:real;
      begin q:=c2.re*c2.re+c2.im*c2.im;
        Cres.re:= (c1.Re*c2.Re+c1.im*c2.im)/q;
        Cres.im:= (c1.im*c2.re-c1.re*c2.im)/q;
      end;

  Begin
   ClrScr;
   df:=exp((ln(f2)-ln(f1))/(Nf-1));
   f:=f1;
   for m:=1 to Nf do
   begin
     w:=2*Pi*f;
     for i:=0 to n do

     
     for j:=0 to n+1 do
         with Y[i,j] do
           begin re:=0; im:=0
           end;
     for i:=1 to 2 do
       begin
         with Zapis[i], y1 do
           begin
             case nam of
               'R': begin re:=1/Par; im:=0
                    end;
               'C': begin re:=0; im:=w*Par
                    end;
             end; {case}
           CAdd  (Y[a,a], y1, Y[a,a]);
           CAdd  (Y[b,b], y1, Y[b,b]);
           Cminus(Y[a,b], y1, Y[a,b]);
           Cminus(Y[b,a], y1, Y[b,a]);
         end; {with}
       end; { for i }
    Y[Ninp, n+1].re:=1;
    for k:=1 to n-1 do
      for i:=k+1 to n do
        begin
           CDiv(Y[i,k], Y[k,k], z);
           for j:=1 to n+1 do
              begin CMult(z, Y[k, j], t); CMinus(Y[i, j], t, Y[i, j])
              end;
      end;{direct step}
    for i:=n downto 1 do {invers step}
       begin
         z:=Y[i,n+1];
         for j:=i+1 to n do
            begin CMult(Y[i, j], Y[j, n+1], t); CAdd(z, t, z)
           end; {sum  for j }
         CDiv(z, Y[i, i], Y[i, n+1]);
       end; { for i }
    Cdiv(Y[Nout, n+1], Y[Ninp, n+1], y1);
    Kvid:=sqrt(sqr(y1.re)+sqr(y1.im));
    Kdb:=20*ln(Kvid)/ln(10);
    writeln('f',m:2,'=',f:7:3,' kGc    K= ', Kvid:5:3,'    Kdb=',Kdb:3:0,' dB');
    f:=f*df
   end; {for m to Nf}
    readln
  end.
jhon_jhonson вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с программой KillJoy Помощь студентам 1 11.11.2009 19:30
Помогите с программой. Arshavin10 Паскаль, Turbo Pascal, PascalABC.NET 1 01.06.2009 16:10
Помогите с программой asale Общие вопросы Delphi 2 11.02.2007 20:06