Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2016, 21:54   #1
Kaktus71
Новичок
Джуниор
 
Регистрация: 30.05.2016
Сообщений: 1
По умолчанию Точки пересечения графиков нулевой и третий отобразить мигающим цветом лимонным

Всем привет , нужна помощь в корректировке программы , Смысл такой нужно (Точки пересечения графиков нулевой и третий отобразить мигающим цветом лимонным) Программа прилагается =)
Код:
uses Graph, Strings; 
var 
pm: array[0..9] of byte; 
procedure Pix(xx,yy: integer;c:byte); 
var 
nb,np,mp:byte; 
begin; 
for np:=0 to 3 do 
begin 
nb:=7-np; 
mp:=1 shl np; 
if (c AND mp) = 0 then pm[nb]:=$00 
else pm[nb]:=$80; 
end; 
putimage(xx,yy,pm,orput); 
end; 
procedure lin(x1,y1,x2,y2, c:integer); 
var 
x,y,dx,dy:integer; 
k,b:real; 
begin 
dx:=x2-x1; 
dy:=y2-y1; 
if dx<>0 then k:=dy/dx 
else 
begin 
if dy>0 then 
for y:=y1 to y2 do 
Pix(x1,y,c) 
else 
for y:=y2 to y1 do 
Pix(x1,y,c); 
exit; 
end; 
b:=y1-k*x1; 
if dy=0 then 
begin 
if dx>0 then 
for x:=x1 to x2 do 
Pix(x,y1,c) 
else 
for x:=x2 to x1 do 
Pix(x,y1,c); 
exit; 
end; 
if abs(k)<=1 then 
begin 
if dx>0 then 
for x:=x1 to x2 do 
begin 
y:=round(k*x+b); 
Pix(x,y,c); 
end 
else 
for x:=x2 to x1 do 
begin 
y:=round(k*x+b); 
Pix(x,y,c); 
end; 
exit; 
end; 
if abs(k)>1 then 
begin 
if dy>0 then 
for y:=y1 to y2 do 
begin 
x:=round((y-b)/k); 
Pix(x,y,c); 
end 
else 
for y:=y2 to y1 do 
begin 
x:=round((y-b)/k); 
Pix(x,y,c); 
end; 
exit; 
end; 
end; 
var 
i,j, s, yap:integer; 
cc:byte; 
am, ya: real; 
grDriver: Integer; 
grMode: Integer; 
Pal: PaletteType; 
ss: string[1]; 
begin 
grDriver := EGA; 
grMode := EGAHI; 
InitGraph(grDriver, grMode,'d:\tp7\bgi'); 
for i:=0 to 9 do 
pm[i]:=0; 
for s:=0 to 1 do 
begin 
setactivepage(s); 
setvisualpage(s); 
for j:=0 to 3 do 
begin 
am:=170./(s+1)/(j+1); 
i:=0; 
while (i<639) do 
begin 
cc:=1 shl j; 
ya:=am*sin(2.*pi*i/(640.0/((j+1)*(s+1)))); 
lin(i-1,174-yap,i,174-round(ya),cc); 
lin(i-1,175-yap,i,175-round(ya),cc); 
lin(i-1,176-yap,i,176-round(ya),cc); 
i:=i+1; 
yap:=round(ya); 
end; 
SetTextStyle(0, HorizDir,10); 
Str(j, ss); 
Port[$3C5]:=cc; 
outtextxy(560,0,ss); 
Str(s, ss); 
Port[$3C5]:=cc; 
outtextxy(480,0,ss); 
Readln; 
end; 
end; 
getpalette(pal); 
for s:=0 to 1 do 
begin 
setvisualpage(s); 
for j:=0 to 3 do 
begin 
cc:=1 shl j; 
for i:=0 to 15 do 
if (cc AND i) <> 0 then pal.colors[i]:=63 
else pal.colors[i]:=0; 
setallpalette(pal); 
Readln; 
end; 
end; 
end.
Kaktus71 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение точки пересечения двух отрезков [Паскаль] bnoazx005 Помощь студентам 0 18.12.2012 21:39
Точка пересечения графиков Foxx Microsoft Office Excel 2 16.05.2012 22:19
Точки пересечения прямых Вернер Помощь студентам 0 11.05.2012 17:38
Найти точки пересечения граффиков. Para La Musica Microsoft Office Excel 3 03.01.2011 00:28