Задачи по Pascal. Определить, есть ли среди цифр заданного пятизначного числа цифра 0.

Задачи по Pascal

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

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

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

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

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

  1. Переменные n1,n2,n3,n4,n5 — для цифр числа
  2. Переменная num — для числа
  3. Переменная 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.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий