Нужно составить программку на Паскале.Задача: Составить программу, которая подсчитывает количество цифр(символов) перед и после запятой. То есть, например, дано число 325,43Программа должна выдать:
3, а затем, 2
- var n:real;
m,k1,k2:integer;
begin
readln (n);
m:=trunc(n);
k1:=0;
if (m=0) then k1:=1 else
while (m0) do
begin
m:=m div 10;
inc(k1);
end;
n:=n-trunc(n);
k2:=0;
while (frac(n)0) do
begin
n:=n*10;
inc(k2);
end;
writeln (k1,’ ‘,k2);end.У меня вот такие наработки, целую часть считает стабильно, а вот с дробной во многих случаях — фиаско, связано наверное с особенностями хранения вещественных чисел в памяти компьютера.Додумался, можно заменить ввод числа вводом строкиvar s:string;
k1,k2:integer;
begin
readln (s);
k1:=0;
k2:=0; if (s[1]=’-‘) or (s[1]=’+’) then delete (s,1,1);if (pos(‘.’,s)=0) then k1:=length(s)
else begin k1:=pos(‘.’,s)-1; delete (s,1,pos(‘.’,s)); k2:=length(s); end;
writeln (k1,’ ‘,k2);
end.