Programcı kodları en kısa şekilde kullanmalı yapmak istediğin şey aslında 6 satırda yapılabilir şimdi başka bir yöntemle yaptım istersen diğerini de yazabilirim c# bildiğim için vb de yazmak çok zor oldu :D
Public Class Form1 Dim Sayi1 As Integer Dim Sayi2 As Integer Dim sonuc As Double Dim islem As String Dim yazı As String
Private Sub Button5_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button4.MouseClick, Button3.MouseClick, Button2.MouseClick, Button1.MouseClick
Sayi1 = TextBox1.Text Sayi2 = TextBox2.Text yazı = CType(sender, Button).Text Select Case yazı Case "+" sonuc = Sayi1 + Sayi2 Case "-" sonuc = Sayi1 - Sayi2 Case "/" sonuc = Sayi1 / Sayi2 Case "*" sonuc = Sayi1 * Sayi2
tmm arkadaşım saol ewt programcı kısa yaparda.bnim istediğim o yaptığın gibi deil öle olsa bnde yapardım okadar yapabilioz yani. biz 2 sayıyı toplamicaz istediğimiz kadar toplicaz. ne diyorum windows hesap makinesi gibi...yinede saol.
ek özellikler: eşittir butonu kullanılmicak istediğim kadar sayıyla işlem yapabilicem(mesela text e sayı girilirdiğinde bi kaç kere basıldığında aynı sayıyı toplamicak) yukarıda zatn kodları verdim ama hatalı çalışıo
Dim islem As String Dim sayi1, sayi2 As Integer Dim temizle, sayac As Boolean
Private Sub Form_Load() temizle = True End Sub Private Sub Command1_Click() ekle (1) End Sub Private Sub Command2_Click() ekle (2) End Sub Private Sub Command3_Click() ekle (3) End Sub Private Sub Command4_Click() ekle (4) End Sub Private Sub Command5_Click() arti End Sub Private Sub Command6_Click() carpi End Sub Private Sub arti() temizle = False sayac = True sayi1 = Text1.Text islem = "+" End Sub Private Sub carpi() temizle = False sayi1 = Text1.Text islem = "*" End Sub Private Sub Command7_Click() esittir End Sub Private Sub esittir() sayi2 = Text1.Text Text1.Text = "" Select Case islem Case "+" Text1.Text = sayi1 + sayi2 temizle = False Case "*" Text1.Text = sayi1 * sayi2 temizle = False End Select End Sub Private Sub ekle(x As Integer) If temizle = True Then Text1.Text = Text1.Text & x Else Text1.Text = "" Text1.Text = Text1.Text & x temizle = True End If End Sub
1 den 4 2 kadar olan sayılar ve toplama çarpma işlemi yapmakta. sürekli + ya basınca işlem yapmıyor o ayrı.
ya bn hepsini deniyorum adam ödev verirkn hadi hesap makinesi yapıp getirin not vercem demioki bazı kriterler verio ona göre yapın die öle olsa hmn bulup getirirm ama kaç yerdn yardım istedim olmuo kimse bni anlamıo mu fransızcamı konuşuom. ayrıca osebat ın yoladığı kod lar bişi yapmıo hesap makinesine dayır nede başka bişi boş yani. hatta son msj ımda açıklamalar yaptım nasıl oolcak resim bile yolladım . kndi yaptığım örneği yoladım tabi çalışmıo bi kaç komut(if vs) yapmak lazımmış ama bn yapamadım yardım istedim ama olmuo
Bak şimdi; hesap makinasında olması gereken bütün tuşları koy.Hepsine anlamlı birer isim ver. dim deger as integer diye bir değişken tanımla. Her basılan tusta deger değişkenine atama yap.
sonra bu degerleri textbox a yanyana yazdırmak lazım. bunu icin her tusa basıldıgında; textbox.text &= str(deger) yazman lazım. bu rakamları toplamak yerine yan yana yazmanı saglar. yani stringe cevirdiğin icin böyle olur.
sonra mesela + tusuna bastıgımızada o anki textboxdaki sayıyı bir değişkende tutmamız lazım. gecici= textbox.text sonra textbox ın icerigini temizlicez.
ve eşitttir tusuna basınca sunu yapacak. eger basıldan tus + ise >> textbox.text = val(gecici) + val(textbox.text) eger basıldan tus - ise >> textbox.text = val(gecici) - val(textbox.text) eger basıldan tus * ise >> textbox.text = val(gecici) * val(textbox.text) eger basıldan tus / ise >> textbox.text = val(gecici) / val(textbox.text)
işlemleri seri yapabilmen icin kontrol yapıları kullanman lazım. mesela artıya bastım sonra eşittir dedim. eranda 124 cıktı.sonra bu sayının üzerine bi sayı daha eklemek istiyorsam, o anki textbox durumuna bakarsın, yani textboxta bir sayı varsa onun üzerine işlem yaparsın. yoksa standart kodlar calisir.
Şu anda pc'm sapıttıgı icin proje acamıyorum, o yüzden bu şekilde anlatabildim
ya bn anlatamıomuyum eşittir kullanmıcam. yan yana yazmayı yaptım. aşağıdaki kod ları yaptım ama doru çalışmıolar işlemler. aşağıdaki örnekte ki gibi toplmada,çıkarmada, bölmede, çarpmada da text e ki sayıyı bi değişkene attım sona bu sayıyı texte atadım her butona basıldığında aynı işlemi yapıp toplasın die. ama mesela sayıyı yazdığımda bi kaç defa topplaya bastığımda aynı sayıyı aynı şekilde topluo(12+12=24 gibi) windows ta hesap makinesinde bi kaç defa toplaya basıldığında hiç bi işlem yapmıo bnde bunu istiom oda if le olucakmış. çıkarmam da ise eksili çıkartıo.çıkarmamda hiç bişi yapmıo.bölmemde ise sıfır verio. bunlarını ndn lerini bilmiyorum düzeltemiorum. yardımızı bkliyorum. ohhh anlamışsınızdır umarım.. ya bitsin artık bu çile yaa yapimde kurtulayım :(
Dim a, islem As Integer
Private Sub Command1_Click() If islem = "1" Then Text1 = "" End If Text1.Text = Text1 & 1 islem = "0" End Sub
Private Sub Command10_Click() If islem = "1" Then Text1 = "" End If Text1.Text = Text & 0 islem = "0" End Sub
Private Sub command11_click() a = Val(a) + Val(Text1.Text) Text1.Text = a islem = "1" End Sub
Private Sub Command12_Click() a = Val(Text1.Text) - Val(a) Text1.Text = a islem = "1" End Sub
Private Sub Command13_Click() Val(a) = Val(a) * Val(Text1.Text) Text1.Text = a islem = "1" End Sub
Private Sub Command14_Click() a = Val(a) / Val(Text1.Text) Text1.Text = a ıslem = "1" End Sub
Private Sub Command2_Click() If islem = "1" Then Text1 = "" End If Text1.Text = Text1 & 2 islem = "0" End Sub
Private Sub Command3_Click() If islem = "1" Then Text1 = "" End If Text1.Text = Text1 & 3 islem = "0" End Sub
Private Sub Command4_Click() If islem = "1" Then Text1 = "" End If Text1.Text = Text1 & 4 islem = "0" End Sub
Private Sub Command5_Click() If ıslem = "1" Then Text1 = "" End If Text1.Text = Text1 & 5 islem = "0" End Sub
Private Sub Command6_Click() If islem = "1" Then Text1 = "" End If Text1.Text = Text1 & 6 islem = "0" End Sub
Private Sub Command7_Click() If islem = "1" Then Text1 = "" End If Text1.Text = Text1 & 7 islem = "0" End Sub
Private Sub Command8_Click() If islem = "1" Then Text1 = "" End If Text1.Text = Text1 & 8 islem = "0" End Sub
Private Sub Command9_Click() If islem = "1" Then Text1 = "" End If Text1.Text = Text1 & 9 islem = "0" End Sub
işlemleri seri yapabilmen icin kontrol yapıları kullanman lazım. mesela artıya bastım sonra eşittir dedim. eranda 124 cıktı.sonra bu sayının üzerine bi sayı daha eklemek istiyorsam, o anki textbox durumuna bakarsın, yani textboxta bir sayı varsa onun üzerine işlem yaparsın. yoksa standart kodlar calisir.
Yazdım ya bunu yukarda zaten. İşlem tusuna bastıgın zaman yani + - * / o anki textbox ın durumunu kontrol et diyorum yani. eger textbox doluysa o anki degeri gecici değişkenine at. sonra her işlem icin gecici ve son girilen deger üzerinden işlem yap. anlatabildimmi
topla tusuna bastık diyelim söyle yani;
if textbox.text = "" then textbox.text = val(textbox.text) + gecici else textbox.text = val(textbox.text) + deger end if
Deger 1 kere işlem yapıldıgında kullanılıyor ve son deger gecici isimli bir değişkene atılıyor. seri işlem yaparkende en son girilen texboxtaki bilgi ile gecici arasında işlem yapılıyor.
Ben senin demek istediğini anladım. umarım bende anlatabilmişimdir
Öncelikle programlamada en büyük sorun kör döngüye girmektir. Size birçok yöntem yollanmış, siz ise ben zaten bunu yaptım diyerek, kendi kodlarınızı yazıyorsunuz işte bu bir kör döngü. Mademki sizin yaptığınız gibi olmuyor, onu unutup değişik yöntemler denemelisiniz. Birden cok işlem yapmak istiyorsanız en son yaptığınız hesabı hafızada tutup yeni işlemi ona dahil etmelisiniz. Bunu yaparken yönteminiz ise matematiksel işlemleri atadığınız butonların değerlerini başka biryerde tutup, (örn. proje içerisindeki gizli bir text içerisinde) her butona bastığınızda koşul ile önce bu değeri okutup işlem yaptırmaktır. O zaman istediğiniz kadar işlem yapabilirsiniz. Balık vermek yerine balık tutmayı öğretmek daha iyidir. Sabit bir şeye yönelmeyin alternatifleri değerlendirin. Verilen her örnekten bir alternatif çıkartırsanız, bütün istediklerinizi yapabilirsiniz.
ewt yolladılar bazıları çalışmıo bazıları bnim krterlerime uymuo ama yinede düşünüp bişi yazmışlar tşkr ewt bnim kodları yolluom çünkü bunun gibi basit bnim anlayacağım şekilde olsun istiom.visual hiç kullanmadım delphi ve pascal biliom kafamda çalışmıo hesap makinesi için
< Bu mesaj bu kişi tarafından değiştirildi angel_fatmaxx -- 13 Aralık 2006; 12:08:18 >
Dim a, islem As Integer
Private Sub Command1_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 1
islem = "0"
End Sub
Private Sub Command10_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text & 0
islem = "0"
End Sub
Private Sub command11_click()
a = Val(a) + Val(Text1.Text)
Text1.Text = a
islem = "1"
End Sub
Private Sub Command12_Click()
a = Val(Text1.Text) - Val(a)
Text1.Text = a
islem = "1"
End Sub
Private Sub Command13_Click()
Text1.Text = Val(a) * Val(Text1.Text)
Text1.Text = a
islem = "1"
End Sub
Private Sub Command14_Click()
a = Val(a) / Val(Text1.Text)
Text1.Text = a
ıslem = "1"
End Sub
Private Sub Command2_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 2
islem = "0"
End Sub
Private Sub Command3_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 3
islem = "0"
End Sub
Private Sub Command4_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 4
islem = "0"
End Sub
Private Sub Command5_Click()
If ıslem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 5
islem = "0"
End Sub
Private Sub Command6_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 6
islem = "0"
End Sub
Private Sub Command7_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 7
islem = "0"
End Sub
Private Sub Command8_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 8
islem = "0"
End Sub
Private Sub Command9_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 9
islem = "0"
End Sub
Private Sub Form_Load()
islem = "0"
End Sub
Bu mesaja 1 cevap geldi. Cevapları Gizle
Public Class Form1
Dim Sayi1 As Integer
Dim Sayi2 As Integer
Dim sonuc As Double
Dim islem As String
Dim yazı As String
Private Sub Button5_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button4.MouseClick, Button3.MouseClick, Button2.MouseClick, Button1.MouseClick
Sayi1 = TextBox1.Text
Sayi2 = TextBox2.Text
yazı = CType(sender, Button).Text
Select Case yazı
Case "+"
sonuc = Sayi1 + Sayi2
Case "-"
sonuc = Sayi1 - Sayi2
Case "/"
sonuc = Sayi1 / Sayi2
Case "*"
sonuc = Sayi1 * Sayi2
End Select
Label1.Text = sonuc
End Sub
Bu mesaja 1 cevap geldi. Cevapları Gizle
< Bu mesaj bu kişi tarafından değiştirildi angel_fatmaxx -- 24 Kasım 2006; 13:37:47 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu Java ile ilgili olan
http://forum.donanimhaber.com/m_5689044/mpage_1/key_hesap%252Cmakinesi//tm.htm#5727153
bu da VB
http://forum.donanimhaber.com/m_6366541/mpage_1/key_hesap%252Cmakinesi//tm.htm#6378238
< Bu mesaj bu kişi tarafından değiştirildi serseri -- 24 Kasım 2006; 21:02:06 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
http://resim.resimupload.com/r41/thumb_913763877.JPG
ek özellikler:
eşittir butonu kullanılmicak
istediğim kadar sayıyla işlem yapabilicem(mesela text e sayı girilirdiğinde bi kaç kere basıldığında aynı sayıyı toplamicak)
yukarıda zatn kodları verdim ama hatalı çalışıo
inşallah anlatabilmişimdir...
< Bu mesaj bu kişi tarafından değiştirildi angel_fatmaxx -- 24 Kasım 2006; 22:05:35 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
Dim sayi1, sayi2 As Integer
Dim temizle, sayac As Boolean
Private Sub Form_Load()
temizle = True
End Sub
Private Sub Command1_Click()
ekle (1)
End Sub
Private Sub Command2_Click()
ekle (2)
End Sub
Private Sub Command3_Click()
ekle (3)
End Sub
Private Sub Command4_Click()
ekle (4)
End Sub
Private Sub Command5_Click()
arti
End Sub
Private Sub Command6_Click()
carpi
End Sub
Private Sub arti()
temizle = False
sayac = True
sayi1 = Text1.Text
islem = "+"
End Sub
Private Sub carpi()
temizle = False
sayi1 = Text1.Text
islem = "*"
End Sub
Private Sub Command7_Click()
esittir
End Sub
Private Sub esittir()
sayi2 = Text1.Text
Text1.Text = ""
Select Case islem
Case "+"
Text1.Text = sayi1 + sayi2
temizle = False
Case "*"
Text1.Text = sayi1 * sayi2
temizle = False
End Select
End Sub
Private Sub ekle(x As Integer)
If temizle = True Then
Text1.Text = Text1.Text & x
Else
Text1.Text = ""
Text1.Text = Text1.Text & x
temizle = True
End If
End Sub
1 den 4 2 kadar olan sayılar ve toplama çarpma işlemi yapmakta. sürekli + ya basınca işlem yapmıyor o ayrı.
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
hatta son msj ımda açıklamalar yaptım nasıl oolcak resim bile yolladım . kndi yaptığım örneği yoladım tabi çalışmıo bi kaç komut(if vs) yapmak lazımmış ama bn yapamadım yardım istedim ama olmuo
Bu mesaja 1 cevap geldi. Cevapları Gizle
hesap makinasında olması gereken bütün tuşları koy.Hepsine anlamlı birer isim ver.
dim deger as integer diye bir değişken tanımla.
Her basılan tusta deger değişkenine atama yap.
0 tusuna basılınca deger=0
1 tusuna basılınca deger=1
2 tusuna basılınca deger=2
gibi.
sonra bu degerleri textbox a yanyana yazdırmak lazım. bunu icin her tusa basıldıgında;
textbox.text &= str(deger) yazman lazım.
bu rakamları toplamak yerine yan yana yazmanı saglar. yani stringe cevirdiğin icin böyle olur.
sonra mesela + tusuna bastıgımızada o anki textboxdaki sayıyı bir değişkende tutmamız lazım.
gecici= textbox.text
sonra textbox ın icerigini temizlicez.
ve eşitttir tusuna basınca sunu yapacak.
eger basıldan tus + ise >> textbox.text = val(gecici) + val(textbox.text)
eger basıldan tus - ise >> textbox.text = val(gecici) - val(textbox.text)
eger basıldan tus * ise >> textbox.text = val(gecici) * val(textbox.text)
eger basıldan tus / ise >> textbox.text = val(gecici) / val(textbox.text)
işlemleri seri yapabilmen icin kontrol yapıları kullanman lazım. mesela artıya bastım sonra eşittir dedim. eranda 124 cıktı.sonra bu sayının üzerine bi sayı daha eklemek istiyorsam, o anki textbox durumuna bakarsın, yani textboxta bir sayı varsa onun üzerine işlem yaparsın. yoksa standart kodlar calisir.
Şu anda pc'm sapıttıgı icin proje acamıyorum, o yüzden bu şekilde anlatabildim
< Bu mesaj bu kişi tarafından değiştirildi aydinunlu -- 25 Kasım 2006; 18:30:44 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
ohhh anlamışsınızdır umarım.. ya bitsin artık bu çile yaa yapimde kurtulayım :(
Dim a, islem As Integer
Private Sub Command1_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 1
islem = "0"
End Sub
Private Sub Command10_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text & 0
islem = "0"
End Sub
Private Sub command11_click()
a = Val(a) + Val(Text1.Text)
Text1.Text = a
islem = "1"
End Sub
Private Sub Command12_Click()
a = Val(Text1.Text) - Val(a)
Text1.Text = a
islem = "1"
End Sub
Private Sub Command13_Click()
Val(a) = Val(a) * Val(Text1.Text)
Text1.Text = a
islem = "1"
End Sub
Private Sub Command14_Click()
a = Val(a) / Val(Text1.Text)
Text1.Text = a
ıslem = "1"
End Sub
Private Sub Command2_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 2
islem = "0"
End Sub
Private Sub Command3_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 3
islem = "0"
End Sub
Private Sub Command4_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 4
islem = "0"
End Sub
Private Sub Command5_Click()
If ıslem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 5
islem = "0"
End Sub
Private Sub Command6_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 6
islem = "0"
End Sub
Private Sub Command7_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 7
islem = "0"
End Sub
Private Sub Command8_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 8
islem = "0"
End Sub
Private Sub Command9_Click()
If islem = "1" Then
Text1 = ""
End If
Text1.Text = Text1 & 9
islem = "0"
End Sub
Private Sub Form_Load()
islem = "0"
End Sub
Bu mesaja 1 cevap geldi. Cevapları Gizle
Yazdım ya bunu yukarda zaten. İşlem tusuna bastıgın zaman yani + - * / o anki textbox ın durumunu kontrol et diyorum yani. eger textbox doluysa o anki degeri gecici değişkenine at. sonra her işlem icin gecici ve son girilen deger üzerinden işlem yap. anlatabildimmi
topla tusuna bastık diyelim söyle yani;
if textbox.text = "" then
textbox.text = val(textbox.text) + gecici
else
textbox.text = val(textbox.text) + deger
end if
Deger 1 kere işlem yapıldıgında kullanılıyor ve son deger gecici isimli bir değişkene atılıyor. seri işlem yaparkende en son girilen texboxtaki bilgi ile gecici arasında işlem yapılıyor.
Ben senin demek istediğini anladım. umarım bende anlatabilmişimdir
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Size birçok yöntem yollanmış, siz ise ben zaten bunu yaptım diyerek, kendi kodlarınızı yazıyorsunuz işte bu bir kör döngü. Mademki sizin yaptığınız gibi olmuyor, onu unutup değişik yöntemler denemelisiniz. Birden cok işlem yapmak istiyorsanız en son yaptığınız hesabı hafızada tutup yeni işlemi ona dahil etmelisiniz.
Bunu yaparken yönteminiz ise matematiksel işlemleri atadığınız butonların değerlerini başka biryerde tutup, (örn. proje içerisindeki gizli bir text içerisinde) her butona bastığınızda koşul ile önce bu değeri okutup işlem yaptırmaktır. O zaman istediğiniz kadar işlem yapabilirsiniz.
Balık vermek yerine balık tutmayı öğretmek daha iyidir. Sabit bir şeye yönelmeyin alternatifleri değerlendirin.
Verilen her örnekten bir alternatif çıkartırsanız, bütün istediklerinizi yapabilirsiniz.
Bu mesaja 1 cevap geldi. Cevapları Gizle
ewt bnim kodları yolluom çünkü bunun gibi basit bnim anlayacağım şekilde olsun istiom.visual hiç kullanmadım delphi ve pascal biliom kafamda çalışmıo hesap makinesi için
< Bu mesaj bu kişi tarafından değiştirildi angel_fatmaxx -- 13 Aralık 2006; 12:08:18 >
a=VAL(TXT1)
b="+"
TXT1=""
Daha sonra eşittir butonuna tıklayıp içine
if b="+" Then
TXT1=a+val(TXT1) yazdım
Ancak birtürlü eşittire basıldığında işlem yapılmıyo acaba değişkene atamada mı bir sorun var
Yardımcı olcak arkadaşlara teşekkürler.
Bu mesaja 1 cevap geldi. Cevapları Gizle
2 textbox var sanıyorum rakamların yazılması için,
dim rakamtextbox1 as single
dim rakamtextbox2 as single
dim sonuc as single
rakamtextbox1 = textbox1.text
rakamtextbox2 = textbox2.text
+ butonu
private sub .... diye giden yer olak çift tıkladığında onun içine =
sonuc = rakamtextbox1 + rakamtextbox2
labelsonuc.text = sonuc
(label sonuc adlı labele sonuc değerini geçirir)
aynısının * ve / lüsü bide
Bu mesaja 1 cevap geldi. Cevapları Gizle