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

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

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

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


Новичок
*

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

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


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


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


Гость






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


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

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

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


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


Новичок
*

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

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


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


Гость






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


Новичок
*

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

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


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


Гость






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

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


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


Новичок
*

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

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


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


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

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

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


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


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


Новичок
*

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

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


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


Прикрепленные файлы
Прикрепленный файл  K_2.rar ( 1.08 килобайт ) Кол-во скачиваний: 201
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.04.2005 17:43
Сообщение #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;
 К началу страницы 
+ Ответить 
Georgich
сообщение 21.04.2005 17:49
Сообщение #11


Новичок
*

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

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


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


Новичок
*

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

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


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


Гость






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

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

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


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


Новичок
*

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

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


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


-
****

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

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


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


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


Новичок
*

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

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


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


-
****

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

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


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


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.04.2005 20:00
Сообщение #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 итераций выходить из функции...
 К началу страницы 
+ Ответить 
Georgich
сообщение 21.04.2005 20:02
Сообщение #19


Новичок
*

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

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


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

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

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


Новичок
*

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

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


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

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

 

- Текстовая версия 25.07.2025 10:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"