PascalABC.Net:
procedure GetData(var a,b:longint; var k:char);
{ ввод исходных данных }
begin
Write('Введите через пробел натуральные границы диапазона: ');
Readln(a,b);
Write('Введите искомую цифру: ');
Readln(k)
end;
procedure Summa(a,b:longint;k:char;var s:longint);
{ подсчет суммы чисел из интервала [a,b],
содержащих цифру k }
var
i:integer;
ci:string;
begin
s:=0;
for i:=a to b do begin
Str(i,ci);
if Pos(k,ci)>0 then s:=s+i
end
end;
var
a,b,sum:longint;
k:char;
begin
GetData(a,b,k);
Summa(a,b,k,sum);
Writeln('Сумма чисел, содержащих цифру ',k,' равна ',sum)
end.
Тестовое решение:
Введите через пробел натуральные границы диапазона: 50 150
Введите искомую цифру: 6
Сумма чисел, содержащих цифру 6 равна 1589