سلام دوستان
واقعا ممنونم که کمکم کردید مخصوصا دوست عزیزم دلفی
دوست عزيز به اين صورت بنويس :
البته من اين كد رو تو NotePad تايپ كردم اگه غلط دستوري داشت خودت اصلاحش كن .
واقعا ممنون چون رویه کارت باعث شد بتونم مساله رو حل کنم
برنامه شما در این قسمت:
اضافی بود یعنی برای ریختن مقدار توی c[i] نیازی به تبدیل اون به کاراکتر نیست.و این کار برنامه رو فغلط میکنه.
در ضمن در قسمت:
a[i-1]:=1+(Ord(a[i-1])-48);
بعد از اینکه یک واحد اضافه شد دوباره باید chr اون رو توی a[i-1] بریزیم.
در هر صورت کد کامل برنامه رو که دوستان عزیزم بهم کمک کردن بنویسم رو میزارم:
{Written By SAJJAD RAD}
program gold_digit_com2;
uses crt;
var
a,b:array[1..256]of char;
c:array[1..256]of integer;
i,n,temp,p:integer;
flog:boolean;
begin
clrscr;
textcolor(13);
writeln('This Program Is Written By SAJJAD RAD sajjad.273@gmail.com');
writeln('(c) 2009 Radtech Corporation.All Right Reserved.');
writeln('Sum Of Two X Digit(s) Numbers:Complete version');
textcolor(white);
writeln;
writeln;
textcolor(white);
writeln;
writeln('How Many Digits To Sum? Range 1~255');
readln(p);
writeln('Enter ',p,' digit(s) number #1:');
flog:=true;
for i:=1 to p do
begin
if flog=false then
break
else
a[i]:= ReadKey;
if ord(a[i])>57 then
flog:=false;
write(a[i]);
end;
writeln;
if flog=true then
writeln('Enter ',p,' digit(s) number #2:');
for i:=1 to p do
begin
if flog=false then
break
else
b[i]:= ReadKey;
write(b[i]);
end;
writeln;
for i:=p downto 1 do
begin
if flog=false then
break
else
temp:=0;
temp:=(ord(a[i])-48)+(ord(b[i])-48);
if i=1 then
begin
c[i]:=temp;
break;
end
else if temp>9 then
begin
n:=temp mod 10;
c[i]:=n;
a[i-1]:=chr(ord(a[i-1])-47);
end
else if temp<=9 then
c[i]:=temp;
end;
writeln;
if flog=false then
begin
textcolor(red);
writeln('Error! You didn''t enter digit of number');
textcolor(white);
end
else
begin
write('Sum of two ',p,' digit(s) numbers is= ');
for i:=1 to p do
write(c[i]);
end;
writeln;
writeln;
writeln('Press Any Key To Exit...');
writeln;
readln;
end.
این برنامه بجای 20 رقم قادر به جمع دو عدد n رقمی هست اما برای کمتر استفاده شدن حافظه نهایتا 255 رقم در نظر گرفتم.که به راحتی قابل تغییره
بازم از دلفی عزیز ممنونم
واقعا اگر راهنمایی های ایشون نبود این مساله حل نمیشد.