from random import randint
ms = [randint(0, 9) for i in range(15)] #заполнение массива (списка)
ms.sort()# сортировка
count = 0
print(ms)
x = int(input())
mid = len(ms) // 2
low = 0
high = len(ms) - 1
while 1:
mid = len(ms) // 2
low = 0
high = len(ms) - 1
while ms[mid] != x and low <= high:
if x > ms[mid]:
low = mid + 1
else:
high = mid - 1
mid = (low + high) // 2
if low > high:
break
else:
ms.pop(mid)
count += 1
print("колво чисел", x, "-", count) # итог
Объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
Задание 1a) Исправь ошибку в скрипте, чтобы программа работала правильно b) Нарисуй алгоритм с блок-схем к этому скрипту с) Сколько переменных используется в скрипте? Объясни, что такое переменные мне с 1 и со 2 заданием
from random import randint
# Создание списка,
# его сортировка по возрастанию
# и вывод на экран
a = []
for i in range(10):
a.append(randint(1, 50))
a.sort()
print(a)
# искомое число
value = int(input())
mid = len(a) // 2
low = 0
high = len(a) - 1
while a[mid] != value and low <= high:
if value > a[mid]:
low = mid + 1
else:
high = mid - 1
mid = (low + high) // 2
if low > high:
print("Такого значения нет")
else:
if (mid == 0 and a[1] != a[0]) or (mid == len(a) - 1 and a[mid - 1] != a[mid]):
print(1)
else:
q = 0
for i in range(mid, len(a)):
if a[i] == a[mid]:
q += 1
else:
break
for i in range(mid - 1, 0, -1):
if a[i] == a[mid]:
q += 1
else:
break
print(q)
Чтобы убрать вывод массива просто на 10-й строке убери print(a), а для вывода неотсортированного массива вставь после 8-й строки.