Название: вопрос по программированию Отправлено: tech от 06 Май 2010, 14:13 как выводить ascii код символа нажатой клавиши?
на с и паскале интересует. Название: Re: вопрос по программированию Отправлено: K i r i L L от 06 Май 2010, 16:18 ну например так:
Код: #include <conio.h> Название: Re: вопрос по программированию Отправлено: tech от 06 Май 2010, 17:18 на с понятно. на паскале кто-нибудь подскажет?
Название: Re: вопрос по программированию Отправлено: imperfect от 07 Май 2010, 01:08 ну например так: Код: #include <conio.h> Извиняюсь за занудство, но решение не очень красивое, ибо не нужно плодить сущности без необходимости :) Заголовок conio.h нестандартен, поэтому будет работать не во всех компиляторах С. Вместо функции getch(), ради которой он и подключается, я бы использовал функцию стандартной библиотеки getchar(). Исполняемый файл будет меньше по объему, и программа будет более переносимая. :) Код: #include<stdio.h> Различие между функциями есть: getchar() выводит осуществляет буферизованное считывание символа, т.е. выводит его на экран и требует нажатия Enter. Паскаль: Код: program trololo; Название: Re: вопрос по программированию Отправлено: tech от 07 Май 2010, 01:27 ord - это функция? чёто он просто символ выводит
Название: Re: вопрос по программированию Отправлено: imperfect от 07 Май 2010, 02:45 Да, ord - функция, возвращающая ascii-код аргумента.
Усомнился, скачал FreePascal и проверил - все работает. Название: Re: вопрос по программированию Отправлено: ExclusivE от 07 Май 2010, 04:09 Код: program trololo; Название: Re: вопрос по программированию Отправлено: imperfect от 08 Май 2010, 03:41 2ExclusivE: Смотрю, проект развивается. Уже вторая версия вышла.
Название: Re: вопрос по программированию Отправлено: CRP от 08 Май 2010, 08:19 да это мегапроект метрополиса!!! Давайте все вместе писать, на всех возможных языках программирования под все возможные платформы. И в гугле распиарим )
Название: Re: вопрос по программированию Отправлено: tech от 18 Май 2010, 23:48 оказалось, что нужно использовать прерывания.
эта программа через одно нажатие выводит символ, нужно чтоб вместо символа выводился его ascii код. тоже через раз. program 1; uses Crt; var cha:char; bPrint:boolean; begin bPrint:=True; while True do begin while not keypressed do; asm mov ah,0h int 16h mov cha,ah end; if cha=' ' then break; if bPrint then Begin asm mov dl,cha mov ah,2h int 21h end; end; bPrint:= not bPrint; end; end. Название: Re: вопрос по программированию Отправлено: imperfect от 19 Май 2010, 01:40 Возможно, у нас разные паскали, но в Турбе нужно заменить
mov cha,ah наКод: mov cha,al Вообще говоря, вывод ascii-кода через прерывание - нетривиальная задача, поскольку он может быть многосимвольным, например, '123'. Поскольку прерывание 21h осуществляет вывод содержимого младшего байта регистра d (всего 1 символ), нужно реализовать продвинутую логику анализа ascii-кода, и несколько раз подряд делать int 21h. Кстати, программа не может называться "1", в силу того, что идентификаторы не могут начинаться с цифры. Название: Re: вопрос по программированию Отправлено: tech от 19 Май 2010, 01:50 Возможно, у нас разные паскали, но в Турбе нужно заменить mov cha,ah наКод: mov cha,al действительно, напутал) а на счёт тривиальности задачи - просто предмет, по которому это надо сделать, называется Интерфейсы Периферийных Устройств Название: Re: вопрос по программированию Отправлено: imperfect от 19 Май 2010, 01:58 Может, надо через прерывания только считывание, а вывод просто так?
Название: Re: вопрос по программированию Отправлено: tech от 19 Май 2010, 02:03 может и так прокатит) есть идеи?
Название: Re: вопрос по программированию Отправлено: imperfect от 19 Май 2010, 02:19 Код: program tralala; Название: Re: вопрос по программированию Отправлено: tech от 19 Май 2010, 02:54 следующий вопрос для тех, кто не спит :)
Код: program lab2; программа закрашивает столбцы в графическом режиме. а нужно строки в текстовом. что нужно изменить кроме 12h на 02h и значений в циклах на 79 и 24? Название: Re: вопрос по программированию Отправлено: K i r i L L от 19 Май 2010, 07:04 а на си ничего больше не нужно?)
Название: Re: вопрос по программированию Отправлено: tech от 19 Май 2010, 13:32 можно и на си ту же задачу. только обязательно должны быть прерывания
Название: Re: вопрос по программированию Отправлено: 02™ от 16 Сентябрь 2010, 19:54 Вопрос в следующем: есть организация, там установлены программы 1C. Но на одном из компов кем-то криворуким 1С была удалена. Итак: нужно установить её заново и чтобы дата установки соответствовала дате установки всех остальных 1С на др. компьютерах, т.е. год-два назад.
Единственное что приходит на ум, это в биосе (винде) выставить нужное время и установить программу, а потом вернуть его на сегодняшнее. Так прокатит? И нет ли в пакете 1С какого-нибудь рода счётчика, который записывает кол-во вкл. или общее время наработки в пакете программ? И не спрашивайте для чего, - сам не знаю :lol:, просто нужно сделать. ) Название: Re: вопрос по программированию Отправлено: Geo от 16 Сентябрь 2010, 21:38 Счетчика в 1С (6-7-8) никакого нет.
Поскольку сама задача смысла не имеет - решение искать незачем... |