Ввод логических переменных с клавиатуры.

В отличие от переменных целого, вещественного или символьного типов данных, булевские переменные нельзя вводить с клавиатуры, их можно только выводить на экран. Однако можно использовать небольшую хитрость. Для того чтобы можно было ввести булевскую ...

Логические операции And, Or, Not, Xor в Pascal.

Над переменными логического типа можно производить логические операции. В языке программирования Pascal существуют следующие логические операции : Andлогическое умножение, Orлогическое сложение, Notлогическое отрицание, Xor ...

Применение логических операций с оператором IF.

В данном уроке мы рассмотрим применение логической операции And с условным оператором If.

Циклы и массивы

Вложенный арифметический цикл.

Под вложенным арифметическим циклом понимают такую алгоритмическую структуру, при которой в тело одного цикла с параметром включен другой цикл со своим параметром.

Сортировка двумерного массива.

Пример 36. Задан двумерный массив X из 6 строк и 4 столбцов. Упорядочить массив X по возрастанию элементов дробной части столбца с номером N. Отсортированный массив X вывести на экран монитора.

Уроки Паскаль

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, которые мы можем увидеть на клавиатуре. Для того чтобы ввести в программу символьные переменные необходимо указать для них символьный тип данных Char.

Program number13;
uses crt;
var N:integer;
X:char;
begin
clrscr;
X:=’L’;
writeln (X);
N:=Ord (X);
writeln (N);
X:=Chr (N);
writeln(X);
readln
end.

Строка №4. Записываем переменную «X» и указываем для нее тип данных Char. Char – тип данных, который позволяет хранить символы. В данном случае в переменную «X» мы будем записывать не какие-то числа, а символы.

В строке №7 мы присвоили переменной «X» значение латинской буквы L. Сам символ, который необходимо записать в переменную, обязательно берется в апострофы. Напомню, что когда мы присваиваем переменной числовое значение, то число в апострофы не берется.

В строке №8 выводим на экран значение, которое мы присвоили переменной X, т.е. фактически на экран выведется буква L.

Строка №9. Функция Ord, преобразовывает букву в ее числовой код. Коды всех букв и символов можно посмотреть в кодовой таблице ASCII, которая приведена ниже. ASCII (American Standard Code for Information Interchange) - международный стандарт, принятый для кодирования текстовой информации. По этой таблице, любые символы имеют свой уникальный числовой код. В нашем примере переменной N присваивается значение функции Ord (L) т.е. (код) буквы «L» (по таблице ASCII код буквы «L» - 76).

В строке №10 выводим значение переменной «N» (т.е. числовой код буквы «L») на экран.

Строка №11. Функция Chr противоположна функции Ord. Эта функция будет преобразовывать числовой код символа в сам символ. В переменной N у нас записан код буквы «L». C помощью функции Chr мы преобразуем этот код в букву и запишем её в символьную переменную X. Таким образом, в строке №12 на экран выведется буква «L»

Tip dannihkh Char, funkcii Ord, Chr

Tip dannihkh Char, funkcii Ord, Chr.



Дополнение к материалу.

В приведенном выше примере функция Ord возвращает в качестве значения код переменной «X», которой присвоено значение латинской буквы «L». После записи функции Ord переменная «X» стоит в круглых скобках (строка №9). Вместо записи переменной можно напрямую записать символ, код которого необходимо получить. Этот символ необходимо заключить не только в круглые скобки, но и в апострофы. Таким образом программу можно записать так:


Program number13;
uses crt;
var N:integer;
X: char;
begin
clrscr;
writeln (‘L’);
N:=Ord (‘L’);
writeln (N);
X:=Chr (N);
writeln(X);
readln
end.

Кодовая таблица ASCII.

kodovaya tablica ASCII.

kodovaya tablica ASCII

Комментарии  

 
+9 # Юрий 13.03.2012 16:53
Здравствуйте! А почему во втором варианте программы №112 нет объявления типа переменной Х?
 
 
+17 # Administrator 15.03.2012 11:54
Да точно, моя ошибка. Спасибо за замечание. Сейчас все исправлено.
 
 
+17 # Нео 03.12.2012 19:48
понятно, кратко, детально = идеально :lol:
 
 
-9 # Ученик 17.03.2016 15:02
Разбираешься в Паскале? Я пишу программу для конкурса и столкнулся с проблемой. Моя программа- игра, самая элементарная, но проблема в том, что я не могу сделать управление, к примеру на стрелки клавиатуры, сколько я бы не пытался, у меня не выходит, можешь помочь?
 
 
+15 # Юрий 17.03.2012 05:18
Здравствуйте! Спасибо за Ваш ответ. Он подтверждает то, что Вы - классно учите. Ведь очевидно, что благодаря Вам я за короткий срок уже умею не только буквы узнавать , но и понимать смысл записей. :-)
 
 
+30 # Administrator 17.03.2012 07:38
Спасибо за Вашу похвалу, Юрий. Благодаря таким как Вы хочется писать хорошие статьи для того чтобы научить людей программировани ю, а не просто извести кучу бумаги для написания лишь бы чего и потом это продавать по баснословным ценам.
 
 
+6 # Дори 09.12.2012 14:54
И в првду все прекрасно изложено, начинаю верить что сдам нормально сессию, а ведь информатика это единственный предмет который я не понимаю. Спасибо админ.
 
 
+4 # Ahtung 11.12.2012 12:33
Почему у цифр от 7 до 13 нет значений?
 
 
-3 # rad 21.02.2013 22:56
Потому, что в этой части таблицы расположены управляющие клавиши.
Например, у клавиши Enter код =13
 
 
0 # sairan 01.03.2013 07:45
молдцы ребята
 
 
+6 # Игорь 16.12.2012 13:09
Создатели сайта, ребята, молодцы вообще. доступно и понятно. спасибо вам:)
 
 
-4 # Антон 28.02.2013 13:29
Хм, я писал программку для вывода значений таблицы ASCII в PascalABC.net, что-то получившийся результат не совпадает с таблицей, представленной здесь...
 
 
+1 # Гость 13.04.2016 17:57
согласна
 
 
+2 # Нупя 28.02.2013 17:35
В дополнении после readln не должно быть точки с запятой?!
 
 
-10 # sairan 01.03.2013 07:48
:-| :lol: :D :-| :oops: :sad: :cry: :o :-? :-x :eek: :zzz :P :roll: :sigh:
 
 
+8 # sairan 01.03.2013 07:50
создатели сайта молодцы
 
 
-4 # Антонов Всеволод 04.03.2013 14:07
перед последним end-ом п редыдущий перед ним строчки ";" необязательна
 
 
-4 # Лолка 17.02.2014 20:10
Отсутствие отступов — крайне дурной тон, не надо такому учить!
А нижняя часть таблицы ASCII (после 127 символа) — это уже не ASCII, а какая-то русскоязычная кодовая страница на её основе (коих, вообще говоря, вагон и маленькая тележка).
 
 
-7 # GlassySundew 27.08.2014 13:25
Какое значение у кода #10?
 
 
-7 # Len 17.09.2014 12:28
Какое введешь, такое и будет
 
 
-7 # Danil 11.09.2015 06:39
Можете подсказать, как сделать?
Нужно чтобы в программе пользователь ввёл да или нет, а после этого должна выполняться программа , зависящая от выбранного ответа
Типа если на вопрос ответил да, то выполняется одно действие, если нет-другое
 
 
-7 # cookies_thief 08.06.2016 15:17
Думаю, уже не актуально, но, надеюсь, пригодится тем, кто так же, как и я, пришёл сюда за ещё неизученным материалом (большой респект создателям и авторам сайта!):

Program tree;
Var c: char;
n: integer;
{...}
Begin

Writeln ('*вопрос*');
Readln (c);

N := Ord (C);

If n = 89
then {один случай}
else {второй случай};

end.
 
 
-6 # Danila 22.02.2016 21:10
Вопрос, Можете пожалуйста обяснить, как я могу сделать выборочную проверку букв в слове(например только четные буквы).
 
 
-3 # cookies_thief 13.06.2016 20:00
Проверку на что? Формулируйте вопрос конкретнее, пожалуйста.
Если нужно проверить, если ли в слове какой-то определённый символ или буква, вам сюда - http://programmado.ru/55-stroki-v-paskale-tip-string.html , ибо нужен строковый тип данных string, char же работает только с единичным символом.

Если допустить, что вам нужна проверка на то, не встречается ли в слове определённая буква, то вот, накропал на досуге :lol: :

PROGRAM Check;
VAR X, C: string;
i, L: integer;
begin

WRITELN ('Введите слово для проверки');
READLN (X);
WRITELN ('Введите проверочный символ');
READLN (C);
L := Length (X);
For i := 1 to L do
begin
If C = X[1] then WRITELN ('Соответствие');
Delete (X, 1, 1);
end;

end.
 
 
-6 # cookies_thief 13.06.2016 20:11
Чорд, забыл про комментарии (комменты - это поясняющий текст в фигурных скобках, если чо):

PROGRAM Check;
VAR X, C: string;
i, L: integer;
begin

WRITELN ('Введите слово для проверки'); { вводим проверяемое слово }
READLN (X);
WRITELN ('Введите проверочный символ'); { наличие которого в слове и будет определяться }
READLN (C);
L := Length (X); { функция определения количества символов с строке (в данном случае - в слове) }
For i := 1 to L do { детерминированн ый цикл или цикл с заранее известным количеством итераций (повторений). В данном случае, число повторений будет равно L. Тело этого цикла заключено в операторные скобки (begin...end). Таким образом, слово "соответствие" выводится на экран столько раз, сколько было, собственно, соответствий }
begin
If C = X[1] then WRITELN ('Соответствие');
Delete (X, 1, 1); { удаляем первый символ }
end;

end.
 
 
-1 # ггпшгунупатшгныпетгн 21.04.2018 13:55
А что такое clrscr;? Это процедура?
 
 
-1 # StepAN 23.04.2018 10:13
ClrScr (процедура) (модуль Crt). Очищает активное окно и устанавливает курсор в левый верхний угол окна
 
 
0 # Vasil 30.09.2021 04:42
Сногшибательно
 
   ГлавнаяПаскальУроки ПаскальТип данных Char. Функции Ord, Chr.