Операция целочисленного деления и операция - остаток от деления
Логические операции
Операции отношения или сравнения
Арифметические операции с целыми числами и переменными целого типа в языке Паскаль
Арифметические операции с целыми числами. Переменные целого типа. Вещественный тип
Операторы read и readln. Процедуры ввода информации
Операторы write и writeln. Процедуры вывода информации
Вы обратили внимание, что в программе были использованы операторы write и writeln. Английское слово write переводится - писать, а слово writeln происходит как сокращение от двух английских слов write - писать и line - строка.
Кроме операторов write и writeln мы говорим о процедурах вывода информации.
Что же такое процедура?
Понятие процедуры - одно из основных понятий Паскаля. Ему подобна подпрограмма на языке Бейсик.
Процедура - это некоторая последовательность операторов языка Паскаль, имеющая имя и к которой можно обратиться из любого места основной программы, указав ее имя.
Выше мы говорили об операторах вывода информации, хотя в Паскале, в отличие от Бейсика нет операторов вывода информации, а через служебные слова write и writeln происходит обращение к стандартной или встроенной процедуре вывода информации. Стандартная процедура не нуждается в предварительном описании, она доступна любой программе, в которой содержится обращение к ней. Вот почему обращение к write или writeln напоминает оператор PRINT - вывода информации на языке Бейсик.
Разница между оператором вывода и обращением к процедуре вывода состоит в том, что имя процедуры вывода, как и любой другой процедуры Паскаля не является зарезервированным словом, а, следовательно, пользователь может написать свою собственную процедуру с именем write или writeln. Но это очень редко используется на практике.
Таким образом, операторы write и writeln являются операторами обращения к встроенным процедурам вывода информации.
Обе эти процедуры выводят информацию на экран, если эта информация содержится в виде значений переменных, тогда достаточно в скобках в операторах write или writeln записать имена этих переменных, например: write(a), writeln(f). Если таких переменных несколько, то их записывают через запятую, например: write(a, b, c, d), writeln(e,f, g, h).
Если информацией являются слова, предложения, части слов или символы, тогда она заключается между знаками " ' " - апостроф, например:
write('Введите длину пути'),
writeln('Значение скорости равно')
Возможен одновременный вывод и символьной информации и значений переменных, тогда в операторе write или writeln они разделяются запятыми, например:
write('Значение температуры равно ', t),
writeln('Скорость равна ', v, ' при времени движения ', t).
Заметьте, в конце слов, перед апострофом оставлен пробел.
Для чего это сделано? Конечно, чтобы следующая числовая информация была разделена со словами пробелом.
В чем состоит отличие в работе процедур write и writeln?
Процедура write требует от следующих процедур ввода или вывода, информацию вводить или выводить ее на ту же строку (в одну строку).
Если в программе указан оператор write и за ним следуют еще операторы write или writeln, то выводимая ими информация будет присоединяться к строке информации первого оператора write.
Например: write('Сегодня и завтра будут ');
write('выходные дни ');
На экран выводится:
Сегодня и завтра будут выходные дни
Пробел между словом "будут" и "выходные" обеспечивается за счет пробела в конце первой строки. Если его не будет, то вывод произойдет слитно:
write('Сегодня и завтра будут');
write('выходные дни');
Сегодня и завтра будутвыходные дни
Еще некоторые примеры: t:=20;
write('Время движения равно ');
write(t);
write(' секунд');
Время движения равно 20 секунд
a := 18; b := 12;
write('Сумма чисел равна ');
write(a+b);
write(', а произведение ');
write(a*b);
Сумма чисел равна 30, а произведение 216
Процедура writeln обеспечивает для следующих процедур ввода или вывода информации вводить или выводить ее с начала каждой новой строки.
В программе:
a := 25;
b := 17;
writeln('Сумма и разность чисел равны:');
writeln(a + b);
writeln(a - b);
На экране:
Сумма и разность чисел равны:
Так же, как и для операторов вывода информации, операторы read и reeadln являются операторами обращения к встроенным процедурам ввода информации.
Операторы read (считывать) и readln, который происходит от двух английских слов read (считывать) и line (строка) используются в программах для ввода информации в память компьютера и "считывания" значений в переменную.
Рассмотрим работу этих операторов и процедур ввода информации.
В нашей программе есть процедура readln(a). При выполнении программы, встретив оператор readln, компьютер приостановит работу в ожидании ввода информации. После того, как мы введем с клавиатуры значение переменной a - 16, компьютер присвоит это значение переменной a, т.е. отправит его в ячейку памяти с именем a и продолжит выполнение программы. Этот процесс мы называем "считыванием" значения в переменную.
Итак, процедуры read и readln "считывают" значения переменных и присваивают их тем переменным, которые записаны в них.
Таких переменных может быть несколько, тогда они записываются в этих операторах через запятую, например:
read(a, b, c, n, g, j, i), readln(e,f, k, p, d) и т.п.
Чем же отличается работа процедур read и readln?
Процедура read потребует после себя ввод или вывод информации в одну строку, а процедура readln дает возможность после себя вводить и выводить информацию с начала новой строки.
Например:
В программе: write('Введите значения a и b '); read(a, b);
write('Ввод информации в одну строку');
При выполнении этой части программы, на экран будет выведено все то, что записано в первом операторе write, затем в той же строке будет находиться курсор, и компьютер будет ждать ввода значений a и b. Введем их значения - 2 и 3, разделяя их пробелом или, иначе говоря, через пробел. После этого, в той же строке будет выдана информация записанная в следующем операторе write.
На экране:
Введите значения a и b 2 3 Ввод информации в одну строку
В программе:
writeln('Введите значения a, b и c); readln(a, b, c);
writeln('Ввод и вывод информации с начала строки');
На экране:
Введите значения a, b и c
2 3 4
Ввод и вывод информации с начала строки
В языке Паскаль используются целые числа, к которым относятся все натуральные числа, образовавшиеся в процессе подсчета предметов: 1, 2, 3, 4, 5, 6, ...; отрицательные числа: ..., -6, -5, -4, -3, -2, -1 и число ноль: 0. Целые числа образуют следующий ряд:
..., -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, ...
В Паскале допускается диапазон целых чисел от -32768 до 32767.
Переменные, принимающие целые значения, записываются в разделе описаний с указанием типа integer (целый).
Например: var a, b, c, a1, b34, nomb: integer;
Значения другого типа этим переменным в одной программе присвоить нельзя.
Операция | Обозначение |
Сложение | + |
Вычитание | - |
Умножение | * |
Деление | a_div_b |
Знак "_" означает пробел. Пробелы между именами переменных и названием операции (div) - обязательны. (Происходит от английского division - деление).
Остаток от деления a на b. a_mod_b
Кроме арифметических операций с целыми числами выполняются:
Знак | Наименование | Пример | Пояснение |
< | Меньше | a < 6 | a меньше 6 |
<= | Меньше или равно | b <= 23 | b меньше или равно 23 |
> | Больше | x > 5 | x больше 5 |
>= | Больше или равно | y >= 8 | y больше или равно 8 |
= | Равно | c = 10 | c равно 10 |
<> | Не равно | d <> 3 | d не равно 3 |
Логическая операция | Ее значение | Примеры записи | Значение примера |
AND | Логическое "И" | (x<7) and (x>3) | x меньше 7 и x больше 3 (3<x<7) |
OR | Логическое "ИЛИ" | (y>100) or (y<10) | y больше 100 или y меньше 10 (y<10, y>100) |
NOT | Логическое "НЕ" | not (x=2) | не x равно 2 |
Правила использования операций AND и OR
(Таблица истинности)
a | b | a and b | a or b |
истина | истина | истина | истина |
истина | ложь | ложь | истина |
ложь | истина | ложь | истина |
ложь | ложь | ложь | ложь |
Остановимся немного подробнее на операции целочисленного деления (div) и операции, выдающей остаток от деления (mod).
Так, результатом целочисленного деления 17 на 5 будет 3:
17 div 5 = 3, а результатом деления меньшего числа на большее, будет 0:
46 div 200 = 0.
Делаем вывод, что при целочисленном деление дробная часть отбрасывается, сам термин "целочисленное деление" или "деление нацело" говорит сам за себя.
Операция a div b осуществляет целочисленное деление целого a на целое b.
Дробная часть при этом отбрасывается.
Еще одна интересная операция - остаток от деления a на b.
Понятно, что остатком от деления 17 на 5 будет число 2:
17 mod 5 = 2,
а вот чему будет равен остаток от деления меньшего числа на большее, например, 46 mod 200?
Оказывается, в этом случае, результатом операции будет число 46. Вот другие примеры:
34 mod 125 = 34,
120 mod 6 = 0.
Интересно, что остаток от деления любого целого числа на 10 будет равен последней цифре этого числа:
543 mod 10 = 3, 45 mod 10 = 5, 7 mod 10 = 7.