Menu
Coddy logo textTech

Tip Dönüşümü

Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 31 / 88.

gets ile girdi okuduğunuzda, kullanıcı bir sayı yazsa bile Ruby her zaman bir string döndürür. Hesaplamalar yapmanız gerektiğinde bu bir sorun haline gelir.

age = gets.chomp
puts age + 5

Bu kod bir hataya neden olacaktır çünkü bir dizeye (string) bir sayı ekleyemezsiniz. Bunu düzeltmek için, dizeyi .to_i (tam sayıya) veya .to_f (ondalıklı sayıya) kullanarak bir sayıya dönüştürmeniz gerekir:

age = gets.chomp.to_i
puts age + 5

Şimdi kullanıcı "20" yazarsa, çıktı 25 olacaktır. Ondalık sayılara ihtiyacınız olduğunda .to_f kullanın:

price = gets.chomp.to_f
puts price * 1.1

Sayıları .to_s kullanarak tekrar dizelere dönüştürebilirsiniz. Bu, dize enterpolasyonu kullanmadan sayıları metinle birleştirmeniz gerektiğinde kullanışlıdır:

count = 42
puts "Count: " + count.to_s
challenge icon

Görev

Kolay

Kullanıcıdan girdi olarak iki sayı okuyun. İlk girdi bir tam sayı (integer) ve ikinci girdi bir ondalıklı sayıdır (float).

Aşağıdakileri hesaplayın ve ayrı satırlara yazdırın:

  1. Her iki sayının toplamı
  2. Her iki sayının çarpımı (multiplication)

Hesaplamaları yapmadan önce her girdiyi uygun sayısal türe dönüştürdüğünüzden emin olun.

Örneğin, girdiler 5 ve 2.5 ise, çıktı şöyle olmalıdır:

7.5
12.5

Kopya kağıdı

gets ile girdi okurken, Ruby her zaman bir dize döndürür. Hesaplama yapmak için, .to_i (tam sayıya) veya .to_f (ondalıklı sayıya) kullanarak dizeleri sayılara dönüştürün:

age = gets.chomp.to_i
puts age + 5

Ondalıklı sayılar için .to_f kullanın:

price = gets.chomp.to_f
puts price * 1.1

Sayıları tekrar dizelere dönüştürmek için .to_s kullanın:

count = 42
puts "Count: " + count.to_s

Kendin dene

# Girdiyi oku
integer_num = gets.chomp.to_i
float_num = gets.chomp.to_f

# YAPILACAK: Toplamı ve çarpımı hesaplamak için kodunuzu aşağıya yazın


# Sonuçları yazdır (toplamı ve çarpımı ayrı satırlara yazdır)
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler