Форум «Всё о Паскале» _ Задачи _ реализовать операцию деления
Автор: nilson 24.01.2009 23:39
Реализовать операцию деления целых чисел m и n с точностью k десятичных знаков после запятой, где k произвольное фиксированное число..
Автор: Lapp 25.01.2009 9:21
Цитата(nilson @ 24.01.2009 19:39)
где k произвольное фиксированное число..
Есть хоть какие-то ограничения на сами числа и на k?
Автор: nilson 25.01.2009 20:18
ограничений вроде нет... у меня программа, только в ней какая то ошибка.
program zad26; var a,b,k,i:integer; c,des: Real; znak:boolean; writeln('Vvedite a,b'); readln(a,b); writeln('vvedite tochnost'); readln(k);
writeln; write('otvet: ');
if(a*b<0) then znak:=true; a:=abs(a); b:=abs(b);
if (a>=b) then c:=a div b else c:=0;
des:=0.1; a:=a mod b; for i:=1 to k do begin a:=a*10; c:=c+(a div b)*des; des:=des/10; a:=a mod b; end; if znak then c:=c*(-1); writeln(c:20:k); readln; end.
Тегами пользуемся...
Автор: Mnogosisa_pravda_ona 25.01.2009 20:28
nilson, так всё же работает.Только не понятно надо делить m на n или n на m.
Автор: volvo 25.01.2009 21:14
Цитата
так всё же работает
Чтобы все работало, надо как минимум добавить пропущенный begin.
Автор: Mnogosisa_pravda_ona 25.01.2009 22:06
Цитата(volvo @ 25.01.2009 17:14)
Чтобы все работало, надо как минимум добавить пропущенный begin.
А может он не про эту ошибку говорил? Вообще не понятно, по идее эта строчка должна работать
Код
if (a>=b) then c:=a div b else c:=0;
если ввести число в а меньше b ,то он должен обнулить ответ,но он этого не делает.