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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

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

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

И гугл со мной согласен:
Код:
#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
Сообщений: 25,708
Репутация: 5617
По умолчанию

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


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

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

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

Цитата:
Сообщение от 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
Репутация: 353

icq: 636954303
По умолчанию

Цитата:
Извените за глупость, но кода даже по первому заданию увы нет(
Не могли бы вы меня как то надоумить? что и зачем делать?
Чем вас надоумить?
как ловить прерывания вам показали!
вам осталось найти номер прерывания от клавы и почитать как с ним работать!
Найти инфу можно тут
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
Репутация: 10
Радость

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


14:14.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.