4 işlem ama bildiğiniz gibi değil

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Amd64
Üye
Mesajlar: 11
Kayıt: 07 May 2014 12:04

4 işlem ama bildiğiniz gibi değil

Mesaj gönderen Amd64 »

Selam

ekteki resim her şeyi anlatıyor olmalı, hamallık yapmadan en kolay yoldan hangi mantıkla nasıl halledebilirim? Sayılara göre işlemler uzayıp kısalabilir sıkıntı burada? 20 yıldır hasbel kader amatör kod yazıyorum defomuzu çocuğumuz açığa çıkardı :D

Teşekkürler, saygılar.

Resim
Dosya ekleri
4islem.PNG
4islem.PNG (2.1 KiB) 1050 kere görüntülendi
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: 4 işlem ama bildiğiniz gibi değil

Mesaj gönderen mkysoft »

Standart bölme işlemi. Yapmak istediğiniz görsel olarak bunu elde etmek mi?
Amd64
Üye
Mesajlar: 11
Kayıt: 07 May 2014 12:04

Re: 4 işlem ama bildiğiniz gibi değil

Mesaj gönderen Amd64 »

mkysoft yazdı: 29 Eyl 2017 03:06 Standart bölme işlemi. Yapmak istediğiniz görsel olarak bunu elde etmek mi?
Aynen Hocam. Tüm TLabeller boş yada visible false olacak, TTedit'a göre işlem yapacağım. Kısmen hallettim sayılır ama çıkarma işlemlerinde hizalama sıkıntısı oluyor, tüm ihtimaller için (binler onlar yüzler birler vs vs) için 10 larca TLabel kullanabilirim ama dediğim gibi hamallık, Muharrem Hocanın dediği gibi" ince işçilik" istiyor algoritma.
Amd64
Üye
Mesajlar: 11
Kayıt: 07 May 2014 12:04

Re: 4 işlem ama bildiğiniz gibi değil

Mesaj gönderen Amd64 »

Kod: Tümünü seç

   bolunen := lblBolunen.caption;
   bolen   := lblBolen.Caption;
   bolum   := lblBolum.Caption;
   i       := Length(bolen); // bölenin karakter uzunluğu

   //SOL BAŞTAN bölünen bölenden büyük olacak şekilde sayı al
   bolunenHane := leftstr(bolunen,i);
   if bolunenHane<bolen then
   bolunenHane := leftstr(bolunen,i+1);

   bolum  := inttostr(strtoint(bolunenHane) div strtoint(bolen));
   deg1   := inttostr(strtoint(bolum)        *  strtoint(bolen));
   kalan1 := inttostr(strtoint(bolunenHane)  -  strtoint(deg1));

   lblBolum.Caption  := bolum;
   lbldeg1.Caption   := deg1;
   lblkalan1.Caption := kalan1;
gibi denemeler yapıyorum ama ... class bilmiyorum record la bir alt yapı kurmaya çalışacağım
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: 4 işlem ama bildiğiniz gibi değil

Mesaj gönderen mkysoft »

düzgün hizalanması için system fontunu kullanabilirsiniz, her karakter aynı genişliktedir bu fonta. div ile bolumu, mod ile kalanı bulabilirsiniz. Yaptığınız işlemleri bir döngü içinde yapabilirsiniz.
onur2x
Üye
Mesajlar: 19
Kayıt: 29 Şub 2016 12:20

Re: 4 işlem ama bildiğiniz gibi değil

Mesaj gönderen onur2x »

Eğer yanlış anlamadiysam. Tüm labelleri alt alta koyun autosize false yapın belli bir uzunluk verin Label aligment left yada right kullanarak hangisi sağ hangisi sol tarafa yazılacağını hizalayin.
Amd64
Üye
Mesajlar: 11
Kayıt: 07 May 2014 12:04

Re: 4 işlem ama bildiğiniz gibi değil

Mesaj gönderen Amd64 »

onur2x yazdı: 04 Eki 2017 01:39 Eğer yanlış anlamadiysam. Tüm labelleri alt alta koyun autosize false yapın belli bir uzunluk verin Label aligment left yada right kullanarak hangisi sağ hangisi sol tarafa yazılacağını hizalayin.
Hocam left yada right kullanınca her iki sayı aynı uzunlukta değilse olmuyor. örneğin 9-8, 15-8 ve 48-25 işlemlerinde kalan karakter uzunluğu aynı olmadığı için hizalamaları da aynı değil, bunu kontrol eden function yazacağım (yada kalan sayının soluna gerektiği kadar sıfır bastırmak lazım).
Cevapla