7B: Matematik

7. derste üç bölüm var; A, B, C. İstediğiniz sırayla devam edebilirsiniz.

Bu derse kadar Python'da dört işlem operatörleri +,  -, */;   max ve min. fonksiyonları kullanarak matematik işlemleri yapmıştık. Bu derste biraz daha karmaşık işlemler yapabilmek için daha fazla matematik operatörü ve fonksiyonlar göreceğiz.

Matematik İşlemleri

Daha önce gördüğümüz işlemler toplama (a + b), çıkarma (a - b), çarpma (a * b) ve bölme (a / b). Şimdi bunlara ek olarak üç operatör daha kullanacağız.

  • Kuvvet (power) operatörü a ** b işlemi ile ab (a sayısını kendi kendi ile b kere çarpmak). Örneğin, 2 ** 3 8 eder (çünkü 2×2×2).
  • Tamsayı bölme (integer division) operatörü a // b işlemi ilea sayısı b sayısına bölünür ve kalan silinir. Örneğin, 14 // 3 işleminde kalan yok sayılır ve sonuç 4 yazılır.
  • Modülüs (modulus) operatörü a % b işlemi ile a sayısı b sayısına bölündüğünde kalanı hesaplanır.  Örneğin, 14 % 3 işleminin sonu 2 olur.

Example
Kuvvet, tamsayı bölümü ve modülüs opretaörleri

Coding Exercise: Yumurta Kartonu
Her yumurta kartonu 12 yumurta alır. Kullanıcıdan yumurta sayısını input() ile alarak iki işlemin sonucunu verecek bir program yazın: Kullanıcının verdiği sayı ile kaç karton doldurabilir ve kaç yumurta fazla gelecek. Diyelim kullanıcı  27 sayısını girerse programımız şu çıktıyı versin,

2
3
çünkü 27 yumurta ile 2 karton doldururuz ve 3 yumurta fazla gelir. İpucu
You may enter input for the program in the box below.

Modülüs işlemcisi farklı görevlerde kullanılır. Aşağıdaki sorulara cevap vermekte de bu işlemciyi kullanabiliriz:

Artık yıl hesaplama bölünebilme testidir; bir sonraki alıştırmada genel bir bölünebilme testi yazmanızı isteyeceğiz.

Coding Exercise: Bölünebilirlik
İki farklı satırdaki a ve b tamsayılarını okuyacak bir program yazın. Eğer  a sayısı b, sayısına kalansız bölünebiliyorsa "bölünebilir", kalanlı bölünüyorsa "bölünemez yazdırsın". Mesela, input

14
3
ise, program "bölünemez" yazdıracak. İpucu
You may enter input for the program in the box below.

Matematik Fonksiyonları

Python ile bilimsel hesap makinesinde yapılan pek çok işlemimn hesaplaması yapılabilir.

  • sqrt(x)  x sayısının kaekrökünü hesaplar.
  • exp(x) ve log(x) üstel ve doğal logaritmik fonksiyonlardır.
  • sin(x), cos(x), tan(x) ve diğer trigonometri fonksiyonları mevcuttur.
  • pi, sabit sayısı 3.1415..., da dâhildir.

Python'da trigonometri fonksiyonları kullanılırken x açısı derece olarak değil radyan olarak verilmelidir.

Python'daçok fazla fonksiyon bulunduğu için bunlar modüller olarak grupara ayrılır. Yukarıdaki fonksiyonlar math modülüne dâhildir. Bir modülden bir fonksiyon kullanmadan önce, söz konusu modül, aşağıdaki örnekteki gibi ithal (import) edilmelidir. Bir modüle ait bir fonksiyonu kullanmak için önce modül adını, periyodu ve ardından fonksiyon adını yazmak gerekir.

Example
Matematik modülünden fonksiyon kullanımı

Coding Exercise: Pizzalar
Arkadaşlarınız dörtgen pizzaları bitirmişler, yuvarlak pizza istiyorlar. Kaç cm2  alana sahip pizza gerekeceğini hesaplayan bir program yazın. Input cm olarak yarıçapı gösteren float r. Output da cm2  olarak alanı versin. Formülümüz malum  A=pi*r2.  3.1415... yazmak yerine Python'daki pi özelliğini kullanın.
You may enter input for the program in the box below.

Coding Exercise: Geometrik Ortalama
 a ve b sayılarının geometrik ortalaması

\sqrt{ab}

(Gösterim ekranlarının en-boy oranlarını karşılaştırmak ve bir nüfusun ortalama büyüme oranını tanımlamak için kullanılır.) Yazacağınız program, input olarak iki tane pozitif ondalık float sayı alsın ve onların geometrik ortalamasını versin.
Örnek: Eğer input

5.0
20.0
şeklinde ise sonuç 10.0 olmalı.
You may enter input for the program in the box below.

Hepsini birleştirme

Bir önceki alıştırmada gördüğümüz gibi çeşitli işlemleri birleştirerek matematiksel ifadeler oluşturabiliriz. Python'da da işlemlerin yapılış sırası matematik derslerimizde öğrendiğimiz gibidir:

İşlemlerin yapılış sırası önce Parantezler, Üsler, Bölme, Çarpma, Ekleme ve en son Çıkarma şeklindedir.

(İngilizce kelimelerin ilk harflerinden kısaltma yaparak hatırlamaya çalışabilirsiniz: Brackets, Exponents, Division, Multiplication, Addition, Subtraction "BEDMAS"). Tamsayı bölme ve katsayı (modulus) "Bölme ve Çarpma" kategorisine girer. Bir örneğe bakalım:

3 * (1 + 2) ** 2 % 4
işleminde önce parantezi içi toplama işi  (1+2 = 3); sonra üs, 3'ün 2. kuvveti (3 ** 2 = 9); sonra çarpım (3 * 9 = 27) ve en son da katsayı  27 % 4 = 3  bulunur.

Short Answer Exercise: İşlemlerin Sırası
Python ifadesinin sonucunu hesaplayın

6 - 52 // 5 ** 2
Correct!

Tamsayıların negatif sayılara bölünmesia // b ve int(a / b) ifadeleri  a ve b sayılarının ikisi de pozitif tamsayılar olduğu durumlarda aynıdır. Ama  a  negatif ise, a // b işleminde "eksi sonsuza kadar yuvarlama" ve  int(a / b) işleminde ise "0'a doğru yuvarlama" kullanılır.

Example
Tamsayıların negatif sayılara bölünmesi

Tam ve Kayan Noktalı Sayılar

Bir matematik işleminin sonucu bir sayıdır.  Daha önce gördüğümüz gibi sayılar iki tipten biri şeklinde olabiliyor:  int veya float. Negatif veya pozitif tamsayılar int tipindedir ve istediğiniz kadar büyük olabilir.

Python'da sayıları 1 000 000 veya 1,000,000 şeklinde yazamayız.  Onun yerine 1000000 yazmalısınız.

Ondalıklı sayılarfloat tipindedir. Bir hesap makinesinde 1/3  sayısının 0.33333333 şeklinde  yaklaşık olarak gösterildiği gibi Python da kesirli sayıları yaklaşık ondlıklı değerleriyle saklar.

Python yaklaşık ondalıklı sayıları kullandığı için matematikte doğru kabul ettiğimiz bazı eşitlikler,  Python'da doğru kabul edilmeyebilir.
Example
Example
Bu sebeple, bu yuvarlamaları float tipinde sayılar söz konusu olduğuda esnek bir şekilde kabul etmek gerekir. Mesela, bu web sayfasında kullanılan düzenleyici, herhangi bir float outputu doğru kabul eder; yaklaşık eşit cevabını bekliyoruz.

Bu dersi birkaç alıştırma ile bitirelim.

Coding Exercise: Beceri Ölçme Sorusu
Bir beceri ölçme sorusu olarak size 3 tamsayı veriliyor ve ik ikisinin toplamını üçüncüsü ile çarpmanız isteniyor. Üç rakamı okuyup, işlemin doğru sonucunu verecek bir program yazın. İpucu
You may enter input for the program in the box below.

Coding Exercise: Ayaklı Başarı
Bu program için inputumuz feet ile ölçülmüş yüksekliği gösteren bir kayan noktalı sayı olacak. Yazdığımız programla birim karşılığını 1 foot = 30.48 cm alarak, feet ölçü birimini cm'ye çevireceğiz. Mesela, input 0.5 ise sonuç 15.24 olmalı.
You may enter input for the program in the box below.

Coding Exercise: Yerçekimi
A parcel is thrown downward at a speed of v m/s from an airplane at altitude 11000 m yükseklikteki bir uçaktan v m/s hızla bir kutu atılıyor. Düşme formülünü, t'yi saniye olarak alarak, -4.9t2 - vt + 11000 şeklinde oluşturalım. Kutunun yere kaç saniyede ulaşacağını hesaplayan bir program yazalım. Programın inputu v kayan noktalı sayısı olsun. Gereken sürenin ikinci dereced formülü

\displaystyle{t=\frac{v-\sqrt{v^2-4(-4.9)(11000)}}{2(-4.9)}}

You may enter input for the program in the box below.

Tebrikler! Bu alıştırmaları bitidiğinize göre diğer derslere geçebiliriz.