Czas transmisji
Mały CubeSat zapisuje zdjęcia na pokładzie i wysyła je na Ziemię za każdym razem, gdy przelatuje nad stacją naziemną. Przed każdym przelotem zespół naziemny oblicza, ile potrwa pobieranie i ilu przelotów będzie potrzebować.
Napisz ich kalkulator: wczytaj rozmiar pliku i prędkość łącza, oblicz czas przesyłania, a potem zaplanuj go przelot po przelocie.
Ukończ etap 1, aby odblokować ten etap.
Rozmiar plików mierzy się w bajtach, a prędkość łączy w bitach, i bajt to 8 bitów. Zapytaj o rozmiar pliku w MB, a potem o prędkość łącza w Mbit/s, obie jako liczby dziesiętne, i wypisz czas przesyłania w minutach z jednym miejscem po przecinku. Dla pliku 450 MB przy 2 Mbit/s:
Czas transmisji: 30.0 min
Zapomnij o 8, a wynik nadal będzie wyglądał rozsądnie, tylko osiem razy za krótki. O tej pułapce jest ten etap.
Ukończ etap 1, aby odblokować ten etap.
Zespół naziemny planuje pobieranie co do sekundy. Pokaż zamiast tego pełne minuty i sekundy, najpierw zaokrąglając do pełnej sekundy. Dla pliku 1250 MB przy 6 Mbit/s:
Czas transmisji: 27 min 47 s
Ta sama sztuczka co w „Opóźnieniu sygnału”: zaokrąglij, a potem podziel przez // i %.
Ukończ etap 2, aby odblokować ten etap.
Satelita na niskiej orbicie widzi stację naziemną tylko przez około 10 minut na przelot, więc długie pobieranie dzieli się na kilka przelotów. Dodaj PASS_S = 600 obok drugiej stałej i wypisz, ilu przelotów potrzebuje plik:
Czas transmisji: 27 min 47 s Przeloty nad stacją: 3
Pobieranie, które trwa dokładnie 30 minut, mieści się w 3 przelotach, a nie w 4. Zaokrąglij w górę tak samo jak w „Pakowaniu skrzyń”.
Podpowiedzi
Podstawowe operacje matematyczne
# Obliczanie paliwa misji
fuel_total = 1000
fuel_used = 350
fuel_remaining = fuel_total - fuel_used
print("Pozostałe paliwo:", fuel_remaining, "litrów")
# Moc silników
engines = 4
power_per_engine = 250
total_power = engines * power_per_engine
print("Całkowita moc:", total_power, "kW")
# Obliczanie średniej prędkości
distance = 1000
time_hours = 4
speed = distance / time_hours
print("Prędkość:", speed, "km/h")
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].