Значение и запись числа
Для сигнала о том, что цифры числа образуют нужную последовательность, будем использовать логическую переменную log. program vozrcifri; Var n,a,b:longint; log:boolean; Begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); log:=true; с самого начала считаем, что последовательность возрастающая a:=n mod 10; берем последнюю цифру числа n:=n div 10; отрезаем ее while n>0 do бежим по цифрам числа begin b:=n mod 10; берем вторую цифру с конца if a<b then begin log:=false;break end; если последовательность не возрастающая, то выходим из цикла n:=n div 10; иначе отрезаем цифру a:=b; копируем цифру end; if log then write('YES') выводим результат else write('NO'); close(output); End. При работе с целыми числами в Паскале необходимо всегда помнить о диапазонах изменения целочисленных типов и занимаемой памяти. Вот они:
Над целыми числами, оставаясь в множестве целых чисел, можно выполнять следующие арифметические операции: сложение, вычитание, умножение, целочисленное деление, получение остатка от деления. Знаки этих операций: + - * div mod Операции отношения равенство =,неравенство <>, больше или равно >=, меньше или равно <=, больше >,меньше <., примененные к целым операндам, дают результат логического типа TRUE или FALSE (истина или ложь). Например: 2<3 TRUE 2>3 FALSE К аргументам целого типа применимы следующие стандартные (встроенные) функции, результат выполнения которых имеет целый тип: Abs(X), Sqr(X), Succ(X), Pred(X), и которые определяют соответственно абсолютное значение числа Х, Х в квадрате, следующее значение Х+1, предыдущее значение Х-1. Результат выполнения функции Odd(X) - проверки целого числа на нечетность имеет значение TRUE, если аргумент нечетный, и значение FALSE, если аргумент четный: X=5 Odd(X)=TRUE X=4 Odd(X)=FALSE. Для быстрой работы с целыми числами определены процедуры: Inc(X) равносильно X:=X+1 Inc(X,N) равносильно X:=X+N Dec(X) равносильно X:=X-1 Dec(X,N) равносильно X:=X-N Где X и N- целые числа. Самое интересное из целочисленных делений, это деление на 10. Оно обладает замечательными свойствами, которые оказываются незаменимыми при решении задач. 235 mod 10=5, т.е. деление на 10 позволяет находить последнюю цифру числа. 235 div 10=23, отрезает последнюю цифру числа. Соответственно 235 mod 100=35, позволяет находить две последние цифры числа, 235 div 100=2, отрезает две последние цифры числа. Для того, чтобы поменять значения двух переменных местами мы будем использовать процедуру swap. Procedure swap(var a,b: integer); тип a и b может быть изменен Var k: integer; Begin k:=a; a:=b; b:=k; End; Можно обойтись и двумя переменными. Procedure swap(a, b:integer); Begin A:= A xor B; B:= A xor B; A:= A xor B; End; Где операция xor это операция исключающего «или».
Значение и запись числа
Очевидно, что каждое целое число соответствует какому-то количеству. Очевидно также, что каждое целое число мы привыкли записывать определенным образом, а именно — в десятичной системе, с помощью арабских цифр.
Несмотря на всю очевидность этих утверждений, понимание существенных различий между количеством и записью часто вызывает сложности. Попробуем разобраться в этом.
Количество абсолютно. Независимо от того, на каком языке мы думаем и говорим, независимо от того, каким способом мы записываем числа, три — это всегда три, а семь — всегда семь.
Запись числа относительна. Число, которое по-русски называется СЕМЬ, по-английски называется SEVEN. В десятичной системе это число записывается как 7, в троичной — 21, а б двоичной — 111. В римской записи то же самое число выглядит так: VII. Но все эти записи соответствуют одному и тому же количеству. Это и означает, что запись относительна, а количество абсолютно, то есть не зависит от записи.
Рассмотрим, например, два элементарных факта: число 1999 простое, в числе 1999 три девятки. Они относятся к разным объектам: первый характеризует количество, второй — форму записи числа. Тот факт, что число 1999 простое, никак не зависит от того, каким способом мы это число записываем. Это характеристика числа как такового, характеристика количества. А три девятки в этом числе возникают благодаря десятичной записи.
Этот пример еще раз показывает абсолютность количества и относительность записи.
Воспринимая число, человек часто не отделяет количество от привычной формы записи. Простота числа 1999 и наличие в нем трех девяток многие воспринимают как факты одного порядка, как характеристики одного и того же объекта. Мы легко оперируем такими понятиями, как "количество цифр" и "первая цифра числа", не уточняя, что речь при этом идет не о числе, а о его записи, и часто даже не задумываемся об этом.
В обыденной жизни и в математике на уровне начальной школы такая вольность вполне допустима, но для программиста она уже непростительна. Давайте с самого начала четко разграничивать понятия и называть число числом, а запись — записью.
|