Rakamsal metni sayısal ifadeye çevirmek

0 beğenilme 0 beğenilmeme
123 kez görüntülendi

Merhabalar yapmış olduğum bir yazılımda üye tablosunda 1 ve 2 lerden oluşan ifadeler var örneğin 1112 , 122122112 gibi yalnız bu değerler şuan 80 haneye kadar çıktı ve daha da artıyor benim sorunum şu ben bu ifadeye bir formül uygulayıp bu metinsel ifadeye sayısal bir değer vermek istiyorum böyle yapmamın nedeni de bunları sıralama yapabilmek için mesela 

1112211222111111 

1211111121111111

gibi iki değer var diyelim bakınca ikincisi daha büyük mesela uyguladığım formulden ilki 180 ikinciside 370 gibi bir değer çıksa ben bu çıkan değere göre bunlara sıralama yapacağım şuanda bu değerler 80 haneye kadar çıktığı için bunu yapamıyorum ayrıca şuan veritabanında bu şekilde 51000 adet kayıt var ve bunların herbiri diğerinden farklı yani birbirinin aynısı olan 2 tane değer yok buna bir çözüm bulamadım matematikçi arkadaşlarım buna bir çözüm bulabilirse çok sevinirim.


4, Nisan, 2016 Serbest kategorisinde full (11 puan) tarafından  soruldu

tam anlayamadım ama tahmin edeyim.Sanırım her harfin bir sayı ile belirtildiğini biliyorsun 80 sayısı F harfine denk geliyor(salladım)  81 (G) harfi gibi 81 2lik tabanda nedir? 1010001=G oluyor .Veya senın dediğin işleme gelirsek 11110101110101011010101010................101010 gibi birifadeyi sayı yapmak istiyorsun ;sana önerim hangi programı kullanıyorsan o programda tabansal değiştirme oparatörlerini internetten araştırman.

benim 1 ve 2lerden oluşan ifadeyi 0 ve birlere dönüştürebilirim sorun yok onda ama dediğiniz gibi denedim ama o da bir çözüm olmadı mesela dediğiniz gibi harflere dönüştürme yapsam 

1010001=G  => 81 e eşit olsa

bu 1 ve 0 lardan oluşan değer 80 haneye kadar çıktı ve daha da artıyor 80 haneli bir ifadeye bunu uygularsak 7 haneli bir değeri 2 hane düşürmüş oluruz bu şekildede 22 yada 23 haneli bir sayı elde ederiz ki ben bununla da işlem yapamam bildiğim kadarıyla matematikte 10 yada 12 haneden sonrasındaki sayılarla işlem yapılmıyor

diziler kullanmayı dene dizilerle "char" üzerinden çok uzun şekillerde işlemler yapabilirsin ben bunu bılıyordum ama unutmuşum dizilerle işlem diye aratabilirsin.

biraz daha açıklayabilirmisiniz mümkünse küçük bir örnekle

hocam longinteger nekadar bilmiyorum ama 2700 000 dü sanırım max sınırı;

53 123 421 ile 4213 i çarpmak istiyorum bunu diziye alıp kaç basamaksa basamaklarına ayırıp çarpıp tekrar işleme sokucam bu anlatıcağım yöntemi şuanda aklıma gelenlerle yaptım çook daha basit yöntemleri vardı oyuzden hocalarınıza veya bu işi bilen birilerine diziler ve char ile çook büyük sayıları nasıl çarparız diye sorabilirsiniz internette de bulamadım.

53 123 421 =(53 000 000+ 123 000+ 421)  diye yazarım bunu 4213 le çarpıcak ve eğer dizi elemanı 7 elemandan fazla ise bunu yapıcak gibi gibi algoritma uydurabilirsiniz amaç longint in sınırını aşmamak zaten bunu pc yapıcagından çok hızlı yapıcaktır ki şuanda kullandıgımız sıstemler bu tarz.

(53 000 000+ 123 000+ 421)x(4213)=53x4213x1000 000+123x4213x1000+421x4213 gibi 0 olmayan ifadeleri çarpıyor bilgisayar sonradanda kaç 0 var ise okadar 0 ekliyor ekrana yazdırıyor. umarım yeterli bir örnektir.Tekrar diyorum bilen birine sorarsanız daha tatmın olabılırsınız.

Elinde sayilar varsa $a-b>0$ ise $a>b$ olur ve $a-b<0$ ise $a<b$ olur. Programin sayi kiyaslama fonksiyonu yok mu? Yoksa da bu sekilde olusturabilirsin. (Tabi programda cikartma islemi ve pozitiflik-negatiflik tanimlanmis ise).

Metini sayiya donusturmek istiyorsan kuralin belli olmali. Ornegin kodlamadaki gibi: A0 B1 C2 D3 E4 ... gibi sayilara rakam verebilirsin. $f(c_1c_2c_3\cdots c_n)$ fonksiyonu olusturup metinini bir sayiya goturebilirsin.

Öncelikler cevabınız için teşekkür ederim , elimdeki veri harfler değil 1  ve 2 lerden oluşan rakamlar örneğin 122122112.................1222 gibi ama 80 haneye kadar çıktığı için matematiksel kıyaslama ve sayısal işlem yapılamıyor bunlarla zaten o işlemleri yapabilmek için sayısal ifadeye dönüştürmek istiyorum

...