Oranlı sayılar
Rasyonel sayılar ya da kesirler olarak da isimlendirilirler.
Oranlı sayılar, iki tam sayının birbirine bölünmesiyle oluşurlar.
Örn: 5/2, 3/4 tabi bu bölümlerin sonuçları olan 2,5 ve 0,75 olarak da yazılabilirler.
Oranlı sayıları daha iyi anlamak için sayı doğrusu üzerinde incelemekte fayda var.
Orantılama
0 ve 1 veya herhangi iki adet tam sayı arasında kaç adet rasyonel sayı vardır?
Cevap; sonsuz adet.
Bu durumda her hangi bir sayı aralığını 0 ve 1 arasına küçültüp başka bir sayı aralığına genişletebiliriz.
Mesela, 150 grad kaç derecedir?
Not: 1 Grad, bir dairenin etrafının 400 eşit parçasından biridir. Derece ise 360 eşit parçadan birisidir.
Grad 0 ve 400 arasındaysa ve bizdeki değer 150 ise bunu 400′e bölersek 0,375 buluruz. Artık değerimiz 0 ve 1 arasına orantılanmış durumda. Grad 0-400 arasında olduğu için sayıyı bu ölçeğin en büyük değerine yani 400′e böldük. Eğer 200 grad’ı orantılasaydık (400′e bölüp) 0,5 bulurduk. Bu tam yarım anlamına gelir ki 200 grad’a tekrar dikkat edecek olursanız o da 400 grad’ın yani bir tam turun yarısıdır.
Şimdi nasıl bölerek bir ölçeği 0 ve 1 arasına orantıladıysak onu çarparak da başka bir ölçek arasına büyütebiliriz. Derecenin en büyük değeri 360′dı. 0,375′i 360 ile çarparsak 135 derece buluruz. Demek ki 150 grad, 135 dereceymiş.
Tam tersini, 135 derece kaç graddır diye sorsaydık;
135/360 = 0,375 => 0,375*400 = 150 şeklinde bulacaktık. Bu işlemleri birleştirip formül haline getirirsek:
Derece/360*400
Derece yerine her hangi bir değer yazarsanız ona göre grad çevrimini elde edersiniz.
Orantılama, ön yüklemelerde (preloader), scroll bar tasarımında, ölçü birimlerinin çevrimlerinde, görsellerin büyütüp, küçültülmeleri gibi çok sayıda konuda sıklıkla kullanılır.
Öteleme
Orantılama da çarparak ya da bölerek ölçeğin boyutlarını değiştiriyorduk. Ötelemede ise toplama ve çıkarma işlemleriyle ölçeğin başlangıç değerini değiştiririz. Mesela 1. ölçeğimiz 20-60 arasında olsun. 2. ölçek de 40-120 arasında olsun. 1.ölçekte okunan değer 25 ise 2. ölçekte okuyacağımız değer ne olmalı şeklinde bir soruyla karşılaşsaydık çözümümüz şu olurdu;
Öncelikle 1. ölçek 20′den başladığı için elimizdeki 45 değerinden 20′yi çıkararak başlangıç noktasını 0′a taşıyoruz. (45-20 = 25) Ölçeği 0′a ötelediğimizde en yüksek değeri de 40′a ötelemiş oluruz. (60-20 = 40) Orantılama yaptığımızda 25/40 = 0,625 değerini buluruz. 2. ölçeği de 0′a öteleyelim değerlerimiz (0-80) şeklinde olacak. 0,625*80 = 50 buluruz. 2. ölçeği tekrar kendi yerine ötelersek 50+40 = 90 bulmuş oluruz.
Aranızda 2. ölçeğin, 1. ölçeğin 2 katı olduğunu farkeden vardır sanırım.
Bu yüzden 1. ölçekteki değeri 2 ile çarpıp (45*2) 90 bularak doğrudan sonuca ulaşmışlardır. Yalnız bu sadece bu soruya özel olarak denk gelmiş bir durum. Eğer 2. ölçeğin ötelendiği değer farklı olsaydı 2. ölçek 1. ölçekten 2 kat büyük olsaydı bile sonuç doğru çıkmazdı.
Orantılama ve öteleme konularında bol alıştırma yapmanızı öneririm. Eğer bu konuyu yeterince iyi kavrarsanız çok faydasını göreceğinize emin olun.
Sorular:
- 360 grad kaç derecedir?
- 0-150 ölçeği arasında olan A değeri 0-500 ölçeğine genişletilmek isteniyor. Formül nedir?
- 300-400 ölçeği arasında olan B değeri 100-500 ölçeğine genişletilmek isteniyor. Formül nedir?
- Sahne genişliği 1000 px olan bir sitede 400 px genişliğindeki bir görsel ortalanmak isteniyor. Görselin x koordinatı nedir? (Sahnenin ve görselin sıfır noktaları sol köşelerindedir.)
- Üstteki soruda eğer sahne genişliği sW, imaj genişliği iW olsaydı formül nasıl olurdu?
- Her hangi bir ölçeği, her hangi bir ölçeğe çeviren genel formülü bulunuz.











yazıyı okuyamadım, grafikler pek fantastik. bırro hoca..
cavaplar yanlış olabilir, pek emin değilim.
C-1) 360 grad 360/1000 kilograddır, o da 1/36 deniz mili eder. deniz şimdi soğuktur, zannedersem 1-2 derece olabilir.. ama yani tam emin de olamıyorum.
C-2) formüla birdir.
C-3) aynı soru bu.. sadecem rakamları değişikli..
C-4) bu soruda sürtünme küveti ilmihal edilip pi sayısı üzülüp çok alınırsa gürselin x kornidatı üç aşağı beş yukarı 3 veya 5 olabilir. (ama görseldeki bu ortalanmak arzusu nedir.. çözemedim ben, neyin peşindedir bu göksel..)
C-5) üstte dört tane soru var, hangi üstteki soru.. en üstteki mi onun altındaki olanki üstteki miki mouse.
C-6) herhangi bir formül bunu yapabilirdir.
bu konuyu sakin kafayla tekrar okumak lazım. yine bir programlama mantığı üzerinde konuyu anlatmaya çalışmışsın anladığım kadarıyla. sorulara tekrar bakacağım.
Bukowski çok göreceli cevap vermişsin şimdi bilemedim cevapların doğru mu, yanlış mı.
Ama benim istediğim cevaplar değil sonuçta. 
Mantıklı cevaplar.
Yine de cesaretinden dolayı seni tebrik ediyorum.
msd evet mutlaka tekrar oku. Çünkü ileride sık sık bu konuya geri dönüş yapacağız. Aslında bu konu, okulda öğrendiğimiz içler dışlar çarpımının açılımı.
Gerçek haytta yüzdeler kullanırız. Mesela cihazların %10′u arızalı dediğimiz zaman, eğer cihaz sayısı 500 ise arızalı sayısı 50′dir diyoruz. Programlamada yüzde değerleri 0-100 arasında değil. Matematikte olduğu gibi 0-1 arasında kabul edilir.
Mesela flashta bir şekli yatay genişliğini %50 büyütmek (%100+%50 = %150) için;
mc.scaleX = 1.5;
yazarız.
hocam,
anlatım da, sorular da çok güzel. tebrikler =)
önemli bir yazım yanlışını düzeltmek istedim;
Derece/360*400 değil de (Derece/360)*400 olması gerektiğini düşünüyorum
ve çözümleri yani sonuçları yazmak değil, önemli olan mantığı kurmak diye düşünerek cevaplarımı yazmadan önce soru sormak istiyorum
hocam 2. ve 3. sorudaki genişletme ile ilgili formül istemişsiniz de formül neyi verecek ben tam anlayamadım. genişletilecek A yada B değerinin ne kadar değiştiğinin yüzdesi veya 0-1 arasındaki değeri mi ?
Teşekkürler,
Derece/360*400 şeklinde yazmakta bir sakınca yok aslında. Programa bu şekilde yazdığınızda doğrudan istediğiniz sonucu hesaplayacaktır. Çünkü işlem her zaman soldan sağa doğru yapılıyor. Tabi (Derece/360)*400 şeklinde yazmak çok daha doğrudur.
İlerki konularda transfer fonksiyonuna değineceğiz. Kısa tanımlama yapmak gerekirse verilen bir girdi değeriyle doğrudan çıkış değerini veren işlemdir, transfer fonksiyonu.
Bu bakımdan benim bu sorularda istediğim şey tam olarak transfer fonksiyonudur. Giriş sayısı bir ya da bir çok olabilir onlara a, b, c gibi değişken isimleri atayabilirsiniz. Ama önemli olan, bu değişkenleri belirli işlemlere sokarak sonuca ulaşmak.
Mesela girişi a, b, c olan bir sistem olsun. Atıyorum transfer fonksiyonumuz da şöyle olsun;
tf = a*b+c/10
Yani bu giriş değerlerini bildiğimiz halde sonuç olarak istediğimiz değeri alıyoruz. Ben bu işlemin başına tf şeklinde yazdım ama onu yazmasak da olur;
a*b+c/10
şeklinde yazmak da yeterli olur.
Yani demek ki bizim yukarda yaptığımız;
Derece/360*400
işlemi de bir transfer fonksiyonuymuş. Girişimiz dereceymiş ve bu yukardaki işlemi yaptığımız takdirde de grad olarak sonucu alıyormuşuz.
Daha büyük bir ipucu vereyim. Mesela son soruda çok fazla girdi var. Bunlara A0, A1, B0 vs. gibi değerler atalım. Sonra bunları belirli işlemlere sokup transfer fonksiyonunu elde etmemiz gerekiyor;
(A0+A1)/B0 …
vs. gibi.
Cevaplarınızı merakla bekliyorum.
Bu arada yukarıdaki yorumda belirttiğim gibi gerçekten çok önemli ve sık karşılaşacağımız bir konudur bu. Bu yüzden üzerine gidip tam anlamıyla kavramamızda büyük fayda var.
1# 360 grad= 360*360/400= 324 derece.
2# 150′lik aralıkta A ise, 500′lük aralıkta A*500/150 dir.
3# 100′lük aralıkta B-300 ise 400′lük aralıkta 4*(B-300) olur. Buna ikinci farktaki 100 daha eklenir. Formül; 4*(B-300)+100
4# 300 dür.
5# sW/2 – iW/2
6# Ölçek “A1~A2″, çevireceğimiz ölçek “B1~B2″ olsun. Bunlar, “0~(A2- A1)” ve “0~(B2- B1)” şeklinde sıfırlanır. Oran alınır; (B2- B1)/(A2- A1). Bu orana C diyelim, başta sıfırladığımız B1′i de geri eklersek sonuç;
“0+B1~(A2- A1)*C+B1″ şeklinde olur.
Böyle..
Çok güzel.
Fakat bir ayrıntı var.
3. soruyu, yukarıdaki anlatıma uyması için;
(B-300)/100*400+100
şeklinde uzun uzun yazalım.
Son soruda ise aslında, bir ölçekteki değeri başka bir ölçekteki değere çeviren formülü istemiştim. Açıkçası son cevabın sonucunu anlamadım.
Çünkü C oranını sonuca yazdığımızda;
0+B1~(A2- A1)*(B2- B1)/(A2- A1)+B1
Bunu da sadeleştirecek olursak;
0+B1~(B2- B1)+B1
gibi bir sonuç çıkıyor.
Normalde bu işlemde bir tane de X şeklinde bir girdi olması gerekiyordu. Bu da 1. ölçekteki her hangi bir değeri temsil eder.
Zaten bu X değerine göre sonuç çıkıyor.
Ben son soruyu çok farklı anlamışım o zaman
‘bir ölçekteki değeri başka bir ölçekteki değere çeviren formül’ ise istenilen, bu ilk değere de X diyeceksek;
“A1~A2″ aralığındaki X’in “B1~B2″ aralığındaki karşılığı isteniyordur. O halde ölçekler arasında yine (B2-B1)/(A2-A1) oranı var, (X-A1) değerini bu oranla çarpıp B1′i ekleriz, sonuç da şöyle olacaktır:
(X-A1)*(B2-B1)/(A2-A1)+B1
Deneyelim; son grafiğe göre 20-60 arasındaki 45 değeri 40-120 arasındaki 90′a karşılık gelmeli.
(X-A1)*(B2-B1)/(A2-A1)+B1
=(45-20)*(120-40)/(60-20)+40
=25*80/40+40
=50+40
=90
Budur, bravo.
Yav buralarda memleketin çocukları ne beyin fırtınaları yaparmış ben pokemon seyrediyordum galiba siz bunları öğrenirken… Çık çık çık vah vah vah bana yuh bana…
Yunusum Hayırlara vesile olsun inşAllah bir temenniler köşesi yapsaydın oraya yazardım… Herşeyi düşünmüşsün eline sağlık konularda harika bence…
Bu arada şu sayı doğrulu introna bayıldım yav. Söylemeden edemedim.
Yeti kardeş gözümüz yollarda kalmıştı. Hoş gelin sefalar getirdin. Aslında temenniler köşesi olarak http://blog.yunuses.com/yeniden sayfası vardı ama gözünden kaçmış demek ki. =)
Bu arada yeni bir konu daha var ama şimdi de final haftası çıktı başımıza ama inş. okul bitiyor bakalım sonrasında güzel konulara devam ederiz beraber.
Ötelemeyi anlamadım ben elimizdeki 45 değeri elimize nerden geldi ?
Çok haklısın, elimizdeki 45 değerinin nerden geldiğini yazmamışım. =) Neyse onu şimdi yazmış olayım. O 45 değerini ben uydurdum. =) O referans değer. Hani aralık olarak 20 – 60 seçtik ya, işte bu değerlerin arasından da bir tane noktasal değer seçip öyle örnek vereyim istedim. 45 sayısı da 360′ın 8′de biri olduğu için en uygun örneklerden biri oldu. = )
Şimdi oldu işte