Функции Pred, Succ в Pascal.

В данном уроке мы рассмотрим функции, применяемые к типу CHAR. Функция Pred возвращает в качестве значения предшествующий символ, а функция Succ возвращает последующий символ.

Div, Mod, сложение, вычитание в Pascal.

Помимо операций умножения и сложения, над целочисленными переменными производятся операции Div (операция целочисленного деления), Mod (вычисление остатка от целочисленного деления), операция вычитания «-».

Функции trunc, round в Pascal.

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

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

Поиск минимального и максимального элементов массива.

Одной из наиболее распространенных задач обработки массивов является поиск минимального (максимального) элемента.

Программирование данных.

Любые данные, то есть константы, переменные, выражения, значения функций, характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь программируемый объект, ...

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

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (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

Комментарии  

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