Целочисленная арифметика
Составила Иванова Ирина Витальевна
Контроль знаний Тест: Вычисление по формулам
Вопросы для повторения:
1. Перечислите этапы решения задачи.
2. Каковы основные этапы алгоритма решения задачи?
3. Какой оператор предназначен для ввода данных в Паскале ABC?
4. Какой оператор предназначен для вывода данных в Паскале ABC?
5. Для чего применяются одинарные кавычки при использовании оператора вывода?
6. Зачем применяют двоеточие вместе с оператором вывода?
7. Чем отличается Write () от Writeln ()?
8. Чем отличается Read () от Readln ()?
9. Когда в алгоритме программы ставится ; (точка с запятой)?
Целый тип данных
Переменные целого типа описываются посредством идентификатора 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 .
Пример 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 .
Пример 3. Дано действительное число a. Используя только пять операций умножения получить a 15 .
Этапы выполнения задания.
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 .
Пример 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 .
Программа:
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 .
Проверка знаний
Тест: Операторы целочисленной арифметики div и mod
Тест: Целочисленная арифметика
Тест: Линейные алгоритмы. Целочисленная арифметика
Задачи для самостоятельного решения
- Задано двухзначное число. Чему равна последняя цифра числа?
- Задано двухзначное число. Чему равна первая цифра числа?
- В двухзначное число вписать ноль в середину и получить трехзначное число.
- Найдите сумму цифр заданного трёхзначного числа.
- Найдите цифры заданного четырёхзначного числа.
- Задано пятизначное число. Найдите цифры и сумму цифр пятизначного числа.
7. С начала суток прошло k минут. Определите сколько сейчас часов и минут.
8. Идёт k-я секунда суток. Определить который сейчас час (в часах, минутах и секундах). Например, если k=13257=3*3600+40*60+57, то часов - 3, минут - 40, секунд - 57.
9. Робинзон Крузо провёл на острове f дней. Сколько полных недель он пробыл на острове?
10. Поезд перевозит s тонн груза. Сколько автомобилей грузоподъемностью b тонн (b
11. Дано действительное число a. Не пользуясь никакими другими операциями кроме умножения, получить:
a) a 13 за пять операций;
b) a 21 за шесть операций;
c) a 3 и a 10 за четыре операции;
d) a 4 и a 12 и a 28 за шесть операций.
Источник: http://svgimnazia1.grodno.by/sinica/Book_ABC/Book_ABC_pascal/lin4.htm