Arsip: strto...

 
user image
more 14 years ago

brodien

halo pak gimana ya caranya buat string jadi operator math misal var tambah:string tambah:='+'; 5 tambah 5 = 10; ============== gimana ya caranya :lol: :oops: :oops: :oops: makasih
user image
more 14 years ago

Manz

mungkin saya rasa gak bisa dech ... kecuali fortran yang bisa nyimpen operator di variable dan dikenali sebagai operator. Kalo yang di-inginkan sama brodien itu 5 tambah 5 = 10; itu mungkin harus diparsing menggunakan metode teknik kompilasi kali ya ... :mrgreen:
user image
more 14 years ago

w4h703

wah mas apa malah gak capek tuch, mo operasi tambah aja arus nulis
5 tambah 5 =
klo dari pengalamanku nyobain seperti itu mah paling cukup nulis 5+5 trus dienter keluar 10, ato 5+59-2 trus dienter, keluar dech 48. itupun caranya betul kata kang @manz_delphi, arus menggunakan teknik parser. Tapi prinsipnya bisa banget. sampeyan tinggal deteksi inputstring aja dibandingin ama karakter2 khusus kaya +,-, ,/ dsb tapi jg tidak menutup kemungkinan klo mo pake tambah, kurang, bagi, kali, dsb. kalo ketemu simpan sebagai operator, klo yg ditemuin angka simpen sebagai operand. dst...dst... Tergantung kreatifitas lach.... tip: belajar dulu nich yang namanya parser generator.
user image
more 14 years ago

ichan29

@brodien: gimana ya caranya buat string jadi operator math ato mungkin km bisa buat function "MATHKU" yg terdiri dari yg km mau, misal: function xxAdd(S1: string; S2: string) : string; var X1,X2,z1,z2,X : string; dl1,dl2,p1,ls : byte; Sisa : extended; function zAdd : string; var X : string; begin X := floatToStr(strToFloat(z1) + strToFloat(z2) + Sisa); if length(X) > length(z1) then begin Sisa := strToFloat(copy(X, 1, length(X) - length(z1))); delete(X, 1, length(X) - length(z1)); end else Sisa := 0; while length(X) < length(z1) do X := '0' + X; ZAdd := X; end; begin X1 := DelBotBla(S1); X1 := DelAllChar(ThousandSeparator, X1); X2 := DelBotBla(S2); X2 := DelAllChar(ThousandSeparator, X2); dl1 := DecimalPoint(X1); dl2 := DecimalPoint(X2); if dl1 > dl2 then X2 := InsTraZero(X2, length(X2)+dl1-dl2) else if dl1 < dl2 then begin X1 := InsTraZero(X1, length(X1)+dl2-dl1); dl1 := dl2; end; if length(X1) < length(X2) then X1 := InsLeaZero(X1, length(X2)) else if length(X1) > length(X2) then X2 := InsLeaZero(X2, length(X1)); Sisa := 0; X := ''; ls := length(X1); while ls > 0 do begin if ls > 10 then p1 := 10 else p1 := ls; z1 := copy(X1, ls-p1+1, p1); z2 := copy(X2, ls-p1+1, p1); X := zAdd + X; dec(ls, p1); end; if Sisa > 0 then X := floatToStr(Sisa) + X; if dl1 > 0 then insert(DecimalSeparator, X, length(X)-dl1+1); while (length(X) > 1) and (pos('0', X) = 1) do delete(X, 1, 1); if pos('.', X) = 1 then X := '0' + X; xxAdd := X; end; smoga membantu.
more ...
  • Pages:
  • 1
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com