среда, 17 апреля 2013 г.

Нахождение чисел в строке Pascal

Сколько двухзначных чисел в исходной строке делются на 5.

function chs(s:string):integer;
var
l,i,q,j,k1,t,code:integer;
k:string;
begin
l:=length(s);
i:=1;
q:=0;
j:=0;
repeat
k:=copy(s,i,1); //находим числа
val(k,k1,code);
if code=0 then
while code=0 do
begin
t:=k1;
if not((q=0) and (t=0)) then q:=q+1;
i:=i+1;
k:=copy(s,i,1);
val(k,k1,code);
end;
if ((t=5) or (t=0)) and (q=2) then // кратность двухзначность
j:=j+1;
t:=3;
i:=i+1;
q:=0;
k:=copy(s,i,1);
val(k,k1,code);
until i>l-1;
chs:=j;
end;
var
string1:string;
begin
write('Исходная строка: ');
readln(string1);
write('Ответ: ');
write(chs(string1));
write(' двухзначное число кратно 5');
end.

Найти среднее арифметическое всех чисел в тексте

uses crt;
var
a: string;
i,kol: integer;
b:integer;

sum:integer;

begin
writeln('vvedite stroky');
readln(a);
i:=1;
sum:=0;
kol:=0;
while (i<=length(a)) and (a[i]<>'.') do
begin
if ( ord(a[i])-48) in [0..9] then
begin
while ((ord(a[i])-48) in [0..9]) and (i<=length(a)) do
begin
b:=b*10 + (ord(a[i])-48);
i:=i+1;
end;
sum:=(sum + b);
kol:=kol+1;
delete (a, 1, i-1);
i:=1;
b:=0
end;
i:=i+1;
end;
writeln(sum/kol:1:0);
readkey();
end.