diff --git a/Algorithms_and_programming/Массивы-закреп.py b/Algorithms_and_programming/Массивы-закреп.py new file mode 100644 index 0000000..cae5e82 --- /dev/null +++ b/Algorithms_and_programming/Массивы-закреп.py @@ -0,0 +1,217 @@ +import random, math +print ("Задание 1") +### Задание 1 +list1 = [] ## Пустой список, который мы потом будем заполнять случайными числами +summary_of_positive = 0 ##Сумма положительных чисел +count_of_positive = 0 ##Счётчик количества чисел, которые больше 0 +for _ in range (15): ##Ой, точно. Я где-то читал, что некрасиво использовать i при создании цикла, если в цикле она использоваться не будет + list1.append(random.randint(-10,30)) +for i in range (15): + if list1[i] >= 0: + summary_of_positive += list1[i] + count_of_positive += 1 +med = summary_of_positive // count_of_positive +print (med) +print ("Задание 2") +### Задание 2 +list2 = [] ## Пустой список, который мы потом будем заполнять случайными числами +for _ in range (10): + list2.append(random.randint(10,50)) +list2_2 = list2[::2] ##Создаю массив положительных чисел при помощи срезов +print ( max(list2_2)) + +print("Задание 3") +### Задание 3 +list3 = [] ## Пустой список, который мы потом будем заполнять случайными числами +for _ in range (15): + list3.append(random.randint(10,90)) ##Заполняем списочек +minimal_number = min(list3) ## Находим минимальное число +for i in range (15): + if list3[i] == minimal_number: ##Дальше проходим по всему списку при помощи цикла и сравниваем числа списка с минимальным, если число равно минимальному, то записываем его индекс + index = i +first_number = list3[0] ##Записываем первое число списка в переменную, чтобы не потерять его при перестановках +print (list3) ## Хотя я мог просто переставить первое число на место минмального, а минимальное и так было у меня зашито в переменную. Ну да ладно +list3[0] = minimal_number +list3[index] = first_number +print (list3, minimal_number, index) + +print ("Задание 4") +## Задание 4 +list4 = list(range(1,21)) +print("Введите числа среза") +n = int(input()) +k = int(input()) +if n > k: + print ("Ну ты и абоба. Такой срез я не пропущу") +else: + list4_srez = list4[n:k+1] + print (list4_srez, min(list4_srez)) + +print("Задание 5") +## Задание 5 +list5 = [] +summary_list5 = 0 +summary_list2 = 0 + +n = int(input()) +n2 = n * 2 +for _ in range (n2): + list5.append (random.randint(-50,50)) +summary_list5 = sum(list5[:n]) # Находим первую половину +summary_list2 = sum(list5[n:]) # Находим вторую половину +result = summary_list5 - summary_list2 +print (result) + +print ("Задание 6") +## Задание 6 +n = int(input()) +while n < 10: + print ("n должно быть больше 10") + print("Введите число n") + n = int(input()) ## Мне наверное стоит продолжить писать комментарии, но чёта времени уже 4 ночи, я усталь + if n > 10: + break +list6 = [] +for _ in range(n): + list6.append(random.randint(-20, 20)) +print("Массив до:", list6) + +for i in range(len(list6)): + if list6[i] < 0: + list6[i] = list6[i] * list6[i] +print("Массив после:", list6) + +print("Задание 7") +### Задание 7 +list7 = [] +for _ in range(15): + list7.append(random.randint(-10, 10)) +print("Массив:", list7) + +sum_pos = 0 +count_pos = 0 +sum_neg = 0 +count_neg = 0 +zeros = 0 + +for x in list7: + if x > 0: + sum_pos = sum_pos + x + count_pos = count_pos + 1 + elif x < 0: + sum_neg = sum_neg + x + count_neg = count_neg + 1 + else: + zeros = zeros + 1 + +print("Среднее полож:", sum_pos / count_pos) +print("Среднее отриц:", sum_neg / count_neg) +print("Нулей:", zeros) + +print("Задание 8") +### Задание 8 +n = int(input("Введите n: ")) +list8 = [] +for _ in range(2 * n): + list8.append(random.randint(1, 5)) +print("Массив:", list8) + +sum_sq = 0 +sum_cu = 0 +for i in range(len(list8)): + if i % 2 == 0: + sum_sq = sum_sq + (list8[i] * list8[i]) + else: + sum_cu = sum_cu + (list8[i] * list8[i] * list8[i]) +print("Сумма квадратов чётных индексов:", sum_sq) +print("Сумма кубов нечётных индексов:", sum_cu) + +print("Задание 9") +### Задание 9 +list9 = [] +for _ in range(10): + list9.append(random.randint(1, 100)) +print("До:", list9) + +m_val = max(list9) +m_idx = 0 +# Сначала найдём максимум +for i in range(len(list9)): + if list9[i] == m_val: + m_idx = i #Блин, а ведь я мог назвать переменную безумным максом + break + +# Теперь всё, что после индекса m_idx, делаем нулями +for i in range(m_idx + 1, len(list9)): + list9[i] = 0 +print("После:", list9) + +print("Задание 10") +### Задание 10 +list10 = [5, 1, 10, 3, 0] # Пример, можно через рандом +max_v = max(list10) +min_v = min(list10) +i_max = 0 +i_min = 0 +for i in range(len(list10)): + if list10[i] == max_v: i_max = i + if list10[i] == min_v: i_min = i + +list10[i_max] = min_v +list10[i_min] = max_v +print("Поменяли местами мин и макс:", list10) + +print("Задание 11") +### Задание 11 +list11_x = [1.5, 2.0, 3.5, 4.0] +list11_y = [] +for val in list11_x: + list11_y.append(val * 0.5) + +print("Массив X | Массив Y") +for i in range(len(list11_x)): + print(list11_x[i], " ", list11_y[i]) ## О как прикольно сделал, почти молодец + +print("Задание 12") +### Задание 12 +list12 = [1, 3, 5, 8, 10] +nomer = 0 +for i in range(len(list12)): + if list12[i] % 2 == 0: + nomer = i + 1 + break +print("Номер первого четного:", nomer) + +print("Задание 13") +### Задание 13 +a = [1, 2, 3, 4] +b = [3, 4, 5, 6] +common = [] +for x in a: + if x in b: + common.append(x) +print("Общие:", common) + +print("Задание 14") +### Задание 14 +a = [1, 2, 3] +b = [1, 1, 2, 1, 5] +for x in a: + kolvo = 0 + for y in b: + if x == y: + kolvo = kolvo + 1 + print("Элемент", x, "встречается", kolvo, "раз") + +print("Задание 15") +### Задание 15 +orig = [1, -2, 3, -4, 5] +pos = [] +neg = [] +for x in orig: + if x >= 0: + pos.append(x) + else: + neg.append(x) +final = pos + neg +print("Сначала положительные, потом отрицательные:", final)