Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ реализовать операцию деления

Автор: 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 ,то он должен обнулить ответ,но он этого не делает.