Ders 1: Temel Go Söz Dizimi ve Veri Tipleri (Basic Go Syntax and Data Types)
Bu derste Go programlama dilinin temel söz dizimini ve veri tiplerini öğreneceksiniz.
İçerik
- Go programlarının yapısı (structure of Go programs)
- Değişkenler ve sabitler (variables and constants)
- Temel veri tipleri (basic data types)
- Operatörler (operators)
- Kontrol yapıları (control structures)
Go Programlarının Yapısı (Structure of Go Programs)
Go programları genellikle aşağıdaki yapıya sahiptir:
package main
import "fmt"
func main() {
// Kodlar buraya gelecek
}
package main
: Programın ana paketini belirtir.
import "fmt"
: Gerekli paketleri içe aktarır.
func main()
: Programın giriş noktası olan ana fonksiyonu tanımlar.
Değişkenler ve Sabitler (Variables and Constants)
Değişkenler (Variables)
Go’da değişkenler var
anahtar kelimesi ile tanımlanır:
Kısa yol olarak :=
operatörü ile de tanımlanabilir:
### Sabitler (Constants)
Sabitler `const` anahtar kelimesi ile tanımlanır:
```go
const pi = 3.14
Ders Alıştırması: 2 farklı değişken ve bir tane sabit tanımlayın ve ekrana yazdırın.
```go
package main
import "fmt"
func main() {
var x int
x = 5
fmt.Println(x)
y := 10
fmt.Println(y)
const pi = 3.14
fmt.Println(pi)
}
```
Temel Veri Tipleri (Basic Data Types)
Go’da temel veri tipleri şunlardır:
int
: Tamsayı
float64
: Ondalıklı sayı
string
: Metin
bool
: Mantıksal değer (true/false)
Örnek:
var age int = 30
var name string = "Ali"
var isStudent bool = true
var gpa float64 = 3.75
Ders Alıştırması: bir öğrencinin adını soyadını telefon numarasını ve final notunu kayıt altına alın.
package main
import "fmt"
func main() {
var name string
var surname string
var phone string
var finalNotu int
fmt.Println("Öğrenci Adı: ")
fmt.Scanln(&name)
fmt.Println("Öğrenci Soyadı: ")
fmt.Scanln(&surname)
fmt.Println("Öğrenci Telefon Numarası: ")
fmt.Scanln(&phone)
fmt.Println("Öğrenci Final Notu: ")
fmt.Scanln(&finalNotu)
}
Operatörler (Operators)
Go’da yaygın olarak kullanılan operatörler şunlardır:
- Aritmetik Operatörler:
+
, -
, *
, /
, %
- Karşılaştırma Operatörleri:
==
, !=
, <
, >
, <=
, >=
- Mantıksal Operatörler:
&&
, ||
, !
Örnek:
a := 10
b := 20
sum := a + b
isEqual := (a == b)
isGreater := (a > b)
Ders Alıştırması: x için `x^2+2x+5` formülünü kullanarak x'in değerini hesaplayın.
```go
package main
import "fmt"
func main() {
fmt.Println("x değerini girin: ")
var x int
fmt.Scanln(&x)
fmt.Printf("Sonuç: %d\n", x*x + 2*x + 1)
}
```
Kontrol Yapıları (Control Structures)
If-Else
if age >= 18 {
fmt.Println("You are an adult.")
} else {
fmt.Println("You are a minor.")
}
Ders Alıştırması: Bir öğrencinin vize ve final notuna göre geçip geçmediğini kontrol edin. (vize %40 final %60)
```go
package main
import "fmt"
func main() {
var vizeNotu, finalNotu float64
fmt.Println("Vize notunu girin: ")
fmt.Scanln(&vizeNotu)
fmt.Println("Final notunu girin: ")
fmt.Scanln(&finalNotu)
result := vizeNotu*0.4 + finalNotu*0.6
if result >= 50 {
fmt.Println("Geçtiniz.")
} else {
fmt.Println("Kaldınız.")
}
}
```
Switch
switch day := "Monday"; day {
case "Monday":
fmt.Println("Start of the work week.")
case "Friday":
fmt.Println("End of the work week.")
default:
fmt.Println("Midweek day.")
}
Ders Alıştırması: Bir öğrencinin öğrenim kredisini hangi gün alacağını söyleyen uygulama (TC Kimlik numarasının sonu “0” olanlar 6 Aralık, “2” olanlar 7 Aralık, “4” olanlar 8 Aralık, “6” olanlar 9 Aralık, “8” olanlar 10 Aralık'ta ödemelerini alabiliyor.)
```go
package main
import "fmt"
func main() {
fmt.Println("TC Kimlil Numaranınız giriniz ")
var tcNo int
fmt.Scanln(&tcNo)
switch tcNo % 10 {
case 0:
fmt.Println("6 Aralık'ta öğrenim kredinizi alabilirsiniz.")
case 2:
fmt.Println("7 Aralık'ta öğrenim kredinizi alabilirsiniz.")
case 4:
fmt.Println("8 Aralık'ta öğrenim kredinizi alabilirsiniz.")
case 6:
fmt.Println("9 Aralık'ta öğrenim kredinizi alabilirsiniz.")
case 8:
fmt.Println("10 Aralık'ta öğrenim kredinizi alabilirsiniz.")
default:
fmt.Println("Öğrenim kredinizi alabileceğiniz bir gün bulunmamaktadır.")
}
}
```
For Döngüsü (For Loop)
for i := 0; i < 5; i++ {
fmt.Println(i)
}
Ders Alıştırması: 1'den 10'a kadar olan sayıları ekrana yazdırın.
```go
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
fmt.Println(i)
}
}
```
Range
numbers := []int{1, 2, 3, 4, 5}
for index, value := range numbers {
fmt.Println(index, value)
}
Ders Alıştırması: 1'den 5'e kadar olan sayıları bir dilimde (slice) tanımlayın ve dilimdek elemanları her adım toplayıp ekrana yazdırın.
```go
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
sum := 0
for _, value := range numbers {
sum += value
}
fmt.Println(sum)
}
```
Teorikten Pratiğe Ödev:
- Değişkenler: Bir tamsayı ve bir metin değişkeni tanımlayın ve bu değişkenleri ekrana yazdırın.
- Değişkenler: Bir mantıksal ve bir ondalıklı sayı değişkeni tanımlayın ve bu değişkenleri toplayıp ekranı yazdırın.
- Sabitler: Pi sayısını temsil eden bir sabit tanımlayın ve ekrana yazdırın.
- Operatörler: İki tamsayı değişkeni tanımlayın ve bu değişkenler üzerinde aritmetik işlemler yaparak sonuçları ekrana yazdırın.
- Kontrol Yapıları: Bir tamsayı değişkeni tanımlayın ve bu değişkenin pozitif, negatif veya sıfır olduğunu kontrol eden bir program yazın.
- Döngüler: 1’den 10’a kadar olan sayıları ekrana yazdıran bir program yazın.
- Range: Bir dilim (slice) tanımlayın ve bu dilimdeki elemanları ekrana yazdırın.
- Görevleri tamamladıktan sonra ödevinizi fork edilmiş reponuzda
ders2
klasörü altında main.go
dosyası olarak kaydedin ve pull request oluşturun.
- Pull request linkini ödev teslim formunda paylaşın.