Даны два натуральных числа (числа вводим с клавы). Найти цифры каждого числа, которые встречаются не по одному разу в записи чисел. И ещё одна:
Даны две строки (строки вводим с клавы). Найти символы каждого числа, которые встречаются не по одному разу в записи этих строк. Язык - Паскаль, помогите, срочно!
Ответы
Ответ дал:
0
type
Digits=array[0..9] of byte;
procedure RD(n:integer; var ad:Digits; var f:boolean);
{ заполняет массив количеством повторений цифр числа n
f=True, если хоть одна цифра повторяется }
var
i,d:byte;
begin
for i:=0 to 9 do ad[i]:=0;
f:=False;
while n>0 do begin
d:=n mod 10;
ad[d]:=ad[d]+1;
if ad[d]>1 then f:=True;
n:=n div 10
end;
end;
var
i,j,n,k:integer;
a:Digits;
f:boolean;
begin
for i:=1 to 2 do begin
Write('n = '); Read(n);
n:=Abs(n); { против ввода отрицательных }
RD(n,a,f);
if f then begin
Write('Встречаются больше одного раза цифры ');
for j:=0 to 9 do
if a[j]>1 then Write(j,' ');
Writeln
end
else Writeln('Все цифры в числе уникальны')
end
end.
Пример
n = 153632
Встречаются больше одного раза цифры 3
n = 1030041
Встречаются больше одного раза цифры 0 1
var
s,sr:string;
c:char;
i,j,n,p:byte;
begin
for i:=1 to 2 do begin
Write('Введите строку: '); Readln(s);
n:=Length(s);
sr:='';
for j:=1 to n do begin
c:=s[j];
if Pos(c,Copy(s,j+1,n-j))>0 then sr:=sr+c+' ';
end;
if Length(sr)>0 then Writeln('Встречаются больше одного раза символы ',sr)
else Writeln('Все символы в строке уникальны')
end
end.
Пример
Введите строку: информатика
Встречаются больше одного раза символы и а
Введите строку: проблема
Все символы в строке уникальны
Digits=array[0..9] of byte;
procedure RD(n:integer; var ad:Digits; var f:boolean);
{ заполняет массив количеством повторений цифр числа n
f=True, если хоть одна цифра повторяется }
var
i,d:byte;
begin
for i:=0 to 9 do ad[i]:=0;
f:=False;
while n>0 do begin
d:=n mod 10;
ad[d]:=ad[d]+1;
if ad[d]>1 then f:=True;
n:=n div 10
end;
end;
var
i,j,n,k:integer;
a:Digits;
f:boolean;
begin
for i:=1 to 2 do begin
Write('n = '); Read(n);
n:=Abs(n); { против ввода отрицательных }
RD(n,a,f);
if f then begin
Write('Встречаются больше одного раза цифры ');
for j:=0 to 9 do
if a[j]>1 then Write(j,' ');
Writeln
end
else Writeln('Все цифры в числе уникальны')
end
end.
Пример
n = 153632
Встречаются больше одного раза цифры 3
n = 1030041
Встречаются больше одного раза цифры 0 1
var
s,sr:string;
c:char;
i,j,n,p:byte;
begin
for i:=1 to 2 do begin
Write('Введите строку: '); Readln(s);
n:=Length(s);
sr:='';
for j:=1 to n do begin
c:=s[j];
if Pos(c,Copy(s,j+1,n-j))>0 then sr:=sr+c+' ';
end;
if Length(sr)>0 then Writeln('Встречаются больше одного раза символы ',sr)
else Writeln('Все символы в строке уникальны')
end
end.
Пример
Введите строку: информатика
Встречаются больше одного раза символы и а
Введите строку: проблема
Все символы в строке уникальны
Ответ дал:
0
1. Нет такого языка PascalABC. Был раньше Pascal ABC (через пробел!), но с сентября 2007 года проект закрыт и разработчиками не поддерживается. Уже десять лет, как актуален PascalABC.NET, но это гораздо более совершенный язык и его код может быть невыполним в Pascal ABC
Ответ дал:
0
Так что или пробел вставляйте, или .NET добавляйте.
Ответ дал:
0
2. Эти программы и в "ABC-паскалях" будут работать
Ответ дал:
0
Спасибо!
Вас заинтересует
2 года назад
2 года назад
8 лет назад
8 лет назад
8 лет назад