Решить с использованием процедур. указать выделенные , решаемые процедурами. вычислить сумму тех чисел из заданного отрезка [a, b] (a, b — натуральные), в запись которых входит цифра k.
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
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