Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 29.02.2012, 23:39   #1
Светочик
 
Аватар для Светочик
 
Регистрация: 29.02.2012
Сообщений: 3
По умолчанию Написать резидентную программу которая выполняет опредилённые действия:

Здравствуйте, помогите пожалуйста девушке в написании программы.
В С++я не очень разбираюсь. Буду вам очень очень благодарна)

При нажатии клавиши F1 будет выводить на экран титульную страничку с названием программы
При нажатии клавиши F2 будет выводить на экран инструкцию по пользованию программой
Светочик вне форума Ответить с цитированием
Старый 01.03.2012, 08:19   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

1. Пишете процедуру, которая выполняет следующее:
Цитата:
При нажатии клавиши F1 будет выводить на экран титульную страничку с названием программы
При нажатии клавиши F2 будет выводить на экран инструкцию по пользованию программой
2. устанавливаете эту процедуру на обработчик прерывания клавиатуры.
3. выходите из программы, оставив работать резидентный модуль.

з.ы. если дадите хотя-бы код по п.1, то с другими пунктами вам помогут...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 01.03.2012, 08:52   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

я, конечно, заранее прошу прощения за вопрос,
но разве на C++ писались резидентные программы под DOS ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.03.2012, 09:00   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Серж,
я в Си и её производных не силён, но на Паскале резиденты писались - хотя и кривовато... но не думаю, что здесь обошли эту возможность) тем более, там делов-то: правильно установить вектор и корректно завершить программу.

И гугл со мной согласен:
Код:
#include"dos.h"
#include<conio.h>
#include<stdlib.h>

//interrupt declarations
void interrupt (*prevtimer)();
void interrupt mytimer();
void writechar(char ch,int row,int col,int attr);

//a far pointer that will access video memory 
char far* scr;
int a,b;

//our real program goes from here
void main()
{
scr=(char far*) 0xb8000000;
prevtimer=getvect( 8 );
setvect(8,mytimer);
keep(0,1000);
}

//timer function
void interrupt mytimer()
{
a=random(25);
b=random(80);
writechar(' ',a,b,0);
(*prevtimer)();
}

//function that writes picked up character
void writechar(char ch,int row,int col,int attr)
{
*(scr+row*160+col*2)=ch;
*(scr+row*160+col*2+1)=attr;
}
как я понимаю, программка по таймеру рисует символы (' ') на экране
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 01.03.2012 в 09:13.
DiemonStar вне форума Ответить с цитированием
Старый 01.03.2012, 09:21   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от DiemonStar
но не думаю, что здесь обошли эту возможность
я извиняюсь за очередной нубский вопрос..
а это код на C или С++ ?! (как их вообще различают то?!!)


DiemonStar, да, и спасибо за ответ!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.03.2012, 09:32   #6
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а это код на C или С++ ?!
было честно стырено отсюда: http://www.thinkdigit.com/forum/prog...-tutorial.html

хотя, как я ещё помню, основное различие между ними - в реализации ООП на C++, расширении доступных типов данных и ещё немного бонусов сверху. Здесь, мне кажется (но на истинность не претендую), разницы быть не должно.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 01.03.2012, 19:57   #7
Светочик
 
Аватар для Светочик
 
Регистрация: 29.02.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
1. Пишете процедуру, которая выполняет следующее:

2. устанавливаете эту процедуру на обработчик прерывания клавиатуры.
3. выходите из программы, оставив работать резидентный модуль.

з.ы. если дадите хотя-бы код по п.1, то с другими пунктами вам помогут...
Извените за глупость, но кода даже по первому заданию увы нет(
Не могли бы вы меня как то надоумить? что и зачем делать?

Последний раз редактировалось Светочик; 01.03.2012 в 20:00.
Светочик вне форума Ответить с цитированием
Старый 01.03.2012, 22:09   #8
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,497
По умолчанию

Цитата:
Извените за глупость, но кода даже по первому заданию увы нет(
Не могли бы вы меня как то надоумить? что и зачем делать?
Чем вас надоумить?
как ловить прерывания вам показали!
вам осталось найти номер прерывания от клавы и почитать как с ним работать!
Найти инфу можно тут
http://frolov-lib.ru/books/bsp/v02/ch2_3.htm
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 03.03.2012, 17:40   #9
Светочик
 
Аватар для Светочик
 
Регистрация: 29.02.2012
Сообщений: 3
Радость

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
Чем вас надоумить?
как ловить прерывания вам показали!
вам осталось найти номер прерывания от клавы и почитать как с ним работать!
Найти инфу можно тут
http://frolov-lib.ru/books/bsp/v02/ch2_3.htm
Большое вам спасибо! Вы очень помогли!
Светочик вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу, которая считывает текст guksm Паскаль, Turbo Pascal, PascalABC.NET 8 05.04.2014 16:05
Написать программу, которая выполняет следующие действия: INFINITIFX Visual C++ 2 21.09.2011 20:56
Написать на Паскале резидентную программу kaeromorte Помощь студентам 3 22.05.2009 20:41


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS