0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 9
1

Переписать программу с паскаля на Делфи

14.11.2016, 19:16. Показов 568. Ответов 10
Метки нет (Все метки)

Помогите пожалуйста, после запуска и ввода значений указывает на эту строку, как быть? что править не знаю
t1:=1/f[i]; a[i]:=1e-2; t3:=t1/nis;

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  (*Компьютерная программа моделирования процесса виброцеонного вибродиспергирования
  (компьютерная модель порционного вибродиспергирования)*)
  const
  r1=1600;
  r2=1000;
  h1=4e-2;
  h2=2e-2;
  a3=1e-4;
  g=9.81;
  s=0.048;
  d0=2e-3;
  m=0.63;
  fi=0.83;
  k=1;
{s - удельная энергия взаимодействия фаз, Дж/м^2
 d0 - диаметр отверстия истечения, м
 m - коэффициент расхода 
 fi - коэффициент скорости
 r1 - плотность диспксной фазы, кг/м^3
 r2 - плотность сплошной фазы, кг/м^3
 h1 - уровень расплава над отверстием истечения, м
 h2 - уровень хладоагента над отверстием истеченияgenta, м
 a3 - шаг по амплитуде, мм
 k - коэффициент сопротивления движению диска – осциллятора в среде расплава}
   type ai = array[1..10] of integer;
        ar = array[1..10] of real;
   var Vl1,Vl2,Vl,Vr,k1,v,t1,t3,s0,w,t,vf,p,p1,q0,dqdt : real;
       n,nis,i : integer;
       f : ai;
       d,a : ar;
 {частота и амплитуда осцилляции диска
  v,d - объем и диаметр капли}
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
label ami,diam;
function
 ct(x,y:real):real;
      begin  //
       ct:=exp(y*ln(x))
      end; //
   begin  //
   Memo1.Clear;
nis:= 100;
n:=strtoint(Edit1.Text);
  for i := 1 to n do
    begin  //
   f[i]:=strtoint(Edit2.Text);
   k1:=1/3*ct(3/(4*pi),(1/3));
s0:=pi/4*ct(d0,2); //площадь отверстия истечения
for i := 1 to n do
      begin  //
        w:=2*pi*f[i]; {uglovaja chastota oscilljacij diska }
t1:=1/f[i]; a[i]:=1e-2; t3:=t1/nis;
{t1 - period kolebanij diska
a[i] - nachal'noe znachenie amplitudy oscilljacij diska, m
t3 - shag integrirovanija po vremeni}
 
  ami: Memo1.Lines.Add('a='+ FloatToStr(a[i]) + 'mm');
