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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2011, 15:44   #1
P{a}nda
Новичок
Джуниор
 
Регистрация: 09.05.2011
Сообщений: 1
По умолчанию Подключение и работа с мышью.

Здравствуйте!

Необходимо создать массив из двузначных чисел,вывести его на экран, найти максимальное и минимальное число, сумму чисел массива.Но меню должно активироваться с помощью мыши.Т.е. при нажатии на надпись создание-создаётся массив, нажимаем на "сумма"-выдаётся сумма. У меня всё работает, но есть некоторая помарка в оформлении. Дело в том, что при нажатии на функцию она выводится несколько раз. Подскажите что сделать чтобы работал нормальный вывод.код прилагается.
Код:
uses crt,dos;
const n=10;
type massiv=array[1..n]of integer;
var mas:massiv;
i,min,max,sum:integer;
ch:char;
but,status,xm,ym:byte;
reg,cursor:registers;
x,y,gd,gm:integer;
procedure initmouse(var buttom:byte);
begin
reg.ax:=0;
intr($33,reg);
if reg.ax=0 then begin
                 writeln('mouse NO');
                 halt;
                 end
                 else begin
                 gotoxy(70,1);
                 writeln('mouse YES');
                 buttom:=reg.bx;
                 end;
end;
procedure showmouse;
begin
reg.ax:=1;
intr($33,reg);
end;
procedure off;
var reg:registers;
begin
reg.ax:=$0100;
reg.cx:=$2607;
intr($10,reg);
end;
procedure statusmouse(var pstatus,pxm,pym:byte);
begin
reg.ax:=3;
intr($33,reg);
pxm:=reg.cx div 8;
pym:=reg.dx div 8;
pstatus:=reg.bx;
end;

begin
clrscr;
initmouse(but);
showmouse;
randomize;
off;
writeln('SOZDAT MASSIV');
writeln('VIVESTI NA DISPLAY');
writeln('SUMMA ELEMENTOV');
writeln('MIN.ZNACHENIE');
writeln('MAX.ZNACHENIE');
writeln('VIXOD');
repeat
if (status=1)and(xm=0)and(ym=1)then
begin
for i:=1 to n do mas[i]:=random(90)+10;
writeln('gotovo.');
end;
if(status=1)and(xm=0)and(ym=2) then
begin
for i:=1 to n do write(mas[i],' ');
writeln;
end;
if(status=1)and(xm=0)and(ym=3) then
begin
for i:=1 to n do sum:=sum+mas[i];
writeln('summa chisel: ',sum);
sum:=0;
end;
if(status=1)and(xm=0)and(ym=4) then
begin
min:=mas[1];
for i:=1 to n do begin
                 if mas[i]<min then min:=mas[i];
                 end;
writeln('min znachenie: ',min);
end;
if(status=1)and(xm=0)and(ym=5) then
begin
max:=mas[1];
for i:=1 to n do if mas[i]>max then max:=mas[i];
writeln('max znachenie: ',max);
end;
statusmouse(status,xm,ym);
until(status=1)and(xm=0)and(ym=6);
end.
P{a}nda вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
РАбота с Мышью serg90 Работа с сетью в Delphi 5 19.02.2011 14:25
[C++] Работа с мышью koshkarjov Помощь студентам 0 14.10.2010 22:36
работа с мышью! _Timon Помощь студентам 1 20.01.2009 23:29