Advertisement
ada1711

Python - Lekcja 16 - 26.04

Apr 26th, 2023
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.30 KB | None | 0 0
  1. import random
  2. my_list = []
  3.  
  4. for i in range(20):
  5.     value = random.randint(1, 100)
  6.     my_list.append(value)
  7.  
  8. # [10, 5, 8, 3, 15, 12, 17, 4, 9, 6, 19, 2, 7, 14, 16, 18, 20, 13, 11, 1]
  9.  
  10. #========================================================
  11.  
  12. def bubble_sort(arr):
  13.     n = len(arr)
  14.     # iterujemy przez wszystkie elementy listy
  15.     for i in range(n):
  16.         # ostatnie i elementów są już posortowane
  17.         for j in range(0, n-i-1):
  18.             # porównujemy sąsiednie elementy
  19.             if arr[j] > arr[j+1]:
  20.                 # zamieniamy miejscami, jeśli kolejność jest nieprawidłowa
  21.                 arr[j], arr[j+1] = arr[j+1], arr[j]
  22.     return arr
  23.  
  24. #========================================================
  25.  
  26. def linear_search(arr, x):
  27.     n = len(arr)
  28.     for i in range(n):
  29.         if arr[i] == x:
  30.             return i
  31.     return -1
  32.  
  33. #========================================================
  34.  
  35. def binary_search(arr, x):
  36.     low = 0
  37.     high = len(arr) - 1
  38.     mid = 0
  39.  
  40.     while low <= high:
  41.  
  42.         mid = (high + low) // 2
  43.  
  44.         if arr[mid] < x:
  45.             low = mid + 1
  46.  
  47.         elif arr[mid] > x:
  48.             high = mid - 1
  49.  
  50.         else:
  51.             return mid
  52.  
  53.     return -1
  54.  
  55. #========================================================
  56.  
  57. # funkcja sortująca bubble sort
  58. def bubble_sort(arr):
  59.     n = len(arr)
  60.     for i in range(n):
  61.         for j in range(0, n-i-1):
  62.             if arr[j]["nazwisko"] > arr[j+1]["nazwisko"]:
  63.                 arr[j], arr[j+1] = arr[j+1], arr[j]
  64.     return arr
  65.  
  66. # lista kontaktów
  67. kontakty = []
  68.  
  69. # pętla programu
  70. while True:
  71.     print("1. Dodaj nowy kontakt")
  72.     print("2. Wyświetl listę kontaktów")
  73.     print("3. Wyjdź z programu")
  74.     wybor = input("Wybierz opcję: ")
  75.  
  76.     # dodawanie nowego kontaktu
  77.     if wybor == "1":
  78.         imie = input("Podaj imię: ")
  79.         nazwisko = input("Podaj nazwisko: ")
  80.         numer = input("Podaj numer telefonu: ")
  81.         kontakt = {"imie": imie, "nazwisko": nazwisko, "numer": numer}
  82.         kontakty.append(kontakt)
  83.         kontakty = bubble_sort(kontakty)
  84.         print("Kontakt został dodany.")
  85.  
  86.     # wyświetlanie listy kontaktów
  87.     elif wybor == "2":
  88.         if len(kontakty) == 0:
  89.             print("Brak kontaktów.")
  90.         else:
  91.             print("Lista kontaktów:")
  92.             for kontakt in kontakty:
  93.                 print(f"{kontakt['nazwisko']} {kontakt['imie']} - {kontakt['numer']}")
  94.  
  95.     # wyjście z programu
  96.     elif wybor == "3":
  97.         break
  98.  
  99.     # błąd - nieznana opcja
  100.     else:
  101.         print("Nieznana opcja.")
  102.  
  103. #========================================================
  104.  
  105. import random
  106.  
  107. def binary_search(low, high, guess):
  108.     mid = (low + high) // 2
  109.     print("Czy to jest liczba", guess, "?")
  110.     response = input("Podaj odpowiedź (za mało/za dużo/tak): ")
  111.     if response == "za mało":
  112.         return binary_search(mid + 1, high, (mid + 1 + high) // 2)
  113.     elif response == "za dużo":
  114.         return binary_search(low, mid - 1, (low + mid - 1) // 2)
  115.     else:
  116.         return guess
  117.  
  118. # losujemy liczbę z zakresu 1-100
  119. number = random.randint(1, 100)
  120. print("Wylosowana liczba to", number)
  121.  
  122. # komputer zgaduje
  123. guess = 50
  124. result = binary_search(1, 100, guess)
  125. print("Zgadłem! Wylosowana liczba to", result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement