uses GraphABC,Events,Utils; //необходимые библиотеки подключены
var pr,px,py,kx,ky,ku,pc,s: integer; //переменные: положение ракетки, координаты мяча, коэффициенты отражения, положение ракетки компьютера
procedure KeyDown(Key: integer); //процедура обработки нажтия клавиши
begin
case Key of
VK_Up: if pr>10 then pr:=pr-10; //если вверх, и если ракетка не достигла края экрана, сместить координаты ракетки на 10 вверх
VK_Down: if pr<490 then pr:=pr+10; //то же, только вниз
end;
end;
procedure Pm; //процедура определения координат мячика
begin
if px<10 then
begin
kx:=kx*(-1); //если достиг стенки левой - поменять коэффициент смещения по х на противоположный
s:=random(2);
if s=1 then ky:=ky*(-1);
end;
if (py<10) or (py>490) then ky:=ky*(-1); //если достиг стенки верхней или нижней - поменять коэффициент смещения на противоположный
if px>590 then //если достиг правой (игрока) стенки, проверяем
if (py>pr-20) and (py<pr+20) then kx:=kx*(-1) else //если координаты мяча совпадают с координатами ракетки, меняем коэффициент смешения по х на противоположный
begin //иначе
showmessage('Вы упустили мячик!'); //выводим сообщение
inc(ku); //увеличиваем счетчик упущенных мячей
px:=15; //возвращаем мяч в исходную позицию у противоположной стенки
py:=250;
end;
px:=px+kx; //смещаем координаты на коэффициенты смещения
py:=py+ky;
end;
begin
lockdrawing; //запрет прорисовки в окне (мигание убираем)
setwindowsize(600,500); //размер окна
kx:=5; ky:=1; px:=15; py:=250; pr:=250; //задаем координаты смещения и позицию мяча
repeat //цикл с постусловием
clearwindow; //очистить окно
setbrushcolor(clgreen); //цвет кисти зеленый
rectangle(5,5,595,495); //прямоугольник - поле
Pm; //процедура определения координат мяча
setbrushcolor(clwhite); //цвет кисти - белый
circle(px,py,10); //мяч
OnKeyDown:=KeyDown; //процедура нажатия клавиши
pc:=py; //ракетка противника следует за мячом неотступно...
setbrushcolor(clblack); //цвет кисти - черный
rectangle(592,pr-20,597,pr+20); //ракетки
rectangle(3,pc-20,8,pc+20);
sleep(25); //задержка
redraw; //перерисовка
until ku=5; //цикл повторяется до 5 пропущенных мячей
1.
program test;
var i,k2,k3,k4,k5:integer;
a:array [1..20] of integer;
begin
k2:=0;
k3:=0;
k4:=0;
k5:=0;
for i:=1 to 20 do
begin
a[i]:=random(4)+2;
if a[i]=2 then k2:=k2+1;
if a[i]=3 then k3:=k3+1;
if a[i]=4 then k4:=k4+1;
if a[i]=5 then k5:=k5+1;
write(a[i],' ')
end;
writeln;
writeln(k2);
writeln(k3);
writeln(k4);
write(k5)
end.
2.
var i,j,v:integer;
a:array [1..10] of integer;
begin
for i:=1 to 10 do
begin
a[i]:=random (100);
write(a[i]:3)
end;
for i:=1 to 9 do
for j:=1 to 9 do
if a[j]>a[j+1] then
begin
v:=a[j];
a[j]:=a[j+1];
a[j+1]:=v
end;
writeln;
for i:=1 to 10 do write(a[i]:3)
end.
3.
var a:array [1..10] of integer;
i,j,m,v:integer;
begin
randomize;
for i:=1 to 10 do
begin
a[i]:=random(100);
write(a[i]:3)
end;
writeln;
for i:=1 to 10 do
begin
m:=i;
for j:=i to 10 do
if a[m] mod 10 < a[j] mod 10 then m:=j;
v := a[i];
a[i]:= a[m];
a[m] := v;
write(a[i]:3)
end;
end.
Объяснение:
uses GraphABC,Events,Utils; //необходимые библиотеки подключены
var pr,px,py,kx,ky,ku,pc,s: integer; //переменные: положение ракетки, координаты мяча, коэффициенты отражения, положение ракетки компьютера
procedure KeyDown(Key: integer); //процедура обработки нажтия клавиши
begin
case Key of
VK_Up: if pr>10 then pr:=pr-10; //если вверх, и если ракетка не достигла края экрана, сместить координаты ракетки на 10 вверх
VK_Down: if pr<490 then pr:=pr+10; //то же, только вниз
end;
end;
procedure Pm; //процедура определения координат мячика
begin
if px<10 then
begin
kx:=kx*(-1); //если достиг стенки левой - поменять коэффициент смещения по х на противоположный
s:=random(2);
if s=1 then ky:=ky*(-1);
end;
if (py<10) or (py>490) then ky:=ky*(-1); //если достиг стенки верхней или нижней - поменять коэффициент смещения на противоположный
if px>590 then //если достиг правой (игрока) стенки, проверяем
if (py>pr-20) and (py<pr+20) then kx:=kx*(-1) else //если координаты мяча совпадают с координатами ракетки, меняем коэффициент смешения по х на противоположный
begin //иначе
showmessage('Вы упустили мячик!'); //выводим сообщение
inc(ku); //увеличиваем счетчик упущенных мячей
px:=15; //возвращаем мяч в исходную позицию у противоположной стенки
py:=250;
end;
px:=px+kx; //смещаем координаты на коэффициенты смещения
py:=py+ky;
end;
begin
lockdrawing; //запрет прорисовки в окне (мигание убираем)
setwindowsize(600,500); //размер окна
kx:=5; ky:=1; px:=15; py:=250; pr:=250; //задаем координаты смещения и позицию мяча
repeat //цикл с постусловием
clearwindow; //очистить окно
setbrushcolor(clgreen); //цвет кисти зеленый
rectangle(5,5,595,495); //прямоугольник - поле
Pm; //процедура определения координат мяча
setbrushcolor(clwhite); //цвет кисти - белый
circle(px,py,10); //мяч
OnKeyDown:=KeyDown; //процедура нажатия клавиши
pc:=py; //ракетка противника следует за мячом неотступно...
setbrushcolor(clblack); //цвет кисти - черный
rectangle(592,pr-20,597,pr+20); //ракетки
rectangle(3,pc-20,8,pc+20);
sleep(25); //задержка
redraw; //перерисовка
until ku=5; //цикл повторяется до 5 пропущенных мячей
end.