Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
17 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 49
1

Как в приведенном коде применить алгоритм Петерсона?

21.03.2013, 21:01. Показов 626. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
подскажите,пожалуйста, как в данном коде применить алгоритм Петерсона
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
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
unit MainUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
const
  MAX_THREADS=2;
 
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
  pnode = ^node;
  node = record
    value: integer;
    next: pnode;
  end;
 
  ThreadArray = array [1..MAX_THREADS] of THandle;
 
 
 
var
  Form1: TForm1;
  p, pStart, pEnd: pnode;
  th1, th2: THandle;
  thId1, thId2: Cardinal;
  ThArray: ThreadArray;
  time: word;
 
 
implementation
 
{$R *.dfm}
 
procedure AddNode(value: integer);
begin
  new(p);
  p.value:=value;
  if pStart=nil then
  begin
    p.next:=nil;
    pStart:=p;
    pEnd:=p;
  end
  else
  begin
    p.next:=nil;
    pEnd.next:=p;
    //sleep(time);
    pEnd:=p;
    //sleep(time);
  end;
end;
 
 
 
procedure PrintList;
begin
  p:=pStart;
  while p<>nil do
  begin
    Form1.Memo1.Lines.Add(IntToStr(p.value));
    p:=p.next;
  end;
 
end;
 
procedure proc1;
var
  i: integer;
begin
  for i:=1 to 50 do
    AddNode(2*i);
end;
 
procedure proc2;
var
  i: integer;
begin
  for i:=1 to 50 do
    AddNode(2*i+1);
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Memo1.Clear;
  pStart:=nil;
  pEnd:=nil;
  time:=StrToInt(Edit1.Text);
  th1:=CreateThread(nil,0,@proc1,nil,CREATE_SUSPENDED,thId1);
  th2:=CreateThread(nil,0,@proc2,nil,CREATE_SUSPENDED,thId2);
  ThArray[1]:=th1;
  ThArray[2]:=th2;
 
  ResumeThread(th1);
  ResumeThread(th2);
 
  WaitForMultipleObjects(MAX_THREADS, @ThArray, true, Infinite);
  PrintList;
end;
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2013, 21:01
Ответы с готовыми решениями:

Random: как его использовать и применить в приведенном коде
Приветик знатокам. Возник вопрос. Как работает метод рандом. Дело в том, что я записала как поняла...

Применить BigInteger вместо Int в приведенном коде
Как применить BigInteger в данном коде, простая замена Int на BigInteger ругается на создания...

Как переделать данную задачу с симафорами на алгоритм Петерсона?
Подскажите пожалуйсто а то уже всю голову сломал. Как переделать данную задачу с симафорами на...

Как отобразить время в приведенном коде
В этом цикле надо каким-то макаром применить вид времени, у меня получилось, но он тогда не хочет...

0
21.03.2013, 21:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2013, 21:01
Помогаю со студенческими работами здесь

Как в приведенном коде работает malloc?
#include &lt;stdio.h&gt; #include &lt;memory.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include...

Как устроена сортировка в приведенном коде
Язык СИ Ребята, не знаю уже, что делать. Скоро сдавать программку, а я до сих пор не могу понять...

Как отловить исключение в приведенном коде
Скажите пожалуйста как сделать в этом коде исключение? Например при вводе текста - пользователь...

Как исправить ошибки в приведённом коде?
Здравствуйте! Помогите пожалуйста исправить ошибки в программе. Program.cs: using System; using...

Как работает делегат в приведенном коде
Добрый день, объясните пожалуйста как здесь работает делегат и зачем он вообще здесь нужен? ...

Как организовать задержку в приведенном коде
Подскажите пожалуйста как организовать задержку в таком коде: CSEG segment org 100h Begin: ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru