CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

Hesap makinesi iskeletini ve menü yapısını tasarlarsın.

Proje: hesap makinesi

Bu projede dört işlem yapan bir komut satırı hesap makinesi yazacaksın. Önce yapıyı tasarla: her işlem ayrı bir fonksiyon olacak, hesapla fonksiyonu işlem simgesine göre doğru fonksiyonu seçecek.

func topla(a, b float64) float64
func cikar(a, b float64) float64
func carp(a, b float64) float64
func bol(a, b float64) (float64, error)

func hesapla(a float64, islem string, b float64) (float64, error)

Küçük fonksiyonlara bölmek, her parçayı ayrı ayrı denemeyi kolaylaştırır.

Neden float64?

Hesap makinesinde 7 / 2 işleminin 3.5 vermesi beklenir. Bu yüzden sayılar float64 olarak tutulur. Sonucu yazdırırken %g biçimi gereksiz sıfırları göstermez: 3.5 → 3.5, 4.0 → 4.

Uygulama İskelet

topla(a, b float64) float64 fonksiyonunu yaz ve fmt.Printf("%g\n", topla(2, 1.5)) ile dene.

Başlangıç kodu

main.go
package main

import "fmt"

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
package main

import "fmt"

func topla(a, b float64) float64 { return a + b }

func main() {
    fmt.Printf("%g\n", topla(2, 1.5))
}

Beklenen çıktı

3.5

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Neden yalnızca <code>bol</code> fonksiyonu <code>error</code> döndürür?

  • Diğerleri de döndürmeli
  • Sıfıra bölme gibi başarısız olabilecek tek işlem odur Doğru cevap
  • Bölme daha yavaştır
  • Go bölmede error zorunlu kılar

Açıklama: Toplama, çıkarma ve çarpma her girdide sonuç verir; bölme ise sıfırda tanımsızdır ve bunu çağırana bildirmelidir.

2 İki dönüş

Soru
func bol(a, b float64) (float64, ____) {
Cevap
func bol(a, b float64) (float64, error) {

Açıklama: Başarısız olabilen fonksiyonlar son dönüş değeri olarak error verir.

3 Fonksiyon ve görevi

Kavram Anlamı
topla a + b
bol a / b ve hata
hesapla İşleme göre seçer
%g Gereksiz sıfırı gizler

Başlangıç bölümündeki tüm dersler