Merhabalar, bugün sıfırdan ileri seviye Javascript konularımızın 4.bölümündeyiz. Bugün konu anlatımından daha çok geçen 3 ders ile alakalı somut örnekler yaparak öğrendiklermizin ne işe yaradığını ve pekiştirmemize yardımcı sağlayacağını düşünüyorum. Soruların cevaplarına bakmadan önce ilk siz uğraşın deneyin. Yapamazsanız bakın daha sonra tekrar deneyin yine mi olmadı bu sefer kodu bakarak yazın. Bu sürede sizin de hem eliniz hem gözünüz kodlara aşina olacaktır. Şimdi dilerseniz sorulara geçelim.
1) Aylık maaşından 5000 euro, yıllık 10000 euro ikramiye, ayda 15000 euro online kurstan kazanıyor.' cümlesindeki sayıları alıp number tipine çeviriniz. Daha sonra bu sayıları toplayıp konsola yazdırınız.
Burada önce toplam değişkenine 0 değeri atadık ki bilgisayar rastgele sayı verip işlem sonucu farklı çıkması. Daha sonra aylikMaas, YillikMaas ve onlineMaas değişkenlerini indexof metodu ile aradığımız sayıların hangi indexten başladığını öğrendik. Böylece öğrendiğimiz indexten itibaren dilimleyip sayıları alacağız. Ek olarak onlineMaasta lastindexof kullandık. Bunun sebebi ise indexof metodu ilk değeri gösterir. 1 ile başlayan iki stringimiz var yıllık da 1 ile başlıyor online da. Bu yüzden indexof'u yıllığa, lastindexof'u ise online verdik.
Burada sayılarımızı cümleden dilimledik ve sayılarımızı aldık. Geriye bu sayıları stringten number tipine çevirmek ve toplamak kaldı.
Kod:
let yazi = "Aylık maaşından 5000 euro, yıllık 10000 euro ikramiye, ayda 15000 euro online kurstan kazanıyor.";
let toplam = 0;
let aylikMaas = yazi.indexOf("5");
let yillikMaas = yazi.indexOf ("1");
let onlineMaas = yazi.lastIndexOf ("1")
console.log(aylikMaas)
console.log(yillikMaas)
console.log(onlineMaas)
Burada önce toplam değişkenine 0 değeri atadık ki bilgisayar rastgele sayı verip işlem sonucu farklı çıkması. Daha sonra aylikMaas, YillikMaas ve onlineMaas değişkenlerini indexof metodu ile aradığımız sayıların hangi indexten başladığını öğrendik. Böylece öğrendiğimiz indexten itibaren dilimleyip sayıları alacağız. Ek olarak onlineMaasta lastindexof kullandık. Bunun sebebi ise indexof metodu ilk değeri gösterir. 1 ile başlayan iki stringimiz var yıllık da 1 ile başlıyor online da. Bu yüzden indexof'u yıllığa, lastindexof'u ise online verdik.
Kod:
let yazi = "Aylık maaşından 5000 euro, yıllık 10000 euro ikramiye, ayda 15000 euro online kurstan kazanıyor.";
let toplam = 0;
let aylikMaas = yazi.slice(16,20)
let yillikMaas = yazi.slice(34,39)
let onlineMaas = yazi.slice(60,65)
console.log(aylikMaas)
console.log(yillikMaas)
console.log(onlineMaas)
Burada sayılarımızı cümleden dilimledik ve sayılarımızı aldık. Geriye bu sayıları stringten number tipine çevirmek ve toplamak kaldı.
Kod:
let yazi = "Aylık maaşından 5000 euro, yıllık 10000 euro ikramiye, ayda 15000 euro online kurstan kazanıyor.";
let toplam = 0;
let aylikMaas = yazi.slice(16,20)
let yillikMaas = yazi.slice(34,39)
let onlineMaas = yazi.slice(60,65)
aylikMaas = parseInt(aylikMaas)
yillikMaas = parseInt(yillikMaas)
onlineMaas = parseInt(onlineMaas)
toplam = aylikMaas + yillikMaas + onlineMaas
console.log(toplam)
ParseInt ile string değerleri number tipine çevirdik ve toplam değişkenine bu maaşları toplayıp ekledik. En sonda da konsola yazdırdık 30 bin Euro aylık geliri varmış kişinin hey maşallah
2) Kullanıcıdan saatlik kazandığı ücreti ve kaç saat çalıştığının verilerini isteyin. Bu aldığınız verilerle kaç para kazandığını bulun.
Kod:
let saatAl = parseInt(prompt("Kaç saat çalıştınız ?"));
let maasAl = parseInt(prompt("Saatlik ücretinizi giriniz"))
let sonuc = 0;
sonuc = saatAl * maasAl
console.log("Gun sonu alacağınız maas : " + sonuc)
saatAl ve maasAL değişkenlerimizin önce sayı olması için parseInt yazıyoruz ve prompt değeriyle sayıları alıyoruz. Toplam alacağımız ücreti ise çalışılan saat ile saatlik ücreti çarparak buluyoruz.
3) Kullanıcıdan üçgenin a,b,c kenarlarını girmesini isteyin üçgenin alanını hesaplayıp konsola yazdırın.
Kod:
let a = parseInt((prompt("A köşesinin değerini giriniz")));
let b = parseInt((prompt("B köşesinin değerini giriniz")))
let c = parseInt((prompt("C köşesinin değerini giriniz")));
let cevre = a + b + c;
console.log(cevre)
A,B ve C değişkenlerini kullanıcıdan değer almak için prompt ve aldığımızı değeri number tipine çevirmek için parseInt kullanıyoruz. Daha sonra cevre değişkeni oluşturup girilen köşe değerlerini toplayıp cevre değişkenine aktarıyoruz. En sonda ise konsola cevre değişkenini yazdırıyoruz.
4) Kullanıcıdan vize ve final notlarını alınız. Eğer final notu 50'den düşükse dersten kalındığına dair uyarı verilsin. Ek olarak aldığınız değerlerin ortalamasını alıp harf notuna göre konsola yazdırınız (0-40 FF, 40-50 DD, 50-60 CC, 70-80 BB, 80-100 AA)
Kod:
let vize = parseInt((prompt("Vize Notu giriniz")))
let final = parseInt((prompt("final notu giriniz")))
let ortalama = vize * 0.4 + final * 0.6
if(final < 50)
{
alert("final notunuz 50 altında olduğu için dersten kaldınız");
}
if(ortalama < 40)
{
console.log("Harf notunuz : FF")
}
else if(ortalama > 40 && ortalama < 50)
{
console.log("Harf notunuz : DD")
}
else if (ortalama > 50 && ortalama <60)
{
console.log("Harf notunuz : CC")
}
else if(ortalama > 60)
{
console.log("harf notu : A")
}
İlk olarak kullanıcıdan vize ve final notlarını alıp number tipine çeviriyoruz. Daha sonra ortalamayı hesaplamak için vizeyi 0.4 ile (%40'ını) finali ise 0.6 (%60'ını) çarparak bu iki değişkeni topluyoruz. Bu toplanan değerleri ortalama değişkenine atadık.
Şimdi en can alıcı nokta koşulları kullanmaktır. Eğer koşulları anladıysanız çok rahat yaparsınız bu kısmı.
İlk olarak final notu 50'den düşük ise direkt dersten kalınacağına dair uyarı verilmesi isteniyor. Bu işlemi final küçükse 50'den alert ile bize dersten kalındığına dair uyarı vermesini istiyoruz.
Bundan sonraki işlemler ise ortalama ile ilgili. Ortalama 40'tan küçükse her türlü FF notu gelecektir. Küçük eşit deseydik 40 sayısı da buna dahil olacaktı ama burada FF almak için 39 yeterli.
Else if ile biraz daha optimize çalışmasını sağlayabilirsiniz veya if de kullanabilirsiniz ikisi de aynı şey sonuçta. Ortalama 40 büyük ise VE ortalama 50'den düşükse konsola DD girilmesini istiyoruz. Bundan sonraki işlemler tekrar olduğu için ben 60'dan sonrakini AA kabul ettim ama siz elinizin alışması ve pratik olsun diye hepsini teker teker yazın. Bozun tekrar yazın
Vize ve final notunu girdim ve final notunu bilerek 50 altında yazdım. Bu pencere beni uyardı.
Burada ise hem vize notunu 70 hem final notunu 70 girdim ve AA olarak döndü.
5) Kullanıcıdan alınan ay üzerine hangi mevsimde olduğunu bulan program yazınız
Kod:
let ay = prompt("Bir ay giriniz:");
let mevsim = "";
switch (ay) {
case "eylül":
case "ekim":
case "kasım":
mevsim = "Sonbahar";
break;
case "aralık":
case "ocak":
case "şubat":
mevsim = "Kış";
break;
case "mart":
case "nisan":
case "mayıs":
mevsim = "İlkbahar";
break;
case "haziran":
case "temmuz":
case "ağustos":
mevsim = "Yaz";
break;
default:
mevsim = "Geçersiz ay ismi!";
}
console.log("Mevsim: " + mevsim);
İlk olarak kullanıcıdan ay almak için ay değişkeni yazarak ayı aldık. Daha sonra mevsim değişkenini boş bir string değeri olacak şekilde tanımladık.
Bundan sonra switch case yapısını bilen yapabilir. Switch (ay) ile girilen değerin switchte var olup olmadığını kontrol ediyoruz. 3 ayı case ile belirttikten sonra mevsim değişkenine o 3 ayın mevsim adını string olarak değişkene tanımlıyoruz ve break ile işlemin devam etmesini durduruyoruz (eğer program mevsimi buldu ise).
En sonda default ile 12 ay dışında rastgele değerlere karşı geçersiz ay ismi diyerek konsola döndürüyoruz. Böylece switch case işlemi sona eriyor. Sadece konsola yazdırmak kalıyor.
Konsola string olarak mevsim yazdıktan sonra artı operatörü ile mevsim değişkenini ekliyoruz. Böylece konsolda çıktı :
Mevsim : ( kullanıcının girdiği aya bağlı olan mevsim)
Olarak çıkacaktır.
Tebrikler, bugün son 3 derste öğrendiklerini 5 soru ile pratik ve tekrar ettin. Bu ilk üç konu bizim temelimiz için önemlidir. Bu üç konuda eksik varsa tekrar etmeyi ve pratik yapmayı unutma. Kendin de sorular oluşturup çözebilirsin. Mesela basit bir ATM uygulaması yapabilirsin. 1'e basınca para göndersin 2'e basınca para çeksin 3'e basınca mevcut bakiyeyi göstersin 4'e basınca ise sistemden çıksın.
Küçük bir yardım : switch case kullanmaya ne dersin bu programda


