Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 5

Перевод кода из Delphi в Pascal

17.03.2016, 21:33. Показов 1328. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно перевести код в pascal :

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
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
n = 5; {kolichestvo stantsii}
var
Form1: TForm1;
rg:real; {opytnaya nagruzka}
s:real; {opytnaya proizvoditel'nost'}
p:real; {veroyatnost' prohozhdeniya kadra}
rp:real; {opytnaya veroyatnost' prohozhdeniya kadra}
i:integer; {schetchik kollizii(neproshedshih kadrov)}
j:integer; {schetchik uspeshno proshedshih kadrov}
k:integer; {peremennaya "proverki prohoda kadrov" }
l:integer; {kolichestvo kadrov v nabore}
g:real; {normirovannaya propuschennaya nagruzka}
r:integer; {dlitel'nost' kadra}
bool:boolean; {flag sostoyaniya}
implementation
{$R *.dfm}
procedure aloxa; {protsedura ALOHA}
begin
i:=0;
j:=0;
for k:= 1 to l do {nachalo proverki prohoda kadrov}
begin
bool:=false;{esli false to paket ne proshel}
while bool=false do {poka bool=false do...}
begin
rp:=(random(100)+1)/100;{opytnaya veroyatnost' prohozhdeniya kadra - sluchainym obrazom generiruetsya}
if (rp<=p) then {esli opytnaya veroyatnost' prohozhdeniya kadra <= veroyatnost' prohozhdeniya kadra}
begin
bool:=true;{...bool:=true;}
inc(j);{schitaet kolichestvo uspeshno proshedshih paketov}
end
else inc(i);{kolichestvo neproshedshih paketov}
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;{generator sluchainyh chisl}
if edit1.Text <> '' then
g:=StrToFloat(Edit1.Text);
if edit2.Text <> '' then
r:=StrToInt(Edit2.Text);
if edit3.Text <> '' then
l:=StrToInt(Edit3.Text);
p:=exp(-2*G);{veroyatnost' prohozhdeniya kadra}
aloxa;
rg:=((j+i)*n*1/r)/l; {opytnoe znachenie normirovannoi propuschennoi nagruzki}
s:=rg*exp(-2*rg); {opytnoe znachenie proizvoditel'nosti}
label5.Caption:='Teoreticheskoe znachenie proizvoditelnosti '+FloattoStr(g*p);
label6.Caption:='Opytnoe znachenie proizvoditelnosti '+FloatToStr(s);
label7.Caption:='Kolichestvo kollizii na '+floattostr(l)+' paketov '+floattostr(i);
label8.Caption:='Obschee vremya peredachi kadrov '+floattostr((j+i)*r);
label9.Caption:='Vremya peredachi odnogo kadra '+floattostr((j+i)*r/l);
p:=exp(-G);
aloxa;
rg:=((j+i)*n*1/r)/l; {opytnoe znachenie normirovannoi propuschennoi nagruzki}
s:=rg*exp(-rg); {opytnoe znachenie proizvoditel'nosti}
label11.Caption:='Teoreticheskoe znachenie proizvoditelnosti '+FloattoStr(g*p);
label12.Caption:='Opytnoe znachenie proizvoditelnosti '+FloatToStr(s);
label13.Caption:='Kolichestvo kollizii na '+floattostr(l)+' paketov '+floattostr(i);
label14.Caption:='Obschee vremya peredachi kadrov '+floattostr((j+i)*r);
label15.Caption:='Vremya peredachi odnogo kadra '+floattostr((j+i)*r/l);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
label5.Caption:='';
label6.Caption:='';
label7.Caption:='';
label8.Caption:='';
label9.Caption:='';
label11.Caption:='';
label12.Caption:='';
label13.Caption:='';
label14.Caption:='';
label15.Caption:='';
end;
end.
Подскажите, пожалуйста, как
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2016, 21:33
Ответы с готовыми решениями:

Перевод кода из С++ в Pascal
Помогите пожалуйста,не могу разобраться. #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { ...

Перевод кода из VBA в Pascal
Добрый день, помогите перевести код с VBA на Pascal Очень нужно)) Sub P32() Const Max = 10 Dim delta(Max) As Integer,...

Перевод кода с Pascal на С++ или Си (рекурсия)
Здравствуйте, помогите, пожалуйста, перевести код с Pascal на С++, либо на Си. Задание состояло в следующем: «Описать рекурсивную...

5
 Аватар для CheshireesCat
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
18.03.2016, 03:49
может хотя бы задание напишешь?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
18.03.2016, 07:10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
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
const
  n = 5; {kolichestvo stantsii}
var
  rg:real; {opytnaya nagruzka}
  s:real; {opytnaya proizvoditel'nost'}
  p:real; {veroyatnost' prohozhdeniya kadra}
  rp:real; {opytnaya veroyatnost' prohozhdeniya kadra}
  i:integer; {schetchik kollizii(neproshedshih kadrov)}
  j:integer; {schetchik uspeshno proshedshih kadrov}
  k:integer; {peremennaya "proverki prohoda kadrov" }
  l:integer; {kolichestvo kadrov v nabore}
  g:real; {normirovannaya propuschennaya nagruzka}
  r:integer; {dlitel'nost' kadra}
  bool:boolean; {flag sostoyaniya}
  
procedure aloxa; {protsedura ALOHA}
begin
  i:=0;
  j:=0;
  for k:= 1 to l do {nachalo proverki prohoda kadrov}
    begin
      bool:=false;{esli false to paket ne proshel}
      while bool=false do {poka bool=false do...}
        begin
          rp:=(random(100)+1)/100;{opytnaya veroyatnost' prohozhdeniya kadra - sluchainym obrazom generiruetsya}
          if (rp<=p) then {esli opytnaya veroyatnost' prohozhdeniya kadra <= veroyatnost' prohozhdeniya kadra}
            begin
              bool:=true;{...bool:=true;}
              inc(j);{schitaet kolichestvo uspeshno proshedshih paketov}
            end
          else inc(i);{kolichestvo neproshedshih paketov}
        end;
    end;
end;
  
begin
  randomize;
  Write('g = '); ReadLn(g);
  Write('r = '); ReadLn(r);
  Write('l = '); ReadLn(l);
  p := exp(-2*G);
  aloxa;
  rg:=((j+i)*n*1/r)/l; {opytnoe znachenie normirovannoi propuschennoi nagruzki}
  s:=rg*exp(-2*rg); {opytnoe znachenie proizvoditel'nosti}
  WriteLn('Teoreticheskoe znachenie proizvoditelnosti ',g*p);
  WriteLn('Opytnoe znachenie proizvoditelnosti ',s);
  WriteLn('Kolichestvo kollizii na ',l,' paketov ',i);
  WriteLn('Obschee vremya peredachi kadrov ',(j+i)*r);
  WriteLn('Vremya peredachi odnogo kadra ',(j+i)*r/l);
  p:=exp(-G);
  aloxa;
  rg:=((j+i)*n*1/r)/l; {opytnoe znachenie normirovannoi propuschennoi nagruzki}
  s:=rg*exp(-rg); {opytnoe znachenie proizvoditel'nosti}
  WriteLn('Teoreticheskoe znachenie proizvoditelnosti ',g*p);
  WriteLn('Opytnoe znachenie proizvoditelnosti ',s);
  WriteLn('Kolichestvo kollizii na ',l,' paketov ',i);
  WriteLn('Obschee vremya peredachi kadrov ',(j+i)*r);
  WriteLn('Vremya peredachi odnogo kadra ',(j+i)*r/l);
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
18.03.2016, 09:25
JuriiMW,
строки 41-58 легко в цикл сворачиваются, или ошибаюсь?
0
 Аватар для CheshireesCat
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
18.03.2016, 09:31
bormant, да, примерно такой
Pascal
1
for i:=n downto 1 do
и тогда строки 41 и 44 надо немного изменить
Pascal
1
2
3
  p := exp(-i*G);
  //....
  s:=rg*exp(-i*rg);
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
18.03.2016, 12:55
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

CheshireesCat, JuriiMW,
чуток отрефакторил:
Pascal
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
const n=5; {количество станций}
procedure aloha(g: Real; r, l: Integer); {процедура ALOHA}
var i, j, k: Integer; rg, p: Real;
begin
  for m:=2 downto 1 do begin
    i:=0; {счетчик коллизий} p:=Exp(-m*g); {вероятность прохождения кадра}
    for k:=1 to l do
      repeat
        if Random>p then Inc(i) else Break;
      until False;
    rg:=(l+i)*n/r/l; {опытное значение нормированной пропущенной нагрузки}
    WriteLn('Теоретическое значение производительности: ',g*p);
    WriteLn('Опытное значение производительности: ',rg*exp(-m*rg));
    WriteLn('Количество коллизий на ',l,' пакетов: ',i);
    WriteLn('Общее время передачи кадров: ',(l+i)*r);
    WriteLn('Время передачи одного кадра: ',(l+i)*r/l);  
  end;
end;
var
  g: Real;    {нормированная пропущенная нагрузка}
  r: Integer; {длительность кадра}
  l: Integer; {количество кадров в наборе}
begin
  Randomize; Write('g r l: '); ReadLn(g,r,l); aloha(g,r,l);
end.
Добавлено через 6 минут
или с чуть меньшей связностью:
Pascal
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
const n=5; {количество станций}
procedure aloha(g: Real; r, l: Integer; m: Integer); {процедура ALOHA}
var i, k: Integer; rg, p: Real;
begin
  i:=0; {счетчик коллизий}  p:=Exp(-m*g); {вероятность прохождения кадра}
  for k:=1 to l do
    repeat
      if Random>p then Inc(i) else Break;
    until False;
  rg:=(l+i)*n/r/l; {опытное значение нормированной пропущенной нагрузки}
  WriteLn('Теоретическое значение производительности: ',g*p);
  WriteLn('Опытное значение производительности: ',rg*exp(-m*rg));
  WriteLn('Количество коллизий на ',l,' пакетов: ',i);
  WriteLn('Общее время передачи кадров: ',(l+i)*r);
  WriteLn('Время передачи одного кадра: ',(l+i)*r/l);  
end;
var
  g: Real;    {нормированная пропущенная нагрузка}
  r: Integer; {длительность кадра}
  l: Integer; {количество кадров в наборе}
  i: Integer;
begin
  Randomize;
  Write('g r l: '); ReadLn(g,r,l);
  for i:=2 downto 1 do aloha(g,r,l,i);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.03.2016, 12:55
Помогаю со студенческими работами здесь

Перевод кода из С++ в Pascal
Помогите пожалуйста с переводом. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;conio.h&gt; using...

Перевод кода из C++ в Pascal
Перевидите пожалуйста этот код в Pascal ABC #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int main(int argc,...

Перевод кода из Delphi в PascalABC.net
Кто может перевести этот код? Заранее спасибо procedure TForm10.Button7Click(Sender: TObject); const many: array of Integer =...

Перевод программы с Turbo Pascal на Pascal ABC.NET
написала программу в паскаль турбо на рабочем компьютере. перенесла в паскаль авсNet так как дома стоит эта версия /перестала работать что...

Перевод программы с turbo pascal на Pascal ABC
Есть программа, которая строит треугольник Серпинского методом хаоса, но она конфликтует с графикой ABC. Важен именно этот метод. ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru