Задачи по Pascal. Определить, есть ли среди цифр заданного трехзначного числа одинаковые.

pascalУсловие задачи : Написать программу, которая печатает TRUE или FALSE в зависимости от того, выполняются или нет указанные условия.  Определить, есть ли среди цифр заданного трехзначного числа одинаковые.
(Язык Pascal)

Сложность: легкая.

 

Решение задачи :

 

Для начала продумаем наше решение. Все просто, сначала разобьем число на цифры потом составим логическое выражение.

Для того чтобы решить задачу нам понадобятся следующие переменные:

1. Переменные n1,n2,n3 — для цифр числа
2. Переменная number — для числа
3. Переменная res — для True или False

Начнем мы с каркаса нашей программы :

var
    number, n1, n2, n3 : integer; // объявляем 
    res : boolean; // переменные
begin
    write('Введите трехзначное число : '); readln(number); // просим пользователя ввести число
    
    readln; // чтобы программа не закрывалась
end.

Тут мы объявили все переменные и попросили пользователя ввести число. Дальше нам надо разбить число на цифры делать это мы будем с помощью операций mod и div.
Если вы не понимаете как они работают ОБЯЗАТЕЛЬНО читайте про них (тут).

Допустим у нас есть число 123, мы пишем:

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)); // проверяем если одинаковые цифры

or — значит или. Читается так n1 равно n2 или n1 равно n3 или n2 равно n3, т.е. если хоть какая-нибудь пара цифр равна, то у нас будет True.

Всё решение задачи Pascal :

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.

Вот результат :

zadachi-po-pascal-opredelit-est-li-sredi-cifr-zadannogo-trexznachnogo-chisla-odinakovye

Написать ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *