Zadanie 001.1: Zaawansowane Operacje (Kalkulator Podróży)

PYTHON
Priorytet: Normalny Szkic

Zadanie 001.1: Zaawansowane Operacje (Kalkulator Podróży)

Wstęp

Znasz już podstawy, ale programowanie to coś więcej niż dodawanie i mnożenie. W tym zadaniu wejdziesz na wyższy poziom. Nauczysz się wyciągać fragmenty tekstów (np. inicjały), zamieniać liczby na napisy (i odwrotnie) oraz używać matematyki do przeliczania czasu (np. zamiana 125 minut na 2 godziny i 5 minut). Stworzysz narzędzie, które mogłoby być zalążkiem systemu rezerwacji biletów!

Cel zadania

Napisać skrypt w Pythonie, który symuluje system planowania podróży. Program przetworzy dane o trasie, obliczy dokładny czas (godziny i minuty), koszty oraz wygeneruje unikalny "Kod Biletu" na podstawie nazw miast.

Nowe Koncepcje

1. Dzielenie całkowite i reszta (Modulo)

To kluczowe operacje w programowaniu!

  • // (Floor Division): Dzielenie bez reszty (zaokrąglenie w dół).
  • % (Modulo): Reszta z dzielenia.
minuty_calkowite = 130
godziny = minuty_calkowite // 60  # Wynik: 2 (bo 2*60=120)
reszta_minut = minuty_calkowite % 60  # Wynik: 10 (bo 130-120=10)
# Efekt: 2 godziny i 10 minut

2. Manipulacja tekstem (Slicing i Metody)

Możesz wycinać kawałki tekstu i zmieniać ich wielkość.

  • tekst[start:stop] - wycina znaki od indeksu start do stop (bez niego).
  • .upper() - zamienia na wielkie litery.
miasto = "Warszawa"
skrot = miasto[0:3]       # Wynik: "War"
kod = skrot.upper()       # Wynik: "WAR"

3. Konwersja typów (Casting)

Czasami trzeba zmienić napis na liczbę lub odwrotnie.

liczba_str = "50"
liczba_int = int(liczba_str)  # Teraz można na niej liczyć
wynik_txt = str(100)          # Teraz to napis "100"

Treść Zadania

Stwórz plik main.py.

  1. Zadeklaruj zmienne wejściowe:

    • miasto_start (np. "Krakow")
    • miasto_cel (np. "Gdansk")
    • dystans (int, w kilometrach, np. 580)
    • cena_paliwa (float, np. 6.55)
    • spalanie_na_100 (float, np. 7.5)
  2. Obliczenia matematyczne:

    • Oblicz koszt_calkowity: (dystans / 100) * spalanie_na_100 * cena_paliwa.
    • Załóżmy średnią prędkość 90 km/h. Oblicz czas_w_godzinach (zmiennoprzecinkowe): dystans / 90.
    • Wyzwanie: Przelicz ten czas na format "X godz. Y min.".
      • Oblicz całkowitą liczbę minut: int(czas_w_godzinach * 60).
      • Oblicz pełne godziny: użyj operatora //.
      • Oblicz pozostałe minuty: użyj operatora %.
  3. Generowanie Kodu Biletu:

    • Stwórz zmienną kod_trasy. Ma ona się składać z:
      • 3 pierwszych liter miasta startowego (wielkie litery).
      • Myślnika -.
      • 3 pierwszych liter miasta docelowego (wielkie litery).
      • Myślnika -.
      • Dystansu przekonwertowanego na napis.
    • Przykład dla Kraków-Gdańsk 580km: KRA-GDA-580.
  4. Raport końcowy:

    • Wyświetl wszystko w ładnej ramce używając f-stringów.

Przykład Wyniku (Terminal)

========================================
           BILET PODRÓŻNY
========================================
Trasa:       Krakow -> Gdansk
Kod biletu:  KRA-GDA-580
----------------------------------------
Dystans:     580 km
Szac. czas:  6 godz. 26 min.
----------------------------------------
Koszt:       284.92 PLN
========================================

Debugowanie

  • Jeśli Kod biletu nie ma wielkich liter, sprawdź czy użyłeś .upper().
  • Jeśli minuty wychodzą dziwne (np. 80 min), sprawdź obliczenia modulo %.
  • Pamiętaj, że indeksy w Pythonie liczymy od 0 (0 to pierwsza litera).

Konfiguracja GIT

git init
git add main.py
git commit -m "Rozwiązanie zadania 001.1: Kalkulator podróży"