IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Помогите сделать меню
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Вот я выкладываю файл (модуль) меню, но он сделан без модуля graph. А надо с этим модулем, но в graph я плохо разбираюсь. Посмотрите, кто-нибудь мой файл и если несложно, сможете сделать окно, в котором были бы строчки, как у меня в модуле. И чтобы окно было по типу Norton Commander'а, но не на весь экран!
Заранее спасибо!


Прикрепленные файлы
Прикрепленный файл  MENU.rar ( 634 байт ) Кол-во скачиваний: 283
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Georgich,
Ну вот я выдрал из своей старой программы меню для графического режима, посмотри, может пойдет... Единственное, что тебе надо будет сделать - это поменять строки в массиве mainMenu и подставить нужные вызовы процедур в
Case menuScreen Of
... { здесь }
End;


Но учти, что это графический режим, и если сама процедура работает в текстовом - тебе надо будет вызывать процедуры вот так:
Case menuScreen Of
optOne:
begin
RestoreCrtMode; { переходим в текстовый режим }
{ здесь - запускаешь свою процедуру }
SetGraphMode(GetGraphMode); { назад в графический режим }
end;
...
End { case }

Если что - спрашивай ;)

Файл EGAVGA.OBJ (он в архиве) должен быть в той же директории, что и программа...


Прикрепленные файлы
Прикрепленный файл  _MENU_.PAS ( 3.38 килобайт ) Кол-во скачиваний: 392
Прикрепленный файл  egavga.rar ( 3.97 килобайт ) Кол-во скачиваний: 239
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


2 volvo
Блин, чего-то сложновато...А для чего этот EGAVGA.OBJ нужен? Нет, все-таки попроще будет через CRT, хотя преподы хотят, чтобы в работе окошки присутсвовали и все так красиво было! Они сами этого нифига не объясняют,а мне вас тут надо мучать на форуме.
Еще вопрос, а окошко, которое у меня начерчено можно заоить как-нибудь или этот только в графическом режиме?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну ты сначала для себя-то реши, что ты хочешь - текст или графику... А потом спрашивай. Нужно в тексте, сделаем в тексте smile.gif ПСЕВДОграфику еще никто не отменял...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Вообщем в пятницу решу чего делать...ПСЕВДОграфическое меню или оставить как было у меня. Правда появятся другие вопросы, ведь это только часть моего курсовика, а он приличный по объему blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Вот, например, я просто заставил твой модуль работать по-другому... Проверь...

Кстати, у тебя и было "псевдографическое" ... smile.gif


Прикрепленные файлы
Прикрепленный файл  MENU.PAS ( 1.92 килобайт ) Кол-во скачиваний: 396
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


volvo спасибо, классное меню, есть еще вопрос. У меня там задается массив на нажатие клавиш, а как сделать динамический массив на нажатие клавиш, а то преподов все приспичивает на динамику. Говорят, ПОЛНАЯ ДИНИМИКА должна быть, понимаешь :D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


динамика в FAQ'e


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Не стал создавать отдельную тему, поэтому решил написать сюда, хоть к меню это и не относится.
Посмотрите, пожалуйста, прикрепленный файл и если сможете исправьте его так, чтобы там просто напрасто не было функции 1 (f1), а чтобы была только функция 2 (f2). Сколько не пытался выдрать из проги первую функцию, вторую она считать отказывалась sad.gif
Помогите, плиз


Прикрепленные файлы
Прикрепленный файл  K_2.rar ( 1.08 килобайт ) Кол-во скачиваний: 205
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Ну и правильно, я бы тоже отказался... Ты можешь сказать, чему равно 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;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


2 volvo
а юзер сам вводит y. Но обычно y < 0
Да дело не в этом....Надо чтобы в программе была всего одна функция f2, а f1 надо выкинуть из программы, а у меня это не получается huh.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Теперь вопрос более менее по меню. Как мне сделать, чтобы ВЕСЬ экран залился синим цветом, вместо черного, и оконтовка у экрана была как у Турбо Паскаля?
Еще раз спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Цитата(Georgich @ 21.04.05 17:49)
а юзер сам вводит y. Но обычно y < 0
Да дело не в этом....

Да нет, как раз именно в этом дело... Ты же программе должен сказать, что юзер вводит Y... а так она берет случайно оказавшееся в памяти на этом месте значение, и из-за этого и происходит сбой... Инициализируй чем-нибудь Y и все прекрасно будет работать и без f1...

В аттаче - программа, в которой я закомментировал вызов F1 ... Но при запуске - вылетает, я проверил начальное значение Y = 5.4x10^14... вот тебе и причина. А ты говоришь "неважно"...


Прикрепленные файлы
Прикрепленный файл  k_2.rar ( 1.23 килобайт ) Кол-во скачиваний: 218
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


У меня вообще задача посчитать сумму ряда
y-y^2/2!+y^3/3!-y^4/4!+...
Ну вот надо множитель правильно вывести, раз вы говорите, что там переполнение идет
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


-
****

Группа: Пользователи
Сообщений: 480
Пол: Мужской

Репутация: -  4  +


дык похожих задач на форуме уйма.


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Ладно, а как насчет моего 12 поста???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


-
****

Группа: Пользователи
Сообщений: 480
Пол: Мужской

Репутация: -  4  +


установить синий цвет фона и сделать clrscr - синий экран. оконтовка - смотри таблицу символов


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гость






Ну, вообще-то для знакопеременного ряда я бы делал так:
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 итераций выходить из функции...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


2 FreeMan
Какими командами-то??? Это я и без тебя знаю, что оконтовку по таблице ASCII делать надо, но там правая граница кривая получается.....Вот фигня, блин!

Знаешь - делай. Я тебе меню сделал - край ровный был - вот и делай в таком же стиле. А за выражениями следи angry.gif

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


2 volvo
Всегда хотел спросить, что означает inc? Интересно, увидев этот кусок программы (функцию F1) у нас препод с ума на сойдет, потому что мы так никогда не делали?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 21:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name