v:=0; {ob#em kapli v nachal'nyj moment}
t:=0;
    while t<t1 do
      begin
  t:=t+t3;
vf:=a[i]*w*sin(w*t); {skorost' kolebatel'nogo dvizhenija diska-oscilljatora}
p:=k*r1*sqr(vf)/2; {davlenie, sozdavaemoe diskom-oscilljatorom}
p1:=g*(r1*h1-r2*h2); {differencial'noe gidrostaticheskoe davlenie}
{nad otverstiem istechenija}
q0:=m*s0*sqrt(2/r1*(p1+p)); {potok rasplava cherez otverstie}
v:=v+q0*t3; {ob#em kapli v moment vremeni}
dqdt:=s0/sqrt(2/r1*(p1+k*r1/2*sqr(a[i]*w*sin(w*t))))*k*
r1*sqr(a[i]*w)*sin(w*t)*cos(w*t);
Vl:=(1/3*k1*ct(v,(-2/3))-fi/(m*s0))*sqr(q0)+k1*ct(v,(1/3))*dqdt+(r1-r2)/r1*g*v;
Vr:=s*pi*d0/r1;
if Vl>Vr then goto diam {uslovie otryva kapli}
     end; {cikla  while}
     a[i]:=a[i]+a3; goto ami;
  diam:  d[i]:=ct(6*v/pi,(1/3)) {diametr kapli v moment otryva }
  end; {cikla  for}
    Memo1.Clear;
Memo1.Lines.Add('Udelnaja mezhfaznaja jenergija  s=' + FloatToStr(s) + ' Dzh/m^2');
Memo1.Lines.Add('Diametr otverstija istechenija  d0=' + FloatToStr(d0) + ' mm');
Memo1.Lines.Add('Plotnosti rasplava i hladoagenta r1=' + FloatToStr(r1) + ' kg/m^3  ');
Memo1.Lines.Add('r2='+ FloatToStr(r2) +' kg/m^3');
Memo1.Lines.Add('Vysoty urovnej rasplava i hladoagenta   h1=' + FloatToStr(r1) + ' mm');
Memo1.Lines.Add('h2=' + FloatToStr(r1) + ' mm');
writeln;
Memo1.Lines.Add('Adekvatnye trojki znachenij:'); writeln;
Memo1.Lines.Add('chastota f        amplituda a       diametr granuly d');
Memo1.Lines.Add('---------         -----------        -----------------');
  for i:=1 to n do
     begin
Memo1.Lines.Add('f=' + FloatToStr(f[i]) + ' Gc '+'          a=' + FloatToStr (a[i]) + ' mm');
Memo1.Lines.Add('d=' + FloatToStr(d[i]) + ' mm')
    end; {cikla for}
  readln;
  Memo1.Clear;
   end;
end;
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2016, 19:16
Ответы с готовыми решениями:

Нужно переписать с Паскаля на Делфи код, находящий максимальный элемент матрицы
var a:array of integer; i,j,amax,n,k,c:integer; begin WriteLn('Введите размеры...

нужно код паскаля переписать на делфи
program z4; var a:array of real; i,m1,p:integer; m:string; begin ...

Переделать программу из паскаля в делфи
{ генерация перестановок } uses crt; const n = 4; { количество элементов в перестановке} var...

Перевести программу из Паскаля в Делфи
Здравствуйте всем. Появилась необходимость перевести программу из Паскаля на Делфи, но что-то не...

10
4609 / 3831 / 980
Регистрация: 29.08.2013
Сообщений: 24,746
Записей в блоге: 3
14.11.2016, 19:32 2
Цитата Сообщение от АндрейЗ Посмотреть сообщение
указывает на эту строку
что значит указывает?
пишет ошибку?
какую?

не можете написать сразу?
0
Почетный модератор
64257 / 47557 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
14.11.2016, 19:34 3
А я как увижу в коде
Delphi
1
label ami,diam;
дальше уже не смотрю.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 9
14.11.2016, 19:41  [ТС] 4
Не знаю как точно сказать, там стоит зеленая стрелка, как таковой ошибки не указывается
0
4609 / 3831 / 980
Регистрация: 29.08.2013
Сообщений: 24,746
Записей в блоге: 3
14.11.2016, 19:44 5
Цитата Сообщение от АндрейЗ Посмотреть сообщение
как таковой ошибки не указывается
очень интересно
скрин хотя бы дайте

ЗЫ а заодно уберите readln и goto из кода
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 9
14.11.2016, 19:55  [ТС] 6
Выдает еще окошко... связано с делением на ноль вроде.
Миниатюры
Переписать программу с паскаля на Делфи  
0
Почетный модератор
64257 / 47557 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
14.11.2016, 20:06 7
Видимо f[i] не присвоено значение и по умолчанию оно=0.

Добавлено через 7 минут
Вот здесь
Delphi
1
2
3
for i := 1 to n do
  begin
   f[i]:=strtoint(Edit2.Text);
что находится в Edit2?
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 9
14.11.2016, 20:09  [ТС] 8
Предполагается то что будет забивать в поле эдит пользователь.
0
Почетный модератор
64257 / 47557 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
14.11.2016, 20:11 9
Т.е ничего, отсюда и 0.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 9
14.11.2016, 20:39  [ТС] 10
Скажите, а вот идет цикл
for i := 1 to n do
begin
далее считывание числа
f[i]:=strtoint(Edit2.Text);
а далее уже деление
t1:=1/f[i];
что получается число которое мы вводим в поле эдит присватается f[i] и затем делится, тогда мы уже делим на конкретное число. Или что то не верно?
0
517 / 410 / 269
Регистрация: 05.04.2013
Сообщений: 1,857
15.11.2016, 19:24 11
Цитата Сообщение от АндрейЗ Посмотреть сообщение
что получается число которое мы вводим в поле эдит присватается f[i] и затем делится, тогда мы уже делим на конкретное число. Или что то не верно?
верно, только если в Edit пусто, тогда f[i] =0, а ноль это КОНКРЕТНОЕ ЧИСЛО
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2016, 19:24
Помогаю со студенческими работами здесь

Перевести программу с Паскаля на Делфи
Добрый вечер! Помогите пожалуйста перевести программу с паскаля на делфи. Вот кот программы:...

Переделать программу с Паскаля в Делфи
Программа меняет элементы матрицы(a), которые больше 5 на a-2 и отрицательные на их модуль....

Переписать программу из паскаля в с++
Уважаемые форумчане!! Помогите пожалуйста переписать программу из паскаля в с++. uses crt; Var...

Переписать программу с Паскаля на С++
Есть программа, реализующая метод закрашивания Гуро, но написана она на Паскале+opengl. Мне же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru