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

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

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

 
 Ответить  Открыть новую тему 
> Циклы в Graph
сообщение
Сообщение #1


Гость






Всем привет. Может кто поможет сделать, чтобы эти два цикла выполнялись одновременно.

Код
Program Anim;
Uses Crt,Graph;
Var I,J,Gd,Gm:Integer;
Begin
Clrscr;
Gd:=Detect;
Gm:=2;
InitGraph (Gd,Gm,'C:\BP\BGI');
SetBKColor (7);
ClearDevice;

SetColor (6);
For I:=200 To 300 Do Begin
Line (250,I,290,J);
Line (290,J,305,J);
Line (305,J,250,I);
ClearViewPort;
Delay(4000);
End;

For J:=110 To 210 Do Begin
Line (250,I,290,J);
Line (290,J,305,J);
Line (305,J,250,I);
ClearViewPort;
Delay(4000);
End;

CloseGraph;
End.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Player, смысл программы в чем, скажи... А то не совсем понятно, что это такое мигает ... unsure.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской

Репутация: -  0  +


Я уже давно мучаю, в прчмом смысле этот вопрос.
Ответ получил только что нужно переходить на 32 битный компилятор, так как в Паскале нету поддержки одновременных процессов, даже емуляцию я и то не понимаю как сделать! nea.gif norespect.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Player
Код
For I:=200 To 300 Do Begin
Line (250,I,290,J);
Line (290,J,305,J);
Line (305,J,250,I);
ClearViewPort;
Delay(4000);
End;

For J:=110 To 210 Do Begin
Line (250,I,290,J);
Line (290,J,305,J);
Line (305,J,250,I);
ClearViewPort;
Delay(4000);
End;

Тут что-то странное... Переменная J не инициализирована до первого цикла, а переменная I во втором цикле осталась той же, на какой закончился 1-й цикл. Ну и бред... mega_chok.gif

Для начала надо знать что ты хочешь отрисовать.
Делать вывод одновременно можно только объединив отрисовку линий в одном цикле.

Alex7, не неси чушь. Нигде нет параллельного выполнения кода программ и даже 32-битный компилятор этого не делает.
То, что для нас считается одновременно - для компьютера оно последовательно, просто быстро выполняется и разницы ен видно.


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Alex7, "не путай теплое с мягким..." (С)

Практически одновременная отрисовка фигур еще не значит "многозадачность"... Вот тебе элементарный пример... Распакуй и запусти. Исходники не дам, только TPU файлы...
Прикрепленный файл  radars.rar ( 29.89 килобайт ) Кол-во скачиваний: 480


P.S. Настоящая многозадачность реализуема только на многопроцессорных системах...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской

Репутация: -  0  +


Romtek,volvo
Помойму все об это давно знают, поэтому я так и выражаюсь- для простоты. Имею ввиду, что визуально процессы идут паралельно.
Но всетаки можно же организовать такую работу? ведь так?
Хоть кто то знает как правильно это сделать? wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Alex7, ты архив смотрел?

Я тебя иногда не понимаю... Тебе вроде надо, но когда тебе напишешь - ты не обращаешь внимания... dry.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской

Репутация: -  0  +


Эм,......
М-да, я себя втаких случаях тоже иногда не понимаю wacko.gif
Я в упор не заметил, что ты это мне прикрепил данные! mega_chok.gif
однака... nea.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской

Репутация: -  0  +


Ну, посмотрел прогу.
Круто, красиво, наглядно.
НО зачем мне такой сложный пример, если мне нужно всего лишь ответ: КАК сделть процессы одновремеено?
Хотел, чтобы мне на примере моей проги показали, как это нужно сделать.
Если таки кто-то сможет(90% моего обращения это, конечно к Volvo=) ) То привожу свою прогу, в которой я хотел сделать "одновременное" выполнение подсчета nsk и выполнение процедуры point
Program NaimensheSpilneKratne(lab5);
Uses CRT;
Var a,b,c: integer;
dob,max: integer;
nsk: longint;
procedure SetCursorSize(cStart, cEnd: byte); assembler;
asm
mov ah, 1
mov ch, cStart
mov cl, cEnd
int 10h
end;
procedure SetNormalCursor;
var start_end: word;
begin
if LastMode > Font8x8 then start_end := $0507
else
if LastMode = Mono then start_end := $0b0c
else start_end := $0607;
SetCursorSize(hi(start_end), lo(start_end));
end;
procedure SetNoCursor;
begin
SetCursorSize(32, 0);
end;
Procedure point(p:byte);
Var i,j: byte;
Begin
While p=1 do
begin
For i:=1 to 3 do
begin
write('.'); for j:=1 to 4 do delay(9999);
end;
gotoxy(wherex-3,wherey); clreol; for j:=1 to 4 do delay(9999);
end;
End;
Begin
clrscr; textbackground(0);
textcolor(1); gotoxy(26,2); writeln('.::Џа®Ја ¬ ®ЎзЁб«Ґ­­п Ќ‘Љ::.');
Textcolor(yellow); For b:=1 to 4 do delay(9999);
Writeln('‚ўҐ¤iвм 3 жi«Ёе зЁб« ');
gotoxy(65,1);textcolor(1); Write('Ctrl+Pause=>exit'); gotoxy(1,4);
textcolor(15); readln(a,b,c);
{ЏҐаҐўiаЄ ­ ўҐ«ҐзЁ­г\begin}
if (a<2) or (a>9999) or (b<2) or (b>9999) or (c<2) or (c>9999) then
begin
repeat
textcolor(yellow);
writeln('ЌҐўiа­Ґ зЁб«®! ’ॡ г ¤i Ї §®­i- 2..9999 !');
textcolor(12{28});
gotoxy(30,wherey); write('-=‚ўҐ¤iвм § ­®ў®=-'); textcolor(15);
repeat until keypressed;
if keypressed then
begin
repeat
delline; gotoxy(1,wherey-1);
until wherey=4;
delline; readln(a,b,c);
end;
until (a>1) and (a<9999) and (b>1) and (b<9999) and (c>1) and (c<9999);
end;
{ЏҐаҐўiаЄ ­ ўҐ«ҐзЁ­г\end}
{ЏаЁбў®Ґ­­п §­ 祭м\begin}
if (a>=b) and (a>=c) then max:=a else
if (b>=a) and (b>=c) then max:=b else
max:=c;
{ЏаЁбў®Ґ­­п §­ 祭м\end}
textcolor(14); gotoxy(26,wherey); Write('‰¤Ґ ®ЎзЁб«Ґ­­п. ‡ 祪 ©вҐ.');
SetNoCursor;
point(0);
nsk:=0;
Repeat nsk:=nsk+max until (nsk mod a=0) and (nsk mod b=0) and (nsk mod c=0);
delline; gotoxy(1,wherey);
SetNormalCursor;
dob:=a*b*c;
sound(7000); delay(9999);delay(9999); nosound;
textcolor(green); writeln('max: ',max,#13,#10,'Ќ‘Љ жЁе зЁбҐ«= ',nsk);
if nsk<>dob then
writeln('i ­Ґ ¤®аiў­оу хе ¤®ЎгвЄг')
else
writeln('i ¤®аiў­оу хе ¤®ЎгвЄг');
For b:=1 to 9 do delay(9999);
gotoxy(58,1); clreol;
gotoxy(30,25); textcolor(8{24}); Write('Press any key to exit');
{Єгаб®а- ­i¬ жiп\begin}
repeat
For b:=50 downto 30 do
begin
For a:=1 to 3 do delay(9999); gotoxy(b,25); if keypressed then exit;
end;
For b:=31 to 50 do
begin
For a:=1 to 3 do delay(9999); gotoxy(b,25); if keypressed then exit;
end;
until keypressed;
{Єгаб®а- ­i¬ жiп\end}
End.
{Џ ¬'пвЄ }
{Ќ i¬Ґ­миҐ бЇi«м­Ґ Єа в­Ґ - ­ i¬Ґ­миҐ ¤®¤ в­у, пЄҐ ¤i«Ёвмбп ­ Є®¦­Ґ § жЁе зЁбҐ«.}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской

Репутация: -  0  +


Плиз!
Объясните! ↑
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 9.09.2025 5:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name