Помощь - Поиск - Пользователи - Календарь
Полная версия: меню
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
nastena
решила создать меню с графикой, чтобы нажав на цифру, к примеру: 1. Снежинка, появлялась снежинка, вот только я запуталась, где писать процедуру, чтобы она появллась только после нажатия цифры.....а по моей программе, на экране появляется сразу картинка((((

program grafica;
uses crt, graph;
const
k = 150; {dlina lucha (iznachal'nogo)}
n = 8; {kolichestvo luchei}
g = 4; {glubina rekursii}
var
gd, gm: integer;
label menu;

procedure Snezhinka_v_zh (x, y: word; r, c: byte);
var alpha: real;
i: byte;
xd, yd: integer;
begin
if c < 1 then exit;
for i := 1 to n do
begin
alpha := 2 * Pi * i / n;
xd := round(x + r * cos(alpha));
yd := round(y + r * sin(alpha));
moveto(x, y);
lineto(xd, yd);
Snezhinka_v_zh(xd, yd, r div 4, c - 1);
end;
end;

begin
initgraph(gd, gm, 'C:\tp7\bgi');
setcolor(11);
snezhinka_v_zh(320,240, k,g);
var
m:integer;
menu:
clrscr;
outtextxy(250,10,'Grafica');
outtextxy(180,30, '1. Risovanie snejinki');
outtextxy(180,50, '2. Risovanie okrujnostei');
outtextxy(180,70, '3. Risovanie smaila');
outtextxy(180,90, '4. Risovanie Vody');
outtextxy(180,110, '5. Vixod');
outtextxy(180,130, 'Vvedite nomer pynkta i najmite <Enter>: ' );
readln(m);



case m of
1:Snezhinka_v_zh;
2:{Okrujnost;}
3:{Elips; }
4:{kvadrat ; }
5:{halt ; }
{end;}
outtext('Dlya vixoda v menu najmite <Enter>');
readln;
goto menu;
readkey;
closegraph;

end.
Ozzя
Цитата
на экране появляется сразу картинка((((

Что-то мало верится мне. Чуется, что и этап компиляции не должно пройти? ;)

procedure Snezhinka_v_zh (x, y: word; r, c: byte);

Описание процедуры.
Ее вызов -
case m of
1:Snezhinka_v_zh;
nastena
хм...действительно....странео...а, я просто не знала куда вставить инициал графики, вот и впихнула ее в само меню
Ozzя
begin
initgraph(gd, gm, 'C:\tp7\bgi');
setcolor(11);
snezhinka_v_zh(320,240, k,g);
...
var {????}
m:integer;


Цитата
компиляция проходит

Не смешите мои тапочки norespect.gif
Описание переменных в теле программы?

Я умываю руки (С)
nastena
действительно не проходит....прсто яне знала куда вставить инициал графики.....
а вот как было
program grafica;
uses crt, graph;
const
k = 150; {dlina lucha (iznachal'nogo)}
n = 8; {kolichestvo luchei}
g = 4; {glubina rekursii}
var
gd, gm: integer;
label menu;

procedure Snezhinka_v_zh (x, y: word; r, c: byte);
var alpha: real;
i: byte;
xd, yd: integer;
begin
if c < 1 then exit;
for i := 1 to n do
begin
alpha := 2 * Pi * i / n;
xd := round(x + r * cos(alpha));
yd := round(y + r * sin(alpha));
moveto(x, y);
lineto(xd, yd);
Snezhinka_v_zh(xd, yd, r div 4, c - 1);
end;
end;

begin
initgraph(gd, gm, 'C:\tp7\bgi');
setcolor(11);
snezhinka_v_zh(320,240, k,g);

readkey;
closegraph;





begin
var
m:integer;
menu:
clrscr;
gotoxy(25,1);
writeln('Grafica');
gotoxy(15,3);
write('1. Risovanie snejinki');
gotoxy(15,5);
write('2. Risovanie okrujnostei');
gotoxy(15,7);
write('3. Risovanie smaila');
gotoxy(15,9);
write('4. Risovanie Vody');
gotoxy(15,11);
write('5.‚л室');
gotoxy(15,13);
write('Vvedite nomer py‚ўҐ¤ЁвҐ ­®¬Ґа Їг­Єв :- ' );
readln(m);



case m of
1:Snezhinka_v_zh;
2:{Okru{®Єаг¦};}
3:{Elips; }
4:{kvadrat ; }
5:{halt {ўл室}; }
{end;}
write('Dlya vixoda v menu najmite <Enter>');
readln;
goto menu;

end.


Добавлено через 12 мин.
Цитата(Ozzя @ 10.12.2009 17:37) *

begin
initgraph(gd, gm, 'C:\tp7\bgi');
setcolor(11);
snezhinka_v_zh(320,240, k,g);
...
var {????}
m:integer;

Не смешите мои тапочки norespect.gif
Описание переменных в теле программы?

Я умываю руки (С)



это описание переменной меню
nastena
и что, никто не поможет? blink.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.