Нужна ваша помощь. Необходимо написать программу в PascalABC и лучше с объяснениями. Сам...

0 голосов
37 просмотров

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


Информатика (15 баллов) | 37 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

//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
Пример вывода:
Нет

(38.6k баллов)
0

Спасибо

0

Напиши в лс

0

Пожалуйста

0 голосов
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.
(150k баллов)
0

не ожидал вас снова увидеть)))00))0