Целый тип данных
Переменные целого типа описываются посредством идентификатора
Integer. Они могут принимать значения в
диапазоне от -32768 до 32767. К данным целого типа можно
применить операции "+"-сложение, "-"-вычитание,
"*"-умножение и некоторые другие.
Так как в результате деления одного целого числа на другое не
всегда получается целое число, то имеются операции:
div
- целая часть от деления;
mod
- остаток от деления.
Примеры
19
div
4=4
12
div
4=3
-21
div
4=-5
-7
div
(-4)=1
45
div
10=4
19
mod
4=3
12
mod
4=0
-21
mod
4=-1
-7
mod(-4)=-3
45
mod
10=5
Примечание.
Переменной целого типа присваивать значение,
получаемое в результате выполнения обычной операции деления "/",
нельзя, так как при делении
одного числа на другое целое число результат не всегда является
целым числом. При использовании операторов
div
и
mod
переменные описываются как переменные целого типа, т.е.
,например, integer или longint.
Решение задач
Пример
1.
Заданы
два целых числа
k
и
d.
Используя только арифметические операции, найдите целую и
дробную части от деления
k
на
d
Этапы выполнения
задания.
I. Определение исходных данных: переменные
k,d.
II. Определение результатов: переменные
cel, drobn.
III. Алгоритм решения задачи.
1. Ввод исходных данных
2. Вычисление значений
cel=k div d, a=k/d, drobn=a-cel.
3. Вывод результата.
IV. Описание переменных:
Переменные
a,drobn имеют тип
real, а переменные k,d,cel имеют
тип integer..
V. Программа:
var a,drobn:real;
k,d,cel:integer;
Begin
writeln('введите два числа'); readln(k,d);
cel:=k div
d; {целочисленное деление}
a:=k/d; {обычное
деление}
drobn:=a-cel;
writeln('целая часть - ',cel);
writeln('дробная часть - ',drobn);
Еnd.
Можешь
загрузить!
Пример 1
VI. Тестирование
1. Запустите программу и введите значения
k=2, d=3
Проверьте, результат должен быть следующим:
cel= 1, drobn= 0.666666666667
Проверить правильность вычислений можно на
калькуляторе.
2. Заполните таблицу
|
k |
d |
cel |
drobn |
1 |
20 |
6 |
|
|
2 |
51 |
13 |
|
|
3 |
123 |
26 |
|
|
Пример
2.
Дано
трехзначное число. Чему равны его цифры?
Этапы выполнения
задания.
I. Определение исходных данных: переменная а
(трехзначное
число).
II. Определение результатов: переменные
с1,с2,с3 (цифры числа).
III. Алгоритм решения задачи.
1. Ввод исходных данных
2. Выделение цифр числа:
c1:=a div 100;
c2:=(a mod 100) div 10; {или
c2:=(a div 10) mod 10;}
c3:=a mod 10;
3. Вывод результата.
IV. Описание переменных:
Все переменные, определенные для решения
задачи, имеют тип
integer.
V. Программа:
var a,с1,с2,с3:integer;
Begin
writeln('введите трёхзначное число ');
readln(a);
c1:=a div 100;
c2:=(a mod 100) div 10; {или
c2:=(a div 10) mod 10;}
c3:=a mod 10;
writeln('первая цифра -',c1);
writeln('вторая цифра -',c2);
writeln('третья цифра -',c3);
Еnd.
Можешь
загрузить!
Пример 2
VI. Тестирование
1. Запустите программу и введите значения
a=234
Проверьте, результат должен быть следующим:
первая цифра - 2
вторая цифра - 3
третья цифра - 4
2. Введите другие числа.
Убедитесь в правильности работы программы.
Пример 3.
Дано действительное число a.
Используя только пять операций умножения получить a15.
Этапы выполнения
задания.
I. Определение исходных данных: переменная
а (действительное число).
II. Определение результатов: переменная
s (результат).
III. Алгоритм решения задачи.
1. Ввод исходных данных
2. Вычисление степени по
формуле
b:=a*a;
{вторая степень}
с:=b*b;
{4 степень}
d:=c*a;
{5 степень}
s:=d*d*d;
{15 степень}
3. Вывод результата.
IV. Описание переменных:
Все переменные, определенные для решения
задачи, имеют тип
integer.
V. Программа:
var a,b,c,d,s:integer;
Begin
writeln('введите число a');
readln(a);
b:=a*a;
{вторая степень}
с:=b*b;
{4 степень}
d:=c*a;
{5 степень}
s:=d*d*d;
{15 степень}
writeln('результат = ',s);
Еnd.
Можешь
загрузить!
Пример 3
VI. Тестирование
1. Запустите программу и введите значение
а=2
Проверьте, результат должен быть следующим:
s= 32768
Проверить правильность вычислений можно на
калькуляторе.
2. Заполните таблицу
3. Сравните полученное
значение второй и третьей строки. Получилось 415>515.
Согласны ли вы с компьютером? Почему так
произошло? Потому что указанный вами тип не вмещает значение
515. Измените в алгоритме
программы тип integer на
real. Запустите программу на выполнение. Получим
515=s=30517578125.
Пример
4.
Дано
шестизначное число а.
Найти сумму цифр числа.
Этапы выполнения
задания.
I. Определение исходных данных: переменная а
(шестизначное число).
II. Определение результатов: переменные
с1,с2,с3,c4,c5,c6 (цифры
числа),sum (сумма цифр).
III. Алгоритм решения задачи.
1. Ввод исходных данных
2. Выделение цифр числа:
c1:=a div 100000;
c2:=(a div 10000)
mod 10;
c3:=(a div 1000)
mod 10;
c4:=(a div 100)
mod 10;
c5:=(a div 10) mod
10;
c6:=a mod 10;
3. Нахождение суммы цифр
числа:
sum:=c1+c2+c3+c4+c5+c6;
4. Вывод результата.
IV. Описание переменных:
Все переменные, определенные для решения
задачи, имеют тип
integer.
V. Программа:
var a,с1,с2,с3,c4,c5,c6,sum:integer;
Begin
writeln('введите шестизначное число ');
readln(a);
c1:=a div 100000;
c2:=(a div 10000)
mod 10;
c3:=(a div 1000)
mod 10;
c4:=(a div 100)
mod 10;
c5:=(a div 10) mod
10;
c6:=a mod 10;
sum:=c1+c2+c3+c4+c5+c6;
writeln('Сумма цифр
числа = ',sum);
Еnd.
Можешь
загрузить!
Пример 4
VI. Тестирование
1. Запустите программу и введите значения
a=145879
Проверьте, результат должен быть следующим:
Сумма
цифр числа = 34
Проверить правильность вычислений можно на
калькуляторе.
2. Заполните таблицу
|
a |
s |
1 |
333333 |
|
2 |
456789 |
|
3 |
654321 |
|
Проверка знаний
Тест: Операторы целочисленной арифметики
div и mod
Тест:
Целочисленная арифметика
Тест:
Линейные алгоритмы. Целочисленная арифметика
Задачи
для самостоятельного решения
-
Задано двухзначное число. Чему равна последняя цифра числа?
-
Задано двухзначное число. Чему равна первая цифра числа?
-
В двухзначное число вписать ноль в середину и получить
трехзначное число.
-
Найдите сумму цифр заданного трёхзначного числа.
-
Найдите цифры заданного четырёхзначного числа.
-
Задано пятизначное число. Найдите цифры и сумму цифр
пятизначного числа.
-
С начала суток прошло k минут. Определите сколько сейчас
часов и минут.
-
Идёт k-я секунда суток. Определить который сейчас час (в
часах, минутах и секундах). Например, если k=13257=3*3600+40*60+57,
то часов - 3, минут - 40, секунд - 57.
-
Робинзон Крузо провёл на острове f дней. Сколько полных
недель он пробыл на острове?
-
Поезд перевозит s тонн груза. Сколько автомобилей
грузоподъемностью b тонн (b<<s) он способен заменить?
-
Дано действительное число a. Не пользуясь никакими другими
операциями кроме умножения, получить:
a) a13
за пять операций;
b) a21
за шесть операций;
c) a3
и a10 за четыре операции;
d) a4
и a12 и a28 за шесть операций.