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