Skip to content

Latest commit

 

History

History
149 lines (76 loc) · 3.81 KB

Decomposition.md

File metadata and controls

149 lines (76 loc) · 3.81 KB

Bu sayfada decomposition hakkında yaptığım araştırmayı paylaşacağım.

Decompositon ,karmaşık bir problemi veya sistemi daha yönetilebilir hale getirmek için anlaşılması daha kolay olan küçük parçalara ayırmayı aynı zamanda programlama ve bakım yapılması için kolaylık sağlayan bilgisayar bilimidir.Daha sonra,küçük parçalar inccelenip çözülebilir veya üzerinde çalışılması daha kolay olduğu için ayrı ayrı tasarlanabilir.

Decomposition kullanma nedenimiz eğer problem ayrıştırılmazsa çözülmesi çok daha zordur.Aynı zamanda birçok farklı aşamayla uğraşmak,bir problemi birkaç küçük probleme bölüp her birinin teker teker çözmekten çok daha zordur.Problemi daha küçük parçalara bölmek, her küçük problemin detaylı incenebileceği anlamına gelir.

Bu kısımda bir problemin nasıl alınacağını,ayrıştırılacağını ve onu çözmek için bir algoritmanın nasıl tasarlanacağını inceleyeceğiz.

Bir çalışanın haftalık ücreti, ücret oranına ve haftada çalışılan saat sayısına bağlıdır. Çalışanlar haftada en az bir saat, en fazla 60 saat çalışırlar. 40 saatten fazla çalışan bir çalışana, 40'ın üzerinde çalışılan tüm saatler için normal ücretin 1,5 katı ödenir. Normal ücret, saat başına 10 sterlindir. Herhangi bir çalışanın haftalık ücretini hesaplamak ve çıktısını almak için bir program gereklidir.

 Problemi Decompositon yöntemi kullanarak ayrıştırma;

1-Kaç saat çalışıldığını öğrenin.

2-Bu saatlerden kaçının normal oranda ödeneceğini öğrenin.

3-Bu saatlerden kaçının, varsa fazla mesai oranında ödeneceğini öğrenin.

4-Normal saatler için ödemeyi hesaplayın Fazla mesai saatleri için ödemeyi hesaplayın.

5-Normal ve fazla mesai saatleri için toplam ödemeyi hesaplayın.

6-Sonucu yazın.

Variables ve Constants

Yukarıdaki çözüm aşağıdakı variables değerleri gerektirecektir.Program çalıştırıldığında bu değerler değişecektir.

Variable -> Data type

hours_worked -> Float

overtime_hours -> Float

normal_pay -> Float

overtime_pay -> Float

total_pay -> Float

Asağıdaki constant değerler kullanılacaktır.Program çalıştırıldığında bu değerler değişmeyecektir.

Constant -> Data type

HOURLY_RATE -> Float

OVERTIME_RATE -> Float

MAX_HOURS -> Integer

MIN_HOURS ->Integer

NORMAL_HOURS -> Integer

#variable ve constant tanımlama

Set HOURLY_RATE = 10.00

Set OVERTIME_RATE = 15.00

Set MAX_HOURS = 60

Set MIN_HOURS = 1

Set NORMAL_HOURS = 40

Set hours_worked = 0

Set overtime_hours = 0

Set normal_pay = 0

Set overtime_pay = 0

total_pay = 0

{input number of hours worked}

while hours_worked < MIN_HOURS OR hours_worked > MAX_HOURS

output "Enter the number of hours worked" input hours_worked

end while

{calculate overtime hours}

if hours_worked > NORMAL_HOURS then

overtime_hours = hours_worked - NORMAL_HOURS

hours_worked = NORMAL_HOURS

end if

{calculate pay}

normal*pay = hours_worked * HOURLY*RATE

overtime_pay = overtime_hours * OVERTIME_RATE

total_pay = normal_pay + overtime_pay

{output result} Output "Normal pay rate: £" < HOURLY_RATE

Output "Overtime pay rate: £" < OVERTIME_RATE

Output "Hours worked: " < hours_worked

Output "Overtime hours worked: " < overtime_hours

Output "Total pay: £" < total_pay

End

Çıkış değerleri

Girillen değerlere göre çıktı aşağıdaki gibi olacaktır.

Örnek 1: 4 hours

Enter the number of hours worked: 4

Normal pay rate: £10

Overtime pay rate: £15

Hours worked: 4

Overtime hours worked: 0

Total pay: £40

Örnek 2: 45 hours

Enter the number of hours worked: 45

Normal pay rate: £10

Overtime pay rate: £15

Hours worked: 40

Overtime hours worked: 5

Total pay: £475

Problem decomposition kullanılarak tamamen ayrıştırıldı ve algotitma tasarlandı.