Нужно составить программку на Паскале.
10-11 класс
|
Задача: Составить программу, которая подсчитывает количество цифр(символов) перед и после запятой. То есть, например, дано число 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 (m<>0) 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.
Другие вопросы из категории
заранее огромное спасибо!!
название цифр десятичной системы счисления; С - несколько соединенных между собой компьютеров.
В ответ запишите найденные слова.
помогите пожалуйста
Читайте также
2. Составить задание на разработку программы на разветвляющиеся структуры в QBASIC
3. Составить задание на разработку программы циклической структуры в QBASIC
Нужно задание + сама программа
для следующего графика, на фото...
Царевна-лягушка съедает ежедневно на 20 % комаров больше, чем в предыдущий день, и еще 2 комара. Через сколько дней количество съеденных комаров в день превысит 100, если в первый день было съедено 12 комаров.
Воспользуйтесь словесным алгоритмом.
1)i:= 1
2)s:=12
3)если s<=100, то п.4, иначе 6
4)i:=i+1
5)s:=1.2*s+2, перейти к п.3
6)вывод i
7)конец