Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru

RusFAQ.ru: Программирование на языке Pascal

Выпуск № 315
от 18.09.2004, 17:20

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 512
Отправлено ответов: 1933
Активность: 377.5 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Алена
Статус: Опытный
Общий рейтинг: 116.94
[Подробней >>]
sir henry
Статус: Профессиональный
Общий рейтинг: 162.89
[Подробней >>]
Tigran K. Kalaidjian
Статус: Профессиональный
Общий рейтинг: 184.49
URL: Персональная страничка
[Подробней >>]
 
КиберТварь
Статус: Опытный
Общий рейтинг: 187.65
[Подробней >>]
Boriss
Статус: Профессиональный
Общий рейтинг: 155.8
URL: Программирование на Паскале
[Подробней >>]
Ariokh
Статус: Доверительный
Общий рейтинг: 103.31
[Подробней >>]
 
CrackLab
Статус: Опытный
Общий рейтинг: 119.91
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.33
[Подробней >>]
Student
Статус: Опытный
Общий рейтинг: 128.64
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 509. Здраствуйте. Процедура write(chr(1)); выводит символ, а как можно вывести символ указав его атрибут... (ответов: 6)
Вопрос № 510. Здраствуйте Эксперты. Очень часто вижу такой оператор if not ... Чёто не могу понять как он работает... (ответов: 8)

Вопросов: 2, ответов: 14


 Вопрос № 509

Здраствуйте.
Процедура write(chr(1)); выводит символ, а как можно вывести символ указав его атрибут(т.е. цвет - как нибудь без bgcolor)??



Вопрос отправлен: 15.09.2004, 12:20
Отправитель: hurer

[Следующий вопрос >>] [Список вопросов]

Отвечает Алена

Приветствую Вас, hurer!
по моему некак.

Ответ отправлен: 16.09.2004, 13:54
Отправитель: Алена


Отвечает sir henry

Приветствую Вас, hurer!
Можно выводить напрямую в видеопамять. Например, использовать такой массив:
Screen: Array[1..25,1..80,1..2] of byte absolute $B800:0;
1 - строки;
2 - колонки;
3 - [1] символ, [2] его аттрибут.
Я сам использовал такую штуку:
Type
Video = record
ch: byte; {Код символа}
attr: byte; {Его аттрибут}
Screen = array[1..25,1..80] of Video absolute $B800:0;
Работает следующим образом:
Var
s: Screen;
Begin
s[5,5].ch:=239; {Буква "я"}
s[5,5].attr:=$1E; {Желтый символ на синем фоне}
End.
Хочу заметить что при сочетании Windows и TurboPascal такая штука не прокатит, поэтому вместо TurboPascal нужно скачать какую-нибудь подходящую для Виндов версию, например FreePascal или TMT Pascal. В них все работает отлично.

Ответ отправлен: 15.09.2004, 15:22
Отправитель: sir henry


Отвечает Tigran K. Kalaidjian

Доброе время суток, hurer!
Используйте ассемблерные вставки и пишите прямо в память(адрес B800h); пишется слово - один байт под цвет, другой - под символ.
Если не получается - пишите на kalaidjian@pochtamt.ru, сообразим...

Ответ отправлен: 17.09.2004, 20:03
Отправитель: Tigran K. Kalaidjian


Отвечает КиберТварь

Добрый день, hurer!
в модуле Graph есть функция OutTextXY

Ответ отправлен: 15.09.2004, 14:57
Отправитель: КиберТварь


Отвечает Boriss

Добрый день, hurer!
В модуле CRT есть переменная TextAttr типа byte;
В ней записываются аттрибуты выводимых символов. Удобно в 16-ричном представлении. Тогда старшая цифра - цвет фона, а младшая - цвет символов. То есть TextAttr:=$1e означает желтые буквы на синем фоне.
Эту переменную можно считывать и изменять
Вот ее-то и надо изменить перед выводом

Приложение:

Ответ отправлен: 15.09.2004, 13:01
Отправитель: Boriss


Отвечает Ariokh

Доброе время суток, hurer!
Модуль CRT - TextAttr

Ответ отправлен: 15.09.2004, 16:01
Отправитель: Ariokh


 Вопрос № 510

Здраствуйте Эксперты.
Очень часто вижу такой оператор if not ...
Чёто не могу понять как он работает



Вопрос отправлен: 15.09.2004, 15:21
Отправитель: devil

[Следующий вопрос >>] [Список вопросов]

Отвечает Tigran K. Kalaidjian

Доброе время суток, devil!
not есть логическое отрицание, т.е. "если НЕ true". Короче говоря, if not a - это тоже самое, что и if a=false.

Ответ отправлен: 17.09.2004, 20:19
Отправитель: Tigran K. Kalaidjian


Отвечает Алена

Добрый день, devil!
Да просто переведи на русский язык - "если не", т.е. если не выполнено условие тогда ... (выполнить твои операторы).


Ответ отправлен: 16.09.2004, 15:56
Отправитель: Алена


Отвечает CrackLab

Приветствую Вас, devil!
Это значит что условие не должно выполняться, для того чтобы выполнилось действие.
Например
if not flag then ...
Здесь действия после оператора if выполнятся если значение переменной flag = false или нулю.

Ответ отправлен: 15.09.2004, 15:43
Отправитель: CrackLab


Отвечает Boriss

Добрый день, devil!
NOT - это оператор логического отрицая. Я часто использую его при проверке принадлежности диапазону. Например, из строки нужно выделить отдельные слова.
Оператор IN возвращает результат ИСТИНА (TRUE), если данный символ принадлежит множеству (SET of char).
Для пропуска всех символов, которые не могут входить в состав слова, я и использую конструкцию
while NOT (s[i] in Letters) do inc(i);
То есть, пока символ s[i] не входит в набор Letters, пропускать

Приложение:

Ответ отправлен: 15.09.2004, 15:44
Отправитель: Boriss


Отвечает Ariokh

Добрый день, devil!
if not x then
Абсолютно аналогичен
if x = false then
или
if x <> true then

Ответ отправлен: 15.09.2004, 16:00
Отправитель: Ariokh


Отвечает Ayl

Доброе время суток, devil!
if not - это не оператор, а один оператор и одна операция.
if - это оператор условия.
not - операция логического отрицания.
Соотвественно, if not expr выполняется так:
1. Вычисляется значение выражения expr (оно должно в результате возвращать значение типа Boolean: TRUE или FALSE)
2. Выполняется операция not. Если на первом шаге значение выражения было TRUE, то not expr выдаст в результате FALSE и наоборот.
3. Выполняется оператор if.

Сравни, например:
if a = b then writeln ('Равны')
else writeln ('Не равны');
if not (a = b) then writeln ('Не равны')
else writeln ('Равны');
Пусть значения переменных a и b одинаковы. Тогда в первом операторе проверка на равенство даст в результате TRUE и будет выполнен оператор по ветке then: writeln ('Равны'), т.е. на экран будет выведено слово "Равны".
Во втором же операторе проверка на равенство также даст TRUE, но т.к. также применен а операция not, то значение условного выражения будет FALSE и будет выполнен оператор по ветке else. Опять же выводя на экран слово "Равны".


Ответ отправлен: 15.09.2004, 16:17
Отправитель: Ayl


Отвечает sir henry

Доброе время суток, devil!
If это если, т.е. оператор проверки последующего условия.
Not это оператор отрицания. Следовательно If Not можно перевести как "Если Не ...".

Ответ отправлен: 16.09.2004, 03:53
Отправитель: sir henry


Отвечает Student

Приветствую Вас, devil!
if not (a=b) then c:=d; {c присвоить значение d, если a не равно b}

Ответ отправлен: 16.09.2004, 05:45
Отправитель: Student



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (26)
C / C++ (17)
Perl (6)
Builder / Delphi (14)
Pascal (20)
Basic / VBA (6)
Java / JavaScript (6)
PHP (15)
Криптография (8)
WinAPI (14)
Радиоэлектроника (11)
Пользователю
Windows 95/98/Me (46)
Windows NT/2000/XP (63)
"Железо" (41)
Поиск информации (22)
Администратору
Windows NT/2000/XP (43)
Linux / Unix (17)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (8)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2001-2004 Россия, Москва. Идея, дизайн, программирование: Калашников О.А. ICQ: 68951340
При перепечатке материалов ссылка на данный сайт обязательна!

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.pasplus
Отписаться

В избранное