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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2013, 10:52   #1
fox82
Новичок
Джуниор
 
Регистрация: 10.12.2013
Сообщений: 2
По умолчанию Нужно переделать мою прогу под метод прямого сканирования

Нужно переделать ее по - метод прямого сканирования или как я понимаю под шаговый метод.Может кто сообразит как
Код:
program lab1c;
uses crt;
label 1;

 var ti,pi,ki,ptn,ptv,ktn,ktv:array[1..5] of real;
     z,ztn,ztv,tn,tv,t,e: real;
     i,k: integer;

    const n=5;
       A: array[1..5] of real=(4.07427,4.01946,3.99695,4.11248,4.04296);
       B: array[1..5] of real=(1345.087,1266.871,1171.53,1030.34,1355.126 );
       C: array[1..5] of real=(219.516,216.757,224.366,251.041,209.517);
       Y: array[1..5] of real=(0.05,0.15,0.7,0.05,0.05);
       p0=5.2;

 begin
 clrscr;
  for i:=1 to n do
  ti[i]:=(B[i]/(A[i]-ln(p0)/ln(10)))-C[i];
 writeln('tkip komponentov');
 writeln('n-tolyol ti=',ti[1]:3:3);
 writeln(' n-geptan ti=',ti[2]:3:3);
 writeln(' n-geptan ti=',ti[3]:3:3);
 writeln(' n-bytan ti=',ti[4]:3:3);
 writeln(' n-oktan ti=',ti[5]:3:3);

 writeln('sootvetstvyiyt li A,B,C polychennim tkip?');
 write('niz tn=');readln(tn);
 write('verh tv=');readln(tv);
 writeln('tochnost rascheta e=');
 readln(e);
  k:=0;
  repeat
  k:=k+1;
 for i:=1 to n do
 begin
  ptn[i]:=exp((A[i]-B[i]/(C[i]+tn))*ln(10));
  ptv[i]:=exp((A[i]-B[i]/(C[i]+tv))*ln(10));
  ktn[i]:=ptn[i]/p0;
  ktv[i]:=ptv[i]/p0;
 end;
 ztn:=0;ztv:=0;
 for i:=1 to n do
 begin
  ztn:=ztn+Y[i]/ktn[i];
  ztv:=ztv+Y[i]/ktv[i];
 end;
  ztn:=ztn-1;
  ztv:=ztv-1;
  t:=(tn+tv)/2;
 for i:=1 to n do
 begin
  pi[i]:=exp((A[i]-B[i]/(C[i]+t))*ln(10));
  ki[i]:=pi[i]/p0;
 end;
   z:=0;
   for i:=1 to n do
   begin
  z:=z+Y[i]/ki[i];
   end;
 z:=z-1;
 if abs(t-tn)<=e then goto 1;
 if z*ztv>0 then tv:=t else tn:=t;
 until k>100;
 writeln('oshibka!');
 1:
 writeln('rezultat rascheta');
 writeln('temperatura verha t=',t:3:3);
 writeln('chislo iteracii k=',k);
 readln;
end.

Последний раз редактировалось fox82; 11.12.2013 в 21:49.
fox82 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать прогу под WinApi malcolm666 Фриланс 3 18.12.2010 09:33
Нужно переделать макрос под меня ganebal Microsoft Office Excel 0 22.11.2010 19:52
Нужно переделать прогу, чтобы была с использованием модуля, а как? koysara Помощь студентам 1 13.10.2010 19:26
переделать прогу под Linux Sparky Помощь студентам 4 26.05.2010 23:54