Python Alıştırması: Nükleer Reaktörü Erimeye Karşı Koruma (Meltdown Mitigation)

Bright central star with swirling blue and orange energy streams in space

Bu alıştırmada bir nükleer reaktörün kontrol sistemini geliştireceğiz.

Reaktörün güvenli çalışabilmesi için sıcaklık, nötron üretimi ve güç seviyesi sürekli kontrol edilmelidir. Göreviniz eksik bırakılan kodları tamamlayarak sistemin doğru çalışmasını sağlamaktır.

Çözümlere geçmeden önce her boşluğu kendiniz doldurmaya çalışın.


Soru 1: Reaktör Kritik Dengede mi?

Bir reaktörün güvenli bölgede çalışabilmesi için aşağıdaki üç koşulun aynı anda sağlanması gerekir:

  • Sıcaklık 800 Kelvin’den düşük olmalıdır.
  • Saniyede yayılan nötron sayısı 500’den büyük olmalıdır.
  • Sıcaklık ile nötron sayısının çarpımı 500.000’den küçük olmalıdır.

Fonksiyondaki boşluğu doldurun:

def is_criticality_balanced(
temperature,
neutrons_emitted
):
return ____________________________

Örnek:

is_criticality_balanced(750, 600)

Beklenen sonuç:

True

Soru 2: Reaktör Verimliliği Hangi Renkte Gösterilmeli?

Verimlilik aşağıdaki formülle hesaplanır:

generated_power = voltage * current

Yüzde verim:

(generated_power / theoretical_max_power) * 100

Sonuç aşağıdaki renklerden biri olmalıdır:

VerimlilikSonuç
%80 ve üzerigreen
%60 – %79.99orange
%30 – %59.99red
%30’dan düşükblack

Eksik kodları tamamlayın:

def reactor_efficiency(
voltage,
current,
theoretical_max_power
):
efficiency = ___________________
if efficiency >= ______:
return "green"
elif efficiency >= ______:
return "orange"
elif efficiency >= ______:
return "red"
else:
return "black"

Soru 3: Reaktör Durumunu Belirleme

Reaktör için bir güvenlik eşiği (threshold) tanımlanmıştır.

Öncelikle şu değeri hesaplıyoruz:

temperature * neutrons_produced_per_second

Sonra aşağıdaki kuralları uyguluyoruz:

LOW

Eğer değer eşiğin %90’ından küçükse:

LOW

NORMAL

Eğer değer eşiğin %90 ile %110’u arasındaysa:

NORMAL

DANGER

Eğer değer eşiğin %110’unu aşarsa:

DANGER

Fonksiyondaki boşlukları doldurun:

def fail_safe(
temperature,
neutrons_produced_per_second,
threshold
):
reactor_state = ______________________
if reactor_state < ______________________:
return "LOW"
elif ______________________ <= reactor_state <= ______________________:
return "NORMAL"
else:
return "DANGER"

Örnek:

fail_safe(750, 600, 500000)

Çözümler

Çözüm 1

def is_criticality_balanced(
temperature,
neutrons_emitted
):
return (
temperature < 800
and
neutrons_emitted > 500
and
temperature * neutrons_emitted < 500000
)

Bu çözümde üç koşulun da aynı anda sağlanması gerektiği için and operatörü kullanılır.


Çözüm 2

def reactor_efficiency(
voltage,
current,
theoretical_max_power
):
efficiency = (
voltage * current
/ theoretical_max_power
) * 100
if efficiency >= 80:
return "green"
elif efficiency >= 60:
return "orange"
elif efficiency >= 30:
return "red"
else:
return "black"

Burada dikkat edilmesi gereken nokta yüzde değerin ondalıklı çıkabilmesidir. Bu nedenle karşılaştırmalar yukarıdan aşağıya yapılır.


Çözüm 3

def fail_safe(
temperature,
neutrons_produced_per_second,
threshold
):
reactor_state = (
temperature
* neutrons_produced_per_second
)
if reactor_state < 0.90 * threshold:
return "LOW"
elif (
0.90 * threshold
<= reactor_state
<= 1.10 * threshold
):
return "NORMAL"
else:
return "DANGER"

Burada yüzde 10 tolerans aralığı kullanılır.

Örneğin:

  • Threshold = 500000
  • Alt sınır = 450000
  • Üst sınır = 550000

Reaktör durumu bu aralıkta ise sistem NORMAL olarak kabul edilir.


Bu Alıştırmada Öğrenilen Python Konuları

Bu çalışma aşağıdaki Python kavramlarını öğretmektedir:

  • Karşılaştırma operatörleri (<, >, <=, >=)
  • Mantıksal operatörler (and)
  • if / elif / else yapıları
  • Yüzde hesaplamaları
  • Aralık kontrolleri
  • Fonksiyonlar
  • Boolean değerler (True, False)

Gerçek dünyadaki birçok kontrol sistemi benzer mantıklarla çalışır. Sensörlerden gelen değerler belirli eşiklerle karşılaştırılır ve sistem buna göre karar verir. Bu nedenle Meltdown Mitigation alıştırması, Python’da koşullu ifadeleri öğrenmek için oldukça faydalı bir uygulamadır.

Kaynak: https://exercism.org/tracks/python/exercises/meltdown-mitigation