Написание статей! |
В этом форуме Вы можете предложить изменения на форуме или обсудить действия администрации.
Написание статей! |
AlaRic |
Сообщение
#1
|
... Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: 3 |
Есть ли у кого-нибудь из участников желание попробовать себя в сабже? Любые темы связанные с паскалем(но не делфи!).
|
FreeMan |
Сообщение
#2
|
- Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: 4 |
Нефиг делать. Инфа о символьном типе. Где используеться...
Переменные данного типа хранят один символ, и под каждую из них отводится 1 байт памяти. Нужны такие переменные, в основном, когда от пользователя требуется подтвердить какое-то действие, например, нажать "у" в качестве подтверждения чего-либо. Объявляются переменные данного типа, как и все остальные, в разделе объявлений переменных (var). Объявление выглядит примерно так. Код var name_of_variable:char; ... Переменной можно, как и любой другой, присвоить какое-либо значение в виде одного символа. Также можно присвоить значение нажатой клавиши. Это делается примерно так: Код .... ch:=readkey;{должен быть объявлен модуль Crt} .... Чтобы всем было понятнее, что я имел в виду, приведу пример проги. Эта прога практически ничего не будет делать, кроме как выводить просьбу о нажатии на 'y' или 'n'. Код uses crt; var ch:char; begin clrscr; repeat textcolor(red); writeln('Вы хотите понажимать на кнопки(y/n)?'); ch:=readkey; clrscr; if ch='y' then writeln('Мне тоже нравиться нажимать на кнопки!'); until ch='n'; end. Тут мы читаем то, что нажал пользователь, пока он не нажмёт 'n' или Reset/Power. Если он нажимает 'y', то мы ему ещё одно сообщение выводим. Всё остальное прога игнорирует. Теперь надо рассмотреть пару функций для работы с переменными данного типа. Дело в том, что переменная хранит не сам символ, а его номер в таблице ASCII. В нашей программе, если мы нажмём, например, какую-то из "стрелочек", то в переменную занесётся код нажатой клавиши. В наших программах мы можем печатать любой символ из этой таблицы. Поэкспериментируйте с такими строчками в своих программах. Код .... writeln(#1); writeln(#100); .... На экране будут первый и сотый символы таблицы. Но как же мы узнаем, какой код имеет тот или иной символ? Мы можем посмотреть в таблицу символов, а можем сделать для этого программу. Но перед этим рассмотрим пару функций. 1) Ord(x); - возвращает порядковое значение выражения перечисляемого типа. В нашем случае, если в качестве параметра (вместо х) поставить переменную символьного типа, функция возвратит нам код этого символа. 2) Chr(x); - в качестве параметра передаём число от 0 до 255 и получаем соответствующий символ. А теперь открываем Паскаль и набиваем следующий код Код uses crt; var c:char; begin clrscr; repeat c:=readkey; if c=#0 then begin write(ord(c)); c:=readkey; writeln(' and ',ord(c)); end else writeln(c,'=',ord(c)); until c=#27; end. Вы заметите, что заглавные и прописные буквы расположены по алфавиту, мы можем использовать их в цикле. Код ... for ch:='a' to 'z' do write(ch); for ch:='z' downto 'a' do write(ch); ... На экран будет выведен алфавит, а потом алфавит в обратном порядке. Напишем Paint в текстовом режиме. :D Код uses crt; var x,y:byte; begin clrscr; writeln('esc for exit'); x:=12; y:=12; repeat gotoxy(x,y); write(#1); c:=readkey; case c of #72: dec(y); #80: inc(y); #77: inc(x); #75: dec(x); end; until c=#27; end. Объявляем пару переменных для положения "кисти". Чистим экран. Рисуем символ в позиции, заданной координатами х и у. Читаем у Юзверя клавишу. После этого сравниваем то, что он нажал с каждой из "стрелочек". В зависимости от того, что он нажал, увеличиваем\уменьшаем соответствующую координату на 1. Рисуем символ в позиции,... Всё это работает до нажатия Esc. Вот и поизвращались с символьным типом. -------------------- бб
|
Текстовая версия | 26.06.2024 23:26 |