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

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

17.03.2016, 21:33. Показов 1301. Ответов 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,059
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,158
Записей в блоге: 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,158
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru