IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Простые числа - многопоточная реализация, Не могу понять что не так...
-Yupi-
сообщение 26.06.2007 22:42
Сообщение #1


Гость






Есть два процесса - один производит простые числа и заносит в буфер, другой выводит их на экран. Вроде бы все правильно, посмотрите пожалуйста почему все зависает.. буду очень благодарна.

q:=3, w:=1;

procedure in_buf;
var j : word;
begin
  if free>0 then
    begin
    For j:=2 to q-1 do
      If (q mod j) = 0 then
      begin
	inc (q);
      end;
      inc (w);
    for j:=w downto 2 do Buffer_Sqrt[j]:=Buffer_Sqrt[j-1];
    Buffer_Sqrt[1]:=w;
    inc(w);
    end;
end;
procedure out_buf;
begin
  if ((Free<max) and (free<>max)) then
    Begin
      if buf_x>60 then begin buf_x:=45;inc(buf_y); end;
      if buf_y=21 then buf_y:=15;
      i:=max-Free;
      GotoXY(buf_x,buf_y);
      Write(Buffer_Sqrt[i]:4);
      Free:=Free+1;
      buf_x:=buf_x+4;
      Delay(10);
    End;
end;


Может проблема более глобальная? Если так то покажу всю прогу..
Всем заранее спасибо.

 ! 
-Yupi-, заголовок темы должен быть информативным (правила, п.1)



Сообщение отредактировано: Michael_Rybak - 26.06.2007 23:39
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 8.08.2025 9:37
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"