|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.10.2008, 15:41 | #1 |
студент
Пользователь
Регистрация: 02.03.2008
Сообщений: 81
|
Требуется помощь в написании калькулятора на Паскале((
Здравствуйте, мне нужно написать не сложный калькулятор на паскале... я не знаю как совместить графическую оболочку с вычислительной частью работы... Т.е. как мне сделать так чтобы пользователь нажимал на кнопочки мышью и на экране появлялось то что он нажимает и так далее...
После лета чет ничего уже не помню((( |
29.10.2008, 03:43 | #2 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 239
|
не знаю...... мне не нравятся паскалевские средства для работы с мышкой....... но это сугубо моё мнение......
вот пример работы с мышью без стандартных функций Код:
Надо бы избавиться от привычки ставить многоточие.....
|
06.11.2008, 15:28 | #3 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 22
|
калькулятор на Паскале зачем, не проще в Делфи
|
28.11.2008, 13:53 | #4 |
Новичок
Джуниор
Регистрация: 28.11.2008
Сообщений: 2
|
Я для себя делал...мож поможет
Калькулятор графический...
=================================== ====================== Program COOLCALCULATORPSW; Uses Graph,CRT; Var gr,gm,stepx,stepy,x,y,enter,chisl,x 2,y2,zn,zn2,zna,zna2:Integer; a,b,c,c2,rez:LONGiNT; is:Word; se:Pointer; Ch:Char; s:string; Label ends; {********************************** ****************************} PROCEDURE title; VAR x:Integer; tw,th,is:Word; sm,sa,sl,bu,buy,bur,se:Pointer; BEGIN SetColor(15); SetTextStyle(10,0,1); SetTextJustify(0,2); OutTextXY(0,0,'PS-World@inbox.ru'); tw:=TextWidth('PS-World@inbox.ru'); th:=TextHeight('PS-World@inbox.ru'); is:=ImageSize(0,0,tw,th); GetMem(se,is); GetImage(0,0,tw,th,se^); clearviewport; OutTextXY(0,0,'CALCULATOR v. 2.0'); tw:=TextWidth('CALCULATOR v. 2.0'); th:=TextHeight('CALCULATOR v. 2.0'); is:=ImageSize(0,0,tw,th); GetMem(sm,is); GetImage(0,0,tw,th,sm^); clearviewport; OutTextXY(0,0,'PS-World 2008'); tw:=TextWidth('PS-World 2008'); th:=TextHeight('PS-World 2008'); is:=ImageSize(0,0,tw,th); GetMem(sa,is); GetImage(0,0,tw,th,sa^); clearviewport; x:=(getMaxX div 2)-(tw div 2); Line((getMaxX div 2)-100,10,(getMaxX div 2)+100,10); Line((getMaxX div 2)-100,25,(getMaxX div 2)+100,25); Line((getMaxX div 2)-100,8,(getMaxX div 2)-100,12); Line((getMaxX div 2)-100,23,(getMaxX div 2)-100,27); Line((getMaxX div 2)+100,8,(getMaxX div 2)+100,12); Line((getMaxX div 2)+100,23,(getMaxX div 2)+100,27); is:=ImageSize((getMaxX div 2)-100,8,(getMaxX div 2)+100,27); GetMem(sl,is); GetImage((getMaxX div 2)-100,8,(getMaxX div 2)+100,27,sl^); clearviewport; SetColor(15); Line(0,1,0,28);Line(29,1,29,28);Lin e(1,0,28,0);Line(1,29,28,29); SetFillStyle(1,1);Bar(1,1,28,28); is:=ImageSize(0,0,29,29); GetMem(bu,is); GetImage(0,0,29,29,bu^); clearviewport; SetColor(15); Line(0,1,0,28);Line(29,1,29,28);Lin e(1,0,28,0);Line(1,29,28,29); SetFillStyle(1,2);Bar(1,1,28,28); is:=ImageSize(0,0,29,29); GetMem(buy,is); GetImage(0,0,29,29,buy^); clearviewport; SetColor(15); Line(0,1,0,28);Line(29,1,29,28);Lin e(1,0,28,0);Line(1,29,28,29); SetFillStyle(1,4);Bar(1,1,28,28); is:=ImageSize(0,0,29,29); GetMem(bur,is); GetImage(0,0,29,29,bur^); clearviewport; SetFillStyle(4,8); Bar(0,0,639,49); Bar(0,429,639,479); PutImage(5,8,sl^,2); PutImage(10,15,sm^,2); PutImage(10,GetMaxY-20,sa^,2); PutImage(5,GetMaxY-27,sl^,2); PutImage(GetMaxX-220,GetMaxY-27,sl^,2); PutImage(GetMaxX-160,GetMaxY-20,se^,2); SetColor(8); Bar(380,90,600,390); PutImage(390,100,sl^,2); Rectangle(380,90,600,390); SetColor(15); SetFillStyle(5,8); Bar(40,90,260,390); Rectangle(40,90,260,390); PutImage(50,100,sl^,2); PutImage(60,350,bur^,2); PutImage(110,350,bu^,2); PutImage(160,350,buy^,2); PutImage(210,350,buy^,2); PutImage(60,300,bu^,2); PutImage(110,300,bu^,2); PutImage(160,300,bu^,2); PutImage(210,300,buy^,2); PutImage(60,250,bu^,2); PutImage(110,250,bu^,2); PutImage(160,250,bu^,2); PutImage(210,250,buy^,2); PutImage(60,200,bu^,2); PutImage(110,200,bu^,2); PutImage(160,200,bu^,2); PutImage(210,200,buy^,2); SetTextStyle(0,0,2); OutTextXY(70,210,'1');OutTextXY(120 ,210,'2');OutTextXY(170,210,'3'); OutTextXY(70,260,'4');OutTextXY(120 ,260,'5');OutTextXY(170,260,'6'); OutTextXY(70,310,'7');OutTextXY(120 ,310,'8');OutTextXY(170,310,'9'); OutTextXY(120,360,'0'); SetColor(0); OutTextXY(170,360,'=');OutTextXY(22 0,360,'+'); OutTextXY(220,310,'-');OutTextXY(220,260,'x');OutTextXY (220,210,#246); SetTextStyle(0,0,1);OutTextXY(64,36 1,'ESC'); END; {********************************** ****************************} {********************************** ****************************} Procedure monitor(b:Longint); var s:string; begin Bar(51,116,249,103); Str(b,s); SetTextJustify(2,2); SetColor(15); OutTextXY(240,108,s); end; {********************************** ****************************} -это первая часть(всего более 7000 символов) Вообще-то рабочий, а если есть какие глюки-у нас информатика только с 10 класса (я в 11-м) |
28.11.2008, 13:54 | #5 |
Новичок
Джуниор
Регистрация: 28.11.2008
Сообщений: 2
|
вот вторая часть...
{********************************** ****************************} Procedure Help; begin SetColor(15); rectangle(380,90,600,390); OutTextXY(555,106,'HELP'); SetColor(14); OutTextXY(400,120,#24); OutTextXY(400,130,#25); OutTextXY(390,130,#27); OutTextXY(410,130,#26); OutTextXY(420,130,' - SELECT'); OutTextXY(390,150,'<ENTER> - CHANGE'); OutTextXY(390,170,'<ESC> - EXIT'); SetColor(10); OutTextXY(390,200,'PROGRAMMER:'); OutTextXY(390,240,'ORIGINAL CODE'); SetColor(15); OutTextXY(390,220,'Pechiorkin Sergey'); OutTextXY(390,260,'Pechiorkin Sergey'); OutTextXY(390,380,'Thank you, enjoy!'); end; {********************************** ****************************} {********************************** ****************************} Procedure endmenu; begin CloseGraph; Halt(1); end; {********************************** ****************************} Begin gr:=0; gm:=detect; InitGraph(gr,gm,'Graph.tpu'); stepx:=0; stepy:=150; x:=60+stepx; y:=200+stepy; SetFillStyle(1,14); Bar(0,0,29,29); is:=ImageSize(0,0,29,29); GetMem(se,is); GetImage(0,0,29,29,se^); ClearViewPort; Title; Help; PutImage(x,y,se^,1); While TRUE do Begin Ch:=ReadKey; Case Ch of #27:Begin CloseGraph; Halt(1); end; #75:stepx:=stepx-50; #72:stepy:=stepy-50; #80:stepy:=stepy+50; #77:stepx:=stepx+50; #13:enter:=1; end; if(stepx>150)then stepx:=0; if(stepx<0)then stepx:=150; if(stepy>150)then stepy:=0; if(stepy<0)then stepy:=150; x2:=stepx; y2:=stepy; If(enter=1)then begin if(x2=0)then begin case y2 of 0:chisl:=1; 50:chisl:=4; 100:chisl:=7; 150:begin endmenu; goto ends; end; end; a:=a*10+chisl; b:=a; monitor(b); x:=60+stepx; y:=200+stepy; PutImage(x,y,se^,1); end; if(x2=50)then begin case y2 of 0:chisl:=2; 50:chisl:=5; 100:chisl:=8; 150:chisl:=0; end; a:=a*10+chisl; b:=a; monitor(b); x:=60+stepx; y:=200+stepy; PutImage(x,y,se^,1); end; if(x2=100)then begin case y2 of 0:chisl:=3; 50:chisl:=6; 100:chisl:=9; end; a:=a*10+chisl; b:=a; monitor(b); x:=60+stepx; y:=200+stepy; PutImage(x,y,se^,1); end; if(x2=150)then begin case y2 of 0:zn:=1; 50:zn:=2; 100:zn:=3; 150:zn:=4; end; c:=b; a:=0; b:=a; x:=60+stepx; y:=200+stepy; PutImage(x,y,se^,1); end; if(x2=100)and(y2=150)then begin zn2:=5; c2:=(b div 10);end; {=============================} zna:=zn; zna2:=zn2; if(zna2=5)then begin case zna of 1:rez:=c div c2; 2:rez:=c*c2; 3:rez:=c-c2; 4:rez:=c+c2; end; b:=rez; monitor(b); a:=0; zn2:=0; zn:=0; enter:=0; end; {=============================} end; ends: x:=60+stepx; y:=200+stepy; PutImage(x,y,se^,1); enter:=0; End; End. =================================== ====================== |
28.11.2008, 14:30 | #6 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Это поразительно! Но всего лишь упражнение для ума.
Написали бы, например, "вычислилитель" транскрипции. Заодно бы и английский "подтянули"!.. Что же касается калькулятора, то можно добавить факториал, а также раскладыватель на множители: то есть вводишь control — вычисляется [kən’trəul] (ну не так коряво); вводишь 5! — вычисляется 120; вводишь 111 — вычисляется 3·37.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
29.12.2008, 18:46 | #7 |
студент
Пользователь
Регистрация: 02.03.2008
Сообщений: 81
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помощь в написании программы | prog1 | Фриланс | 5 | 02.06.2008 19:50 |
Нужна помощь в написании кода | Михаил Юрьевич | Общие вопросы Delphi | 2 | 27.12.2007 09:32 |
Нужна помощь в написании программы. | GhosT3Ds | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 23.12.2007 07:45 |
Требуется помощь в написании курсовика по БД | Balvenie | Фриланс | 7 | 23.05.2007 13:26 |