Вот я выкладываю файл (модуль) меню, но он сделан без модуля graph. А надо с этим модулем, но в graph я плохо разбираюсь. Посмотрите, кто-нибудь мой файл и если несложно, сможете сделать окно, в котором были бы строчки, как у меня в модуле. И чтобы окно было по типу Norton Commander'а, но не на весь экран! Заранее спасибо!
volvo
20.04.2005 21:35
Georgich, Ну вот я выдрал из своей старой программы меню для графического режима, посмотри, может пойдет... Единственное, что тебе надо будет сделать - это поменять строки в массиве mainMenu и подставить нужные вызовы процедур в
Case menuScreen Of ... { здесь } End;
Но учти, что это графический режим, и если сама процедура работает в текстовом - тебе надо будет вызывать процедуры вот так:
Case menuScreen Of optOne: begin RestoreCrtMode; { переходим в текстовый режим } { здесь - запускаешь свою процедуру } SetGraphMode(GetGraphMode); { назад в графический режим } end; ... End { case }
Если что - спрашивай ;)
Файл EGAVGA.OBJ (он в архиве) должен быть в той же директории, что и программа...
Georgich
20.04.2005 21:50
2 volvo Блин, чего-то сложновато...А для чего этот EGAVGA.OBJ нужен? Нет, все-таки попроще будет через CRT, хотя преподы хотят, чтобы в работе окошки присутсвовали и все так красиво было! Они сами этого нифига не объясняют,а мне вас тут надо мучать на форуме. Еще вопрос, а окошко, которое у меня начерчено можно заоить как-нибудь или этот только в графическом режиме?
volvo
20.04.2005 21:52
Ну ты сначала для себя-то реши, что ты хочешь - текст или графику... А потом спрашивай. Нужно в тексте, сделаем в тексте ПСЕВДОграфику еще никто не отменял...
Georgich
20.04.2005 22:11
Вообщем в пятницу решу чего делать...ПСЕВДОграфическое меню или оставить как было у меня. Правда появятся другие вопросы, ведь это только часть моего курсовика, а он приличный по объему
volvo
20.04.2005 22:15
Вот, например, я просто заставил твой модуль работать по-другому... Проверь...
Кстати, у тебя и было "псевдографическое" ...
Georgich
20.04.2005 22:57
volvo спасибо, классное меню, есть еще вопрос. У меня там задается массив на нажатие клавиш, а как сделать динамический массив на нажатие клавиш, а то преподов все приспичивает на динамику. Говорят, ПОЛНАЯ ДИНИМИКА должна быть, понимаешь :D
Altair
20.04.2005 23:30
динамика в FAQ'e
Georgich
21.04.2005 20:48
Не стал создавать отдельную тему, поэтому решил написать сюда, хоть к меню это и не относится. Посмотрите, пожалуйста, прикрепленный файл и если сможете исправьте его так, чтобы там просто напрасто не было функции 1 (f1), а чтобы была только функция 2 (f2). Сколько не пытался выдрать из проги первую функцию, вторую она считать отказывалась Помогите, плиз
volvo
21.04.2005 21:43
Ну и правильно, я бы тоже отказался... Ты можешь сказать, чему равно Y при входе в эту функцию?
function f2(a:real):real; const eps=0.0001; var y,s,k,kp:real; i:integer; begin k:=y; { и ты присваиваешь это в K } s:=0; i:=1; repeat s:=s+k; i:=i+1; kp:=k; k:=(k*(-y))/i; { и вот тут возникает переполнение } until abs(k-kp)<eps; f2:=s; end;
Georgich
21.04.2005 21:49
2 volvo а юзер сам вводит y. Но обычно y < 0 Да дело не в этом....Надо чтобы в программе была всего одна функция f2, а f1 надо выкинуть из программы, а у меня это не получается
Georgich
21.04.2005 21:54
Теперь вопрос более менее по меню. Как мне сделать, чтобы ВЕСЬ экран залился синим цветом, вместо черного, и оконтовка у экрана была как у Турбо Паскаля? Еще раз спасибо!
volvo
21.04.2005 22:00
Цитата(Georgich @ 21.04.05 17:49)
а юзер сам вводит y. Но обычно y < 0 Да дело не в этом....
Да нет, как раз именно в этом дело... Ты же программе должен сказать, что юзер вводит Y... а так она берет случайно оказавшееся в памяти на этом месте значение, и из-за этого и происходит сбой... Инициализируй чем-нибудь Y и все прекрасно будет работать и без f1...
В аттаче - программа, в которой я закомментировал вызов F1 ... Но при запуске - вылетает, я проверил начальное значение Y = 5.4x10^14... вот тебе и причина. А ты говоришь "неважно"...
Georgich
21.04.2005 23:41
У меня вообще задача посчитать сумму ряда y-y^2/2!+y^3/3!-y^4/4!+... Ну вот надо множитель правильно вывести, раз вы говорите, что там переполнение идет
FreeMan
21.04.2005 23:47
дык похожих задач на форуме уйма.
Georgich
21.04.2005 23:51
Ладно, а как насчет моего 12 поста???
FreeMan
21.04.2005 23:55
установить синий цвет фона и сделать clrscr - синий экран. оконтовка - смотри таблицу символов
volvo
22.04.2005 0:00
Ну, вообще-то для знакопеременного ряда я бы делал так:
function f2(a: real): real; const eps = 0.0001; var s, next: real; isMinus: boolean; i: integer; begin isMinus := false; next := a; { иначе я вообще не понимаю, зачем его передавать } s := next; i := 2; repeat isMinus := not isMinus; next := next * a / i; s := s + (1 - 2 * byte(isMinus)) * next; inc(i) until next < eps; f2 := s end;
Только учти, что при некоторых условиях ряд будет расходиться и программа просто зависнет... Я бы еще проверял i на достижение некоторого числа итераций (например 200). И если ряд не сходится, то после 200 итераций выходить из функции...
Georgich
22.04.2005 0:02
2 FreeMan Какими командами-то??? Это я и без тебя знаю, что оконтовку по таблице ASCII делать надо, но там правая граница кривая получается.....Вот фигня, блин!
Знаешь - делай. Я тебе меню сделал - край ровный был - вот и делай в таком же стиле. А за выражениями следи
Georgich
22.04.2005 0:05
2 volvo Всегда хотел спросить, что означает inc? Интересно, увидев этот кусок программы (функцию F1) у нас препод с ума на сойдет, потому что мы так никогда не делали?
volvo
22.04.2005 0:07
Цитата(Georgich @ 21.04.05 20:05)
Всегда хотел спросить, что означает inc?
Открой любую книгу по паскалю... Ты что думаешь, форум для того, чтобы тебе одному программы шлифовать и все разжевывать? Ошибаешься...
Учи матчасть...
Atos
22.04.2005 14:33
Цитата
Теперь вопрос более менее по меню. Как мне сделать, чтобы ВЕСЬ экран залился синим цветом, вместо черного, и оконтовка у экрана была как у Турбо Паскаля?
Возиожно, тебе будет интересно поработать с библиотечкой Turbo Vision, модули которой поставляются вместе с Турбо Паскалем. Она позволит сделать "окно как в Паскале" всего тремя строчками кода да собственно и паскальская среда была написална на ней ;) Можешь почитать о Tubo Vision , например, в Фаронове
SunDevil
7.05.2005 16:12
Вот снова проблема. В прикрепленном файле есть я сделал исходник меню с вашей помощью, но не получается одна вещь : когда в меню выбираем пункт "Справка", то должно появитсяокно чуть больше менюшного (менюшное должно на время исчезнуть), в котором должна бать краткая справка по курсовику. Ну и соответсвенно, должна быть какая-нибудь кнопка или что-то в этом роде, чтобы из окна справки вернуться опять в меню. Очень надеюсь, что вы мне поможете! СПАСИБО!
SunDevil
8.05.2005 21:56
ТОВАРИЩИ! Помогите, плиз! А то очень надо....не могу с этими window разобраться, да и сейчас делаю основную часть курсовика - прогу на матрицу пишу....
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.