Задача 46

Дан одномерный массив числовых значений, насчитывающий N элементов. Дано положительное число T. Разделить это число между положительными элементами массива пропорционально значениям этих элементов и добавить полученные доли к соответствующим элементам

Решение:

import random

N = 11
T = random.randint(0, 100)


def init_random_list(list_size):
    list = []
    while list_size > 0:
        list.append(random.randint(-3, 3))
        list_size = list_size - 1

    return list


lst = init_random_list(N)
count_positive = 0
print("Исходный массив:        ", lst)
print("Число T:", T)

for element in lst:
    if element >= 0:
        count_positive += 1

i = 0
while i < len(lst): if lst[i] >= 0:
        lst[i] += T/count_positive

    i += 1

print("Количество положительных чисел:", count_positive)
print("Доля которая прибавляется к каждому из них:", T/count_positive)
print("Массив после модификации:", lst)

Задача 45

Дан одномерный массив числовых значений, насчитывающий N элементов. Добавить к элементам массива такой новый элемент, чтобы сумма элементов с положительными значениями стала бы равна модулю суммы элементов с отрицательными значениями

Решение:

import random

N = 11


def init_random_list(list_size):
    list = []
    while list_size > 0:
        list.append(random.randint(-3, 3))
        list_size = list_size - 1

    return list


lst = init_random_list(N)
sum_positive = 0
sum_negative = 0

print("Исходный массив:        ", lst)

for element in lst:
    if element >= 0:
        sum_positive += element
    else:
        sum_negative += element * -1

if sum_positive > sum_negative:
    lst.append(sum_negative - sum_positive)
elif sum_positive < sum_negative:
    lst.append(sum_negative - sum_positive)

print("Сумма положительных чисел", sum_positive)
print("Модуль суммы отрицательных чисел", sum_negative)
print("Массив после модификации", lst)

Задача 44

Дан одномерный массив числовых значений, насчитывающий N элементов. Добавить столько элементов, чтобы элементов с положительными и отрицательными значениями стало бы поровну

Решение:

import random

N = 11


def init_random_list(list_size):
    list = []
    while list_size > 0:
        list.append(random.randint(-3, 3))
        list_size = list_size - 1

    return list


def get_positive():
    return random.randint(0, 10)


def get_negative():
    return random.randint(-10, -1)


lst = init_random_list(N)
count_positive = 0
count_negative = 0

print("Исходный массив:        ", lst)

for element in lst:
    if element >= 0:
        count_positive += 1
    else:
        count_negative += 1

diff = count_positive - count_negative
need_negative = True

if diff < 0:
    need_negative = False
    diff *= -1

for i in range(0, diff):
    if need_negative:
        lst.append(get_negative())
    else:
        lst.append(get_positive())

print("Массив после модификации", lst)

Задача 43

Дан одномерный массив числовых значений, насчитывающий N элементов. Из элементов исходного массива построить два новых. В первый должны входить только элементы с положительными значениями, а во второй — только элементы с отрицательными значениями

Решение:

import random

N = 11

def init_random_list(list_size):
list = []
while list_size > 0:
list.append(random.randint(-3, 3))
list_size = list_size - 1

return list

lst = init_random_list(N)
lst_negative = []
lst_positive = []
print("Исходный массив: ", lst)

for element in lst:
if element >= 0:
lst_positive.append(element)
else:
lst_negative.append(element)

print("Массив с положительными элементами", lst_positive)
print("Массив с отрицательными элементами", lst_negative)

Задача 42

Дан одномерный массив числовых значений, насчитывающий N элементов. Определить, образуют ли элементы массива, расположенные перед первым отрицательным элементом, убывающую последовательность

Решение:

import random

N = 11

def init_random_list(list_size):
    list = []
    while list_size > 0:
        list.append(random.randint(-3, 3))
        list_size = list_size - 1

    return list


lst = init_random_list(N)
print("Массив:        ", lst)

is_down = True
prev = lst[0]

i = 0
while i < len(lst):
    element = lst[i]

    if element  prev:
        is_down = False

    prev = element
    i += 1


if i == 0:
    print("Последовательность не успела начаться")
elif i == 1:
    print("Последовательность состоит из 1 элемента")
elif is_down:
    print("Последовательность убывает")
else:
    print("Последовательность не убывает")

Задача 41

Дан одномерный массив числовых значений, насчитывающий N элементов. Определить, образуют ли элементы массива, расположенные перед первым отрицательным элементом, возрастающую последовательность.

Решение:

import random

N = 11

def init_random_list(list_size):
    list = []
    while list_size > 0:
        list.append(random.randint(-3, 3))
        list_size = list_size - 1

    return list


lst = init_random_list(N)
print("Массив:        ", lst)

is_up = True
prev = lst[0]

i = 0
while i < len(lst):
    element = lst[i]

    if element < 0:
        break

    if element < prev:
        is_up = False

    prev = element
    i += 1


if i == 0:
    print("Последовательность не успела начаться")
elif i == 1:
    print("Последовательность состоит из 1 элемента")
elif is_up:
    print("Последовательность возрастает")
else:
    print("Последовательность не возрастает")

Задача 40

Дан одномерный массив числовых значений, насчитывающий N элементов. После каждого отрицательного элемента вставить новый элемент, равный квадрату этого отрицательного элемента.

Решение:

import random
import math

N = 11
M = 3
K = 4

def init_random_list(list_size):
    list = []
    while list_size > 0:
        list.append(random.randint(-3, 3))
        list_size = list_size - 1

    return list


lst = init_random_list(N)
print("Исходный массив:        ", lst)

i = 0
j = len(lst)
while i < j:
    if lst[i] < 0:
        lst.insert(i+1, lst[i] * lst[i])
        j += 1

    i += 1

print("Модифицированный массив:", lst)

Задача 39

Дан одномерный массив числовых значений, насчитывающий N элементов. Исключить все нулевые элементы.

Решение:

import random
import math

N = 11
M = 3
K = 4

def init_random_list(list_size):
    list = []
    while list_size > 0:
        list.append(random.randint(-1, 1))
        list_size = list_size - 1

    return list


lst = init_random_list(N)
print("Исходный массив:        ", lst)

i = 0
j = len(lst)
while i < j:
    if lst[i] == 0:
        del lst[i]
        j -= 1
    else:
        i += 1

print("Модифицированный массив:", lst)

Задача 38

Дан одномерный массив числовых значений, насчитывающий N элементов.Исключить из него M элементов, начиная с позиции K

Решение:

import random
import math

N = 11
M = 3
K = 4

def init_random_list(list_size):
    list = []
    while list_size > 0:
        list.append(random.randint(-100, 100))
        list_size = list_size - 1

    return list


lst = init_random_list(N)
print("Исходный массив:        ", lst)

del lst[K:K+M]

print("Модифицированный массив:", lst)

Задача 37

Дан одномерный массив числовых значений, насчитывающий N элементов. Сумму элементов массива и количество положительных элементов поставить на первое и второе место.

Решение:

import random
import math
N = 11
def init_random_list(list_size):
    list = []
    while list_size > 0:
        list.append(random.randint(-100, 100))
        list_size = list_size - 1

    return list

lst = init_random_list(N)
print("Исходный массив:        ", lst)

sum = 0
positive_num = 0

for i in range(len(lst)):
    sum += lst[i]
    if lst[i] > 0:
        positive_num += 1
        
lst[0] = sum
lst[1] = positive_num