Регистрация
Войти
Стать экспертом Правила
Информатика

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

ОТВЕТЫ
1. PascalABC.NET 3.2

begin
  var s:=ReadlnString(Введите натуральное число:);
  var c:=ReadlnChar(Введите цифру для поиска:);
  if Pos(c,s)gt;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)gt;0 then Writeln(Такая цифра есть)
  else Writeln(Такой цифры нет)
end.

3. То же, но без строк, с циклом

var
  n:longint;
  d:0..9;
begin
  Write(Введите натуральное число: ); Read(n);
  Write(Введите цифру для поиска: ); Read(d);
  while ngt;0 do begin
    if n mod 10=d then begin
      Writeln(Такая цифра есть);
      Exit
      end;
    n:=n div 10
    end;
  Writeln(Такой цифры нет)
end.
//PascalABC.NET 3.2 сборка 1318

Var
  n,a:integer;
  b:boolean;
begin
b:=true;      //"флаг", указывающий на результат
readln(a);    //вводим цифру
readln(n);    //вводим число
while ngt;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
Пример вывода:
Нет
93
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам