bilgisayar hatalı mı işlem yapıyor

1 2
16/04/2009, 05:38

accessman

iyi günler arkadaşlar
yaptığım programda şu formuller var
--------------------------------
Metin1xx = Metin1x + Metin2x + Metin3x - (Metin4x - Metin5x) * Metin6x
Metin1xx = Metin1x + Metin2x + Metin3x + (Metin4x - Metin5x) * Metin6x
-----------------------------------
ilk işlemde aşağıdaki rakmalarla metin1xx = 466
metin1x=6
metin2x=6
metin3x=6
metin4x=7
metin5x=3
metin6x=50
------------------------------------
ikinci işlemde aşağıdaki rakmalarla metin1xx = 466
metin1x=6
metin2x=6
metin3x=6
metin4x=3
metin5x=7
metin6x=50
------------------------------
fakat ben sonucun böyle olmaması gerektğini düşünüyorum
bir türlü anlayamadım
bilgisayarın hatalı işlem yapmayacağını düşünüyorum
acaba nerede hata yapıyorum
bu sayıları veya bir kısmını kullanarak 466 sayısını nasıl elde edebiliriz
16/04/2009, 08:06

mehmetdemiral

Sayın accessman
Ben matematikten hiç anlamam. Ama sanırım aşağıdaki işlemi kademe kademe yapsanız daha iyi olur gibi geliyor.

Metin1xx = Metin1x + Metin2x + Metin3x - (Metin4x - Metin5x) * Metin6x

Yani yukardaki işlem için önce metin1x metin2x ve metin3x değerlerini toplasanız

(Metin1x + Metin2x + Metin3x)
sonra da metin4x'i metin5x'ten çıkartsanız
(Metin4x - Metin5x)
Sonra da ilk işlemin sonucunda ikici işlemin sonucunu çıkartsanız

(Metin1x + Metin2x + Metin3x) - (Metin4x - Metin5x)

çıkan sayıyı da metin6x le çarpsanız

((Metin1x + Metin2x + Metin3x) - (Metin4x - Metin5x)) * metin6x

sonra bu değeri metin1xx olarak atasanız

metin1xx=(((Metin1x + Metin2x + Metin3x) - (Metin4x - Metin5x)) * metin6x)

daha doğru olur. Denemedim ama eğer böyle olmazsa o zaman değerleri değişkenleri atayarak deneyin


Kod:
dim a, b, c as integer
a= (Metin1x + Metin2x + Metin3x)
b= (Metin4x - Metin5x)
c= a-b
metin1xx = metin6x * c


Sanırım mantığını anladınız. Kolay gelsin.

Not: Ufak tefek hatalar yapmış olabilirim. Okulda tenefüste yazıyorum)))
16/04/2009, 08:17

nihatkr

Metin1xx = ((Metin1x + Metin2x + Metin3x) - (Metin4x - Metin5x)) * Metin6x
16/04/2009, 10:04

Seruz

Bilgisayar dilinde yazılmış matematiksel ifadelerde işlem öncelik sırası bulunmaktadır. Bu öncelik sıraları çok önemlidir ve bilgisayar diline aktarılırken çok dikkatli olunmalıdır. Matematiksel ifade kodlarken yapılacak küçük bir hata, işlem sonucunun yanlış çıkmasına neden olur.

Aritmetiksel işlemlerde öncelik sırası şöyledir:
1. Parantezli işlemler: ( ... )
2. Üs alma işlemi: (2^3 = 2*2*2 = 8)
3. Bölme ( / ) veya çarpma ( * ) işlemi
4. Toplama ( + ) veya çıkarma ( - ) işlemi

Örneğin:
2 + 3 * 5 = ?
işleminin sonucu 100 kişiye sorulduğunda 90’ ı tarafından 25 olarak cevaplandırılmaktadır. Oysa, işlemin sonucu 17’ dir.

( 2 + 3 ) * 5 = ?
Ancak soru 100 kişiye bu şekilde sorulduğunda 100 kişi de 25 olarak cevap vermektedir.
Sizin formüllere uyarladığımızda çıkan sonuçlar:
Metin1xx = Metin1x + Metin2x + Metin3x - (Metin4x - Metin5x) * Metin6x
Sonuç = -182

Metin1x + Metin2x + Metin3x + (Metin4x - Metin5x) * Metin6x
Sonuç = 218

Yani bilgisayar yanlış hesaplamıyor,
siz bilgisayara doğru anlatamıyorsunuz nasıl hesaplaması gerektiğini.
Sn. NihatKr,

Sizin formülde de sonuç 700 çıkıyor.

=((Metin1x + Metin2x + Metin3x) - (Metin4x - Metin5x)) * Metin6x

Bir de ben deneyeyim, bulabilecek miyim.
Doğru Formul Bu:

=(Metin1x + Metin5x ) * (Metin6x + (Metin2x / Metin3x ) ) + Metin4x

Hesaplama Formu ektedir.
16/04/2009, 11:23

nihatkr

(16/04/2009, 10:04)Seruz yazdı: Bilgisayar dilinde yazılmış matematiksel ifadelerde işlem öncelik sırası bulunmaktadır. Bu öncelik sıraları çok önemlidir ve bilgisayar diline aktarılırken çok dikkatli olunmalıdır. Matematiksel ifade kodlarken yapılacak küçük bir hata, işlem sonucunun yanlış çıkmasına neden olur.

Aritmetiksel işlemlerde öncelik sırası şöyledir:
1. Parantezli işlemler: ( ... )
2. Üs alma işlemi: (2^3 = 2*2*2 = 8)
3. Bölme ( / ) veya çarpma ( * ) işlemi
4. Toplama ( + ) veya çıkarma ( - ) işlemi

Örneğin:
2 + 3 * 5 = ?
işleminin sonucu 100 kişiye sorulduğunda 90’ ı tarafından 25 olarak cevaplandırılmaktadır. Oysa, işlemin sonucu 17’ dir.

( 2 + 3 ) * 5 = ?
Ancak soru 100 kişiye bu şekilde sorulduğunda 100 kişi de 25 olarak cevap vermektedir.
Sizin formüllere uyarladığımızda çıkan sonuçlar:
Metin1xx = Metin1x + Metin2x + Metin3x - (Metin4x - Metin5x) * Metin6x
Sonuç = -182

Metin1x + Metin2x + Metin3x + (Metin4x - Metin5x) * Metin6x
Sonuç = 218

Yani bilgisayar yanlış hesaplamıyor,
siz bilgisayara doğru anlatamıyorsunuz nasıl hesaplaması gerektiğini.
Sn. NihatKr,

Sizin formülde de sonuç 700 çıkıyor.

=((Metin1x + Metin2x + Metin3x) - (Metin4x - Metin5x)) * Metin6x

Bir de ben deneyeyim, bulabilecekmiyim.
Doğru Formul Bu:

=(Metin1x + Metin5x ) * (Metin6x + (Metin2x / Metin3x ) ) + Metin4x

Hesaplama Formu ektedir.
Ben sonuca hiç bakmadım
Ama eline sağlık güzel olmuş seruz.
16/04/2009, 11:50

mehmetdemiral

Evet ben de yapılan bir işlemin belli bir toplama ulaşması gerekli gibi düşünmedim. Benim düşündüğüm de verilen sayılarla yapılan hesaplamanın yanlış bir sonuca ulaşmasıydı. Ama sonradan başka bir konu açılmış ve bir kelime bir işlem tarzı bir çalışma olduğu ve 466 sayısına 4 işlem yapılarak uğraşılmasının planlandığı yazılmış. Gerçi ben sorunun cevabından çok hesaplama yöntemine odaklandım.
1 2