Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие для учеников .doc
Скачиваний:
12
Добавлен:
18.12.2018
Размер:
2.27 Mб
Скачать

§8. Целый тип данных

В Паскале имеется несколько целых типов со знаком и беззнаковые. Однобайтовые типы ShortInt и Byte особенно полезны в больших массивах, если их элементы принимают значения из ограниченного диапазона. Их применение в этом случае позволяет уменьшить требования программы к оперативной памяти.

Целочисленные типы

Тип

Диапазон возможных значений

Формат

Shortint

-128...127

1 байт со зн.

Integer

-32768...32767

2 байта со зн.

Longint

-2147483648..2147483647

4 байта со зн.

Byte

0…255

1 байт без зн.

Word

0...65535

2 байта без зн.

К данным целого типа можно применять операции "+" − сложение, "—" − вычитание, "*" − умножение и некоторые другие.

Так как в результате деления одного целого числа на другое не всегда получается целое число, то имеются операции:

div − целая часть от деления;

mod − остаток от деления.

Примеры:

19 div 4=4; 12 div 4=3;

-21 div 4=-5; -7 div (-4)=1;

19 mod 4=3; 12 mod 4=0;

-21 mod 4=-1; -7 mod (-4)=-3.

Для быстрой работы с целыми числами определены процедуры:

Inc(X) X:=X+1

Inc(X,N) X:=X+N

Dec(X) X:=X-1

Dec(X,N) X:=X-N

Пример 1

Дано целое трехзначное число а. Написать программу выделения количества сотен и количества единиц этого числа.

Program Example_1;

Var a, a1, c: integer;

begin

Writeln('Введите трехзначное число');

Readln(a);

a1:=a mod 10;

c:=a div 100;

Writeln('Количество единиц=', a1,'Количество сотен=', c);

end.

Пример 2

Даны два числа x и y. Написать программу выдачи на печать меньшего из них, пользуясь формулой

min(x, y)=(x+y-(x-y))/2

Program Example_2;

Var x, y, c: integer;

begin

writeln('Введите два числа');

readln(x,y);

c:=(x+y-abs(x-y)) div 2;

writeln('меньшее из двух чисел',x, 'и',y, 'равно', c);

end.

Пример 3

Ввести с клавиатуры 2 целых числа m, n>0. Если m делится на n или n делится на m, то вывести 1, в противном случае – любое другое число.

Program Example_3;

Var m, n, c: integer;

begin

write('Введите 2 натуральных числа:');

readln(m,n);

c:=(m mod n)*(n mod m)+1;

writeln('Ответ: ', c);

end.

Пример 4

Ввести с клавиатуры 2 целых числа m, n>0. Если n≤m, то вывести 1, в противном случае – любое другое число.

Примечание: основная идея решения: n div m=0, если n<m, и n-m=0, если n=m.

Program Example_4;

Var n, m ,r: integer;

begin

write('Введите 2 натуральных числа:');

readln(m,n);

r:=(n div m)*(n-m)+1;

writeln(r);

readln;

end.

Пример 5

Если в четырехзначном числе, введенном с клавиатуры, есть одинаковые цифры, то вывести 1, в противном случае – любое другое число.

Примечание: в переменных a, b, c, d находятся цифры введенного числа, начиная со старшей (разряд тысяч).

Program Example_5;

Var m, n, a, b, c, d: integer;

Begin

write('Введите четырехзначное число: ');

readln(m);

a:=m div 1000; {первая цифра}

b:=m mod 1000 div 100;

c:=m mod 100 div 10;

d:=m mod 10; {последняя цифра}

n:=(a-b)*(b-c)*(c-d)*(d-a)*(a-c)*(b-d)+1;

writeln('Ответ:', n);

readln;

end.