PDA

View Full Version : سوال: الگوریتم مبنای دهدهی به 11



arkia
یک شنبه 31 مرداد 1389, 12:35 عصر
با عرض سلام و خسته نباشید خدمت دوستان برنامه نویس!
دنبال یه کد با دلفی یا الگوریتم می گردم که مبنای ده دهی رو به مبنای 11 ببره اگه لطف کنین راهنمایی کنین ممنون میشم.
فرمول و روش محاسبه روی کاغذ رو بلدم فقط میخوام تبدیلش کنم به برنامه:

به هر رقم از راست به چپ یک عامل ضرب تخصیص میدهیم.
عوامل ضرب از 2 شروع می­شود تا 7 ادامه دارد و پس از رسیدن به عدد 7 مجدداً از 2 شروع میکنیم.
حاصل ضرب هر رقم در عامل ضربی مقابل آن محاسبه میشود.تمامی نتایج با هم جمع میشود.

مثلا برای عدد 123456789 :



(1*4)+(2*3)+(3*2)+(4*7)+(5*6)+(6*5)+(7*4)+(8*3)+(9 *2)=174



ممنون میشم اگه راهنمایی هاتون رو در غالب مثال بگین

Felony
یک شنبه 31 مرداد 1389, 13:12 عصر
براتون یه تابع نوشتم ، کافی بود خودتون یکم روش وقت میزاشتید :

Function DecTo11(Const Number: String): Integer;
var
TempArr: Array of Integer;
DigitNO, MultipleNum: Integer;
begin
MultipleNum:= 2;
// Set length of array to length of passed Number as parameter
SetLength(TempArr, Length(Number));
// Spilit each digit of entered number from end to begin & multiple it with
// MultipleNums & store it in TempArr
for DigitNO:= Length(Number)-1 downto 0 do
begin
if MultipleNum > 7 then
MultipleNum:= 2;
TempArr[DigitNO]:= (StrToInt(Number[DigitNO + 1]) * MultipleNum);
Inc(MultipleNum);
end;
// Set Result to 0 & plus all numbers stored on TempArr
Result:= 0;
for DigitNO:= 0 to Length(TempArr)-1 do
Result:= Result + TempArr[DigitNO];
end;

مثلا :
ShowMessage(IntToStr(DecTo11('123456789')));

Delphi7_love
یک شنبه 31 مرداد 1389, 13:24 عصر
سلام اینم یکی :

procedure TForm1.Button1Click(Sender: TObject);
var;
i,j,c,sum:integer;
begin
j:=length(edit1.Text);
c:=2;
sum:=0;
for i:=1 to length(edit1.Text) do
begin
sum:=sum+(strtoint(edit1.text[j])*c) ;
if c=7 then
c:=2
else c:=c+1;
j:=j-1;
end;
edit2.Text:=inttostr(sum);
end;