Другие языки программирования и технологии

Паскаль. Дано натуральное число. Верно ли , что цифра А встречается в нем более К раз.

Дано натуральное число. Верно ли , что цифра А встречается в нем более К раз ( полная программа )
 Program P1; 
uses crt;
label l;
var a: char;
c: string;
i, k, n: byte;
begin
clrscr;
n:=0;
writeln ('Введите с клавиатуры натуральное (целое, >0) число, после чего нажмите клавишу Enter. Внимание: количество данного числа не должно превышать 255.');
write ('Введите натуральное число: ');
readln (c);
for i:=1 to length (c) do if not (c[i] in ['0'..'9']) then begin
writeln ('Ошибка: некорректный ввод.');
goto l;
end;
if c[1]='0' then writeln ('Ошибка: введенное число не является натуральным.') else begin
writeln ('Теперь введите с клавиатуры любую цифру, после чего так же нажмите клавишу Enter.');
write ('Введите цифру: ');
readln (a);
if not (a in ['0'..'9']) then begin
writeln ('Ошибка: некорректный ввод.');
goto l;
end else begin
writeln ('Теперь введите с клавиатуры количество повторений данной цифры в числе (только целое число, не менее 0.)');
write ('Введите количество повторений данной цифры: ');
readln (k);
for i:=1 to length (c) do if c[i]=a then n:=n+1;
if n=k then writeln ('Утверждение, что цифра ', a, ' в числе ', c, ' встречается ', k, ' раз(а), верно.') else writeln ('Утверждение, что цифра ', a, ' в числе ', c, ' встречается ', k, ' раз(а), ложно.');
end;
end;
l:;
write ('Программа завершена. Для выхода нажмите клавишу Enter.');
readkey;
end.
Чынгыз Турсунов
Чынгыз Турсунов
43 559
Лучший ответ
program p1;
var s:string; a,i:char; j,k:integer; c:array['0'..'9']of integer;
begin
write('Число: '); readln(s);
write('Цифра: '); readln(a);
write('Повторяемость: '); readln(k);
for i:='0' to '9' do c[i]:=0;
for j:=1 to length(s) do inc(c[s[j]]);
writeln(c[a]>k);
end.

На длину числа в некоторых версиях Pascal есть ограничение 255 цифр.
Володя Бородин
Володя Бородин
56 731
вот программа помещает цифры в массив, теперь ищи свою цифру и увеличивай счетчик
program cifr; //цифры числа
uses crt;
var i,k,m,mn:Integer;
n:longint;
c:array[1..9] of integer;
begin
clrscr;
writeln(' Cifri chisla');
writeln('----------------------');
writeln;
write('Vvesti chislo ne bolee 9 cifr-->'); readln(n);
k:=0; //определение количества цифр
while n>0 do begin // и запись их в массив
k:=k+1;
c[k]:=n mod 10;
n:=n div 10;
end;
for i:=k downto 1 do
write(c[i]:3);
writeln;
writeln('konec zadachi');
readln;
end.

Похожие вопросы