Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions task01.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Задание №1
# В диапазоне натуральных чисел от 2 до 99 определить, сколько из них кратны
# каждому из чисел в диапазоне от 2 до 9.

sum_ = 0
for i in range(2, 99+1):
for j in range(2, 9+1):
if (i % j) == 0:
sum_ += 1
break

print("Количество кратных чисел:", sum_)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Похоже вы ушли с урока 2 пораньше, не услышали описание алгоритма и решили не ту задачу.

13 changes: 13 additions & 0 deletions task02.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Задание №2
# Во втором массиве сохранить индексы четных элементов первого массива.
# Например, если дан массив со значениями 8, 3, 15, 6, 4, 2, второй массив
# надо заполнить значениями 0, 3, 4, 5, (индексация начинается с нуля),
# т.к. именно в этих позициях первого массива стоят четные числа.

array1 = [4,6,3,6,8,5,9,34,57,78,44,23,55,62]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А как же генерация массива, которую использовали на уроке и договорились использовать в рамках практической работы?

array2 = []
for inx, val in enumerate(array1):
if val % 2 == 0:
array2.append(inx)

print("Искомый массив: ", array2)
28 changes: 28 additions & 0 deletions task03.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Задание №3
# В массиве случайных целых чисел поменять местами минимальный и максимальный
# элементы.

import random


def get_MaxMin_Inx(source_array):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Что за смесь camelCase и snake_case :-)))

max_inx = min_inx = 0
for inx, val in enumerate(source_array[1:], 1):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Срезы. Экономим на 1-й итерации цикла и тратим память на почти полную копию массива :-(

if val > source_array[max_inx]:
max_inx = inx
if val < source_array[min_inx]:
min_inx = inx
return {'max_inx': max_inx, 'min_inx': min_inx}


size_array = 10
source_array = [random.randint(1,50) for _ in range(size_array)]

res = get_MaxMin_Inx(source_array)
result_array = source_array.copy()
result_array[res["min_inx"]] = source_array[res["max_inx"]]
result_array[res["max_inx"]] = source_array[res["min_inx"]]

print("Минимальное:", source_array[res["min_inx"]], "\nМаксимальное:", source_array[res["max_inx"]])
print(source_array)
print(result_array)
18 changes: 18 additions & 0 deletions task04.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Задание №4
# Определить, какое число в массиве встречается чаще всего.

number = {
"num" : 0,
"count" : 0
}
array = [45, 44, 47, 9, 47, 9, 44, 28, 41, 9]
for inx, val in enumerate(array[:-1]):
cur_count = 1
for inx_, val_ in enumerate(array[inx+1:],inx+1):
if val == val_:
cur_count += 1;
if cur_count > number["count"]:
number["num"] = val
number["count"] = cur_count
print("Максимальное число:", number["num"],"\nВстречается:",number["count"])

12 changes: 12 additions & 0 deletions task05.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Задание №5
# В массиве найти максимальный отрицательный элемент. Вывести на экран его значение и позицию в массиве.
# Примечание к задаче: пожалуйста не путайте «минимальный» и «максимальный отрицательный». Это два
# абсолютно разных значения.

max_ = None
array = [45, 44, -47, 9, 47, -9, 44, -2, 41, 9]
for inx, val in enumerate(array[:-1]):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Принимается

if val < 0:
if max_ is None or val > max_:
max_ = val
print(max_)
31 changes: 31 additions & 0 deletions task06.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Задание №6
# В одномерном массиве найти сумму элементов, находящихся между минимальным и максимальным элементами.
# Сами минимальный и максимальный элементы в сумму не включать.

import random

def get_MaxMin_Inx(source_array):
max_inx = min_inx = 0
for inx, val in enumerate(source_array[1:], 1):
if val > source_array[max_inx]:
max_inx = inx
if val < source_array[min_inx]:
min_inx = inx
return {'max_inx': max_inx, 'min_inx': min_inx}


size_array = 10
array = [random.randint(1,50) for _ in range(size_array)]
print(array)
res = get_MaxMin_Inx(array)
print(res)
sum_ = 0

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Отличная доработка

if res["max_inx"] > res["min_inx"]:
range_start = res["min_inx"] + 1
range_end = res["max_inx"]
else:
range_start = res["max_inx"] + 1
range_end = res["min_inx"]
for i in array[range_start:range_end]:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кстати, если размер массива 1 Гб, а искомые элементы окажутся в начале и конце, получим копию в 1Гб для этого цикла. Впрочем, не стоит переживать. Копию чаще всего будет 333-500 Мб ;-)

sum_ += i
print("Требуемая сумма:", sum_)
17 changes: 17 additions & 0 deletions task07.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Задание №7
# В одномерном массиве целых чисел определить два наименьших элемента. Они могут быть как равны
# между собой (оба являться минимальными), так и различаться.

source_array = [4,6,3,6,8,5,9,34,57,78,1,23,8,62]
print(source_array)
array = source_array.copy()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Бедная память.
Решение принимается.

min_ = []
for i in range(0, 2):
min_.append(array[0])
min_inx = 0
for inx,val in enumerate(array[1:],1):
if val < min_[-1]:
min_[-1] = val
min_inx = inx
del array[min_inx]
print(min_)
1 change: 0 additions & 1 deletion test.txt

This file was deleted.