Merhaba, hoş geldiniz. Kararlar, if deyimi ve switch deyimi
hakkındaki derslerimizi tamamladığımıza göre, size küçük bir
ödev, küçük bir meydan okuma vermek istiyorum.
Bu yarışmada haftalık maaşınızı hesaplayan bir c programı oluşturacaksınız.
Bu program kullanıcıdan klavye aracılığıyla bir haftada çalışılan saat sayısını girmesini
istemelidir.
Program çıktı olarak brüt ücreti, vergileri ve net ücreti göstermelidir.
Dolayısıyla aşağıdaki temel varsayımlar yapılmalıdır.
Ücret saati 12 dolar olacak.
Fazla mesai, 40 saatten fazla çalıştığınız her zaman, bir buçuk saat ücret alırsınız.
Vergi oranı ne kadar para kazandığınıza bağlı olacaktır.
Kazandığınız ilk 300 dolar için bu oran %15 olacaktır.
İkinci 150 dolar için 300 ila 450, %20 olacak.
Ve 450'nin üzerindeki her şey için %25'lik vergi
oranından yararlanacaksınız.
Fark etmeniz gereken ilk şey, çok fazla karar yazmanız gerekeceğidir.
Ve bu ödevin tüm amacı if else ifadelerine aşina olmanızı sağlamaktır.
Bu ödev için beklediğim şey, öncelikle
fazla mesaiyi hesaplamak için bir if else deyimine ihtiyacınız
olacak.
Yani fazla mesai 40 saati aşan her
şeydir. Bu yüzden fazla mesai olup olmadığını görmeniz gerekecek. Girilen saat sayısı
40'tan fazlaysa, saat başına 18 dolar ödeneceğini söylemeniz gerekecek.
Şimdi sadece 40 saatten sonraki saatler için ödeme aldıklarından
emin olmak istiyorsunuz.
Yani çalışılan saat sayısını 45 olarak girerseniz,
ilk 40 saat için saat başına 12 dolar ödeme alırsınız.
Diğer 5 saat için de saatte 18 dolar kazanacaksınız.
Bu yüzden bunu aklınızda tutmalısınız.
Ve vergi oranlarıyla birlikte, eğer beyanlarına sahip olmanız gerekecek. Çünkü 300 dolardan fazla mı yoksa
450 dolardan fazla mı kazandıklarına bağlı olarak, ek vergi oranlarına
sahip olacaksınız. Yani eğer kullanıcı 45 girdiyse ve bu da fazla mesai
ücretini hesaplamanız gerektiği anlamına geliyorsa.
Sonunda 45 saat için ne olacak, sanırım kabaca ücret,
diyelim ki saatte 12 dolar çarpı 40 480 olacak.
Ve bu fazladan 5 saat için saat
başına 18 dolar, yani 90 dolar
alacaksınız. Yani 480 artı 90 570 eder.
Dolayısıyla, brüt ödeme için 570 göstermelisiniz, bu örnek bir çalışma
olacaktır, brüt ödeme
için 570 dolar. Şimdi vergiler
570'in tamamı için farklı hesaplanacak.
Yani kazandığınız ilk 300 dolar
için vergi oranınız %15 olacak. Yani 300 doların %15'ini vergilendirmek istiyorsunuz.
Ve sonra 300 ila 450 arası, yani 150 dolar, %20 oranında vergilendirilecek,
sadece 150 dolar.
Eğer bundan daha fazla kazanırsanız, %25 oranında vergilendirilirsiniz.
Bu yüzden bu vergi oranlarını karıştırmayın.
Vergi oranları toplam için değil, kazandığınız her miktar için
farklıdır.
Yani 800 dolar kazandıysanız bu %25 vergi ödediğiniz anlamına gelmez.
Bu, 800 doların 300 dolarını %15, 150
dolarını %20 ve kalan 350 dolarını
da %25 olarak ödediğiniz anlamına gelir.
Bu da sizi if else deyimleri yazmaya zorlayacaktır.
Bu yüzden çıktı ve ne aradığımız konusunda bunu açıklığa kavuşturmak istedim.
Şunun üzerinden geç. Gereksinimler oldukça basittir.
Birkaç saat boyunca klavye aracılığıyla bir şeyler girmeniz gerekecek.
Yapmak istediğiniz ilk şey programınızı düzenlemektir.
Sürekli test etmek, anlamlı isimler kullanmak istiyorsunuz.
Ve if ifadeleri için girinti yapmak istersiniz. Okumayı kolaylaştırmak için tüm bloklarınızı girintili hale getirmek istersiniz.
Tüm derslerimde, tüm örneklerimde kodu girintilediğimi fark etmiş olmalısınız.
Blokları girintileme ve okunabilirlik için yeni satırlar ekleme alışkanlığı edinin.
Ancak bu programı sorun çözme yönüyle gruplandırabilirsiniz.
Yapacağım ilk şey, kullanıcının numarayı girmesini
sağlamak ve bunu test edip çalıştığından emin olmaktır.
Yapacağım bir sonraki şey, brüt ücreti hesaplamak olurdu.
Dolayısıyla, brüt ücret temelde sadece 40'tan fazla ise fazla mesainin hesaplanmasını içerecektir.
Brüt ödemeyi bitirdiğimde, çalıştığından emin olmak için deli gibi test ederdim. Sonra vergilere geçerdim ve vergileri
test ederdim.
Vergileri hallettikten sonra da net
maaşımı hesaplarım. Net maaş en kolay kısım olacak çünkü
bu sadece brüt maaştan vergilerin çıkarılmasıyla elde edilecek.
Ancak bu alıştırmanın sonunda, eğer ifadelerinde oldukça
ustalaşacağınızı umuyorum. En azından temelleri anlayacak, diğerlerini anlayacak,
ne zaman parantez eklemeniz gerektiğini anlayacak ve girinti yaparak ve iyi değişken adları kullanarak
kodunuzu nasıl daha okunabilir hale getireceğinizi anlayacaksınız.
İyi şanslar. Teşekkür ederim.