Условие задачи: Написать программу, которая печатает TRUE или FALSE в зависимости от того, выполняются или нет указанные условия. Определить, есть ли среди цифр заданного пятизначного числа цифра 0.
(Язык Pascal)
Сложность: легкая.
Решение задачи
Для начала продумаем решение. Тут довольно всё просто, разобьём число на 5 цифр и потом составим логическое выражение.
Для того чтобы решить задачу нам понадобятся следующие переменные:
- Переменные n1,n2,n3,n4,n5 — для цифр числа
- Переменная num — для числа
- Переменная res — для True или False
Начнем мы с каркаса нашей программы
1
2
3
4
5
6
|
var n1, n2, n3, n4, n5, num : integer ; res : boolean ; begin write ( 'Введите пятизначное число : ' );readln(num); end . |
Тут мы объявили все переменные и попросили пользователя ввести число. Дальше нам надо разбить число на цифры делать это мы будем с помощью операций mod и div.
Если вы не понимаете как они работают ОБЯЗАТЕЛЬНО читайте про них (тут).
Допустим у нас число 12345, мы пишем:
1
2
3
4
5
|
n1 := num div 10000 ; // будет число 1 n2 := num div 1000 mod 10 ; // будет число 2 n3 := num div 100 mod 10 ; // будет число 3 n4 := num div 10 mod 10 ; // будет число 4 n5 := num mod 10 ; // будет число 5 |
Теперь надо узнать есть ли среди всех цифр 0. Мы должны применить логику, давайте сначала на примере одной цифры, пишем:
1
|
res := (n1 = 0 ); |
Мы присвоили переменной res равенство двух чисел, т.е. если n1 равно нулю, тогда res будет True иначе False..
Нам надо проверить есть ли среди 5-ти чисел 0, т.е. если хоть одно число равно нулю, то выводить True, пишем:
1
|
res := ((n1 = 0 ) or (n2 = 0 ) or (n3 = 0 ) or (n4 = 0 ) or (n5 = 0 )); |
Т.е. это выглядит так: n1 = 0 или n2 = 0 или и т.д.
Если хоть одна из цифр равна 0 то у нас будет True .
Всё решение задачи Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
var n1, n2, n3, n4, n5, num : integer ; res : boolean ; begin write ( 'Введите пятизначное число : ' );readln(num); n1 := num div 10000 ; n2 := num div 1000 mod 10 ; n3 := num div 100 mod 10 ; n4 := num div 10 mod 10 ; n5 := num mod 10 ; res := ((n1 = 0 ) or (n2 = 0 ) or (n3 = 0 ) or (n4 = 0 ) or (n5 = 0 )); writeln (res); end . |