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

Элиза5511 Элиза5511    2   09.08.2019 14:00    0

Ответы
bedniyboyarin bedniyboyarin  04.10.2020 07:26
1. PascalABC.NET 3.2

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.
ПОКАЗАТЬ ОТВЕТЫ
герман2031 герман2031  04.10.2020 07:26
//PascalABC.NET 3.2 сборка 1318

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
Пример вывода:
Нет
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика