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ı
Teşekkürler, saygılar.
4 işlem ama bildiğiniz gibi değil
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
4 işlem ama bildiğiniz gibi değil
- Dosya ekleri
-
- 4islem.PNG (2.1 KiB) 1067 kere görüntülendi
Re: 4 işlem ama bildiğiniz gibi değil
Standart bölme işlemi. Yapmak istediğiniz görsel olarak bunu elde etmek mi?
Re: 4 işlem ama bildiğiniz gibi değil
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.
Re: 4 işlem ama bildiğiniz gibi değil
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;
Re: 4 işlem ama bildiğiniz gibi değil
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.
Re: 4 işlem ama bildiğiniz gibi değil
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.
Re: 4 işlem ama bildiğiniz gibi değil
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).