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

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

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

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

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

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

  • Переменные n1,n2,n3 — для цифр числа
  • Переменная number — для числа
  • Переменная 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
    .

    Беликова Ирина

    Учитель физики, информатики и вычислительной техники. Победитель конкурса лучших учителей Российской Федерации в рамках Приоритетного Национального Проекта "Образование".

    Оцените автора
    Добавить комментарий