
Нужна ваша помощь. Необходимо написать программу в PascalABC и лучше с объяснениями. Сам не
понимаю. Дано натуральное число. Верно ли, что в данном числе нет данной цифры А (цифру А вводить с клавиатуры)

Ответы на вопрос

begin
var s:=ReadlnString('Введите натуральное число:');
var c:=ReadlnChar('Введите цифру для поиска:');
if Pos(c,s)>0 then Writeln('Такая цифра есть')
else Writeln('Такой цифры нет')
end.
2. PascalABC.NET любой версии, Free Pascal и т.д. на строках
var
s:string;
c:char;
begin
Write('Введите натуральное число: '); Readln(s);
Write('Введите цифру для поиска: '); Readln(c);
if Pos(c,s)>0 then Writeln('Такая цифра есть')
else Writeln('Такой цифры нет')
end.
3. То же, но без строк, с циклом
var
n:longint;
d:0..9;
begin
Write('Введите натуральное число: '); Read(n);
Write('Введите цифру для поиска: '); Read(d);
while n>0 do begin
if n mod 10=d then begin
Writeln('Такая цифра есть');
Exit
end;
n:=n div 10
end;
Writeln('Такой цифры нет')
end.



Var
n,a:integer;
b:boolean;
begin
b:=true; //"флаг", указывающий на результат
readln(a); //вводим цифру
readln(n); //вводим число
while n>0 do //пока число не равно 0
if n mod 10=a then //mod 10 возвращает последнюю цифру числа
begin
b:=false; //если эта цифра равна а, тогда "флаг" меняет своё значение
break; //и выходим из цикла
end
else
n:=n div 10; {иначе посредством div 10 убираем самый правый разряд. Если левый аргумент меньше 10, он вернёт 0 и тем самым завершит цикл}
if b=true then writeln('Да') else writeln('Нет'); {"флаг" остаётся true только если не встретилось совпадений в цикле}
end.
Пример ввода:
3
123
Пример вывода:
Нет



Конечно, я готов помочь. Программу на PascalABC, проверяющую наличие цифры в натуральном числе, можно написать следующим образом:
```pascal program CheckDigit;
var number, digitToCheck: Integer; isDigitPresent: Boolean;
begin // Вводим натуральное число write('Введите натуральное число: '); readln(number);
// Вводим цифру для проверки write('Введите цифру для проверки (0-9): '); readln(digitToCheck);
// Инициализируем переменную, указывающую, верно ли, что цифры нет в числе isDigitPresent := false;
// Проверяем каждую цифру числа while number > 0 do begin // Получаем последнюю цифру числа if number mod 10 = digitToCheck then begin // Если цифра найдена, устанавливаем флаг и выходим из цикла isDigitPresent := true; break; end;
// Убираем последнюю цифру из числа number := number div 10; end;
// Выводим результат if isDigitPresent then writeln('Цифра ', digitToCheck, ' присутствует в числе.') else writeln('Цифра ', digitToCheck, ' отсутствует в числе.');
readln; end. ```
Объяснения:
1. Программа начинается с объявления переменных `number` (для ввода натурального числа), `digitToCheck` (для ввода цифры, которую нужно проверить), и `isDigitPresent` (логическая переменная, указывающая, есть ли цифра в числе).
2. Затем пользователь вводит натуральное число и цифру для проверки.
3. Используется цикл `while`, чтобы проверить каждую цифру в числе. Цифры извлекаются с помощью операции остатка от деления на 10, и каждый раз убирается последняя цифра с помощью деления на 10.
4. Если цифра совпадает с введенной для проверки, устанавливается флаг `isDigitPresent` в `true`, и программа выходит из цикла.
5. По завершении цикла выводится результат - присутствует ли введенная цифра в числе.
6. Программа завершается после ввода результата пользователем.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili