Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > [PascalABC]пр-ма умножения длинных десятич.чисел


Автор: ДевочкаСтудентка 4.12.2012, 21:57
Суть задачи: Заданы 2 строки десятичных символов (длинное десятичное число в символьной форме) Разработать программу умножения первого десятичного числа на второе. Произведение в форме строки с десятичными символами. (результаты в диаграмме).
Я написала, но проблема в том, что числа должны быть длинными, а у меня перемножаются только максимум четырехзначные, может кто объяснит, что не так.. 
Код Pascal
Код



program diagram;
uses crt, GraphAbc;
Const
naz: array [1..2] of string= ('желтый','зеленый');
col: array [1..3] of integer = (clYellow, clLime, Clred);
var f:text;
a:array[1..10] of integer;
u, u0,s,n,i,x:integer;
begin
setWindowSize (450,450); {размер окна} s:=0; u0:=0;
SetFontSize(16); {размер шрифта}
assign (f,'C:\123\data.txt');
reset (f);
n:=0;
while not eof (f) do
begin
inc (n);
read (f,a[n]);
end;
close (f);
for i:=1 to 2 do S:=S+a[i]; {вычисление сумарной площади}
for i:=1 to 2 do
begin
SetBrushColor(col[i]);      {цвет заливки}
u:=u0 + round (a[i]*360/S)+1;
Pie (200,240,140,u0,u); {рисование сектроа}
textout (0,0+((i-1)*25), inttostr(a[i]));
u0:=round ((a[i]*100)/S);
textout(300,0+((i-1)*25), inttostr(u0)+'%');
u0:=u;
end;
SetBrushColor(col[3]); {ЦВЕТ ЗАЛИВКИ КРАСНЫЙ}
S:=a[1]*a[2];
textout (0,50,'Произведение чисел = '+inttostr(S));
end.
 
 


знаю что проблемы с типом данных, там вовсе не int должен быть, ибо 255 символов маловато..  help me please

Автор: DYUMON 11.12.2012, 13:57
вместо integer используй double 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)