Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Целочисленная арифметика1_6.doc
Скачиваний:
3
Добавлен:
21.07.2019
Размер:
76.8 Кб
Скачать
  1. Выяснить образуют ли цифры натурального числа возрастающую последовательность

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

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

Вот они:

тип

диапазон значений

требуемая память

Shortint

-128 .. 127

1 байта

Integer

32768 .. 32767

2 байта

Longint

-2147483648 ... 2147483647

4 байта

Byte

0 .. 255

1 байт

Word

0 .. 65535

2 байта

Над целыми числами, оставаясь в множестве целых чисел, можно выполнять следующие арифметические операции: сложение, вычитание, умножение, целочисленное деление, получение остатка от деления. Знаки этих операций:

+ - * 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 это операция исключающего «или».