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

Mopabiv
Aug 8, 2019
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.
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
Пример вывода:
Нет
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
Смежные вопросы: