аня2938
20.05.2023 20:49

1. Как вы думаете, что делают эти операторы:

print( A[2] )

A[2] = 5

A[0] = A[1] + 2*A[2]

Индексом может быть также значение целой переменной или арифметического выражения, результат которого – целое число. Например, для массива на Рис. 3.7 программа

i = 1

print( A[i], A[i+1], A[3*i+1], A[i-1] )

выведет то же самое, что и программа

print( A[1], A[2], A[4], A[0] )

2. Определите, что выведет этот фрагмент программы для массива на Рис. 3.7:

i = 1

A[2] = A[i] + 2*A[i-1] + A[3*i]

print( A[2] + A[4] )

3. Найдите ошибки в этом фрагменте программы:

A = [1, 2, 3, 4, 5]

x = 1

print( A[x-3] )

A[x+4] = A[x-1] + A[2*x]

Выход за границы массива – это обращение к элементу с индексом, который не существует в массиве.

Далее везде будем считать, что N – это текущий размер массива A, с которым мы работаем, то есть то значение, которое возвращает вызов функции len(A).

Перебор элементов массива

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

for i in range(N):

... # работаем с A[i]

Здесь вместо многоточия можно добавлять операторы, которые работают с элементом A[i] (в том числе и изменяют его).

4. Какие значения будет принимать переменная i при выполнении этого цикла?

Мы видим, что благодаря использованию массива нам достаточно описать, что делать с одним элементом, а затем поместить эти действия внутрь цикла, перебирающего значения индексов. Если бы мы применяли переменные, то нам пришлось бы описывать необходимые действия для каждого элемента (правда, при этом цикл бы не понадобился).

5. Выполните ручную прокрутку фрагмента программы:

N = 5

A = [0]*N

for i in range(N):

A[i] = i

6. Какие значения будут записаны в массив?

Запишите фрагмент программы, который заполнит массив нулями.

Заполним массив первыми N натуральными числами в обратном порядке: в первый по счёту элемент массива (с индексом

0) должно быть записано число N, во второй – число N – 1, а в последний – единица.

Сначала запишем цикл в развёрнутом виде: операторы, которые должны быть выполнены:

A[0] = N

A[1] = N-1

...

A[N-1] = 1

Теперь запишем цикл, в котором значение, присваиваемое очередному элементу, обозначается через Х:

for i in range(N):

A[i] = X

Однако не всё так величина X должна изменяться при переходе к следующему элементу.

7. Определите, как меняется X: чему равно начальное значение этой переменной, как она изменяется при переходе к следующему элементу?

Можно записать цикл так:

X = N

for i in range(N):

A[i] = X

X -= 1

А можно его значительно у заметив, что при увеличении номера элемента i на единицу значение X уменьшается, причём тоже на единицу. Поэтому сумма i+X остаётся постоянной! Её можно вычислить, зная, что для первого по счёту элемента она равна 0+N.

Выразите X из уравнения i + X = 0 + N.

В элемент с номером i записывается значение N – i, поэтому цикл можно записать так:

for i in range(N):

A[i] = N - i

Предположим, что массив A заполнен некоторыми значениями. Попробуем увеличить все его элементы на единицу.

Этот значит, что нужно заменить значение элемента A[i] на A[i]+1:

for i in range(N):

A[i] += 1

8. Определите, какие значения окажутся в массиве после выполнения фрагмента программы:

A = [6, 5, 4, 3, 2]

N = len(A)

for i in range(N):

A[i] += i

9. Запишите фрагмент программы, который умножит все элементы массива на 2.

10. Запишите фрагмент программы, который умножит первый элемент массива на 1, второй – на 2, третий – на 3 и т.д

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Aleksa4nick
30.09.2022 11:28

Сложение одноразрядных двоичных чисел выполняется по следующим правилам:

0 + 0 = 0

1 + 0 = 1

0 + 1 = 1

1 + 1 = 10

В последнем случае, при сложении двух единиц, происходит переполнение младшего разряда, и единица переносится в старший разряд. Переполнение возникает в случае, если сумма равна основанию системы счисления (в данном случае это число 2) или больше его (для двоичной системы счисления это не актуально).

Сложим для примера два любых двоичных числа:

1101

+ 101

10010

Вычитание

Вычитание одноразрядных двоичных чисел выполняется по следующим правилам:

0 - 0 = 0

1 - 0 = 1

0 - 1 = (заем из старшего разряда) 1

1 - 1 = 0

Пример:

1110

- 101

1001

Умножение

Умножение одноразрядных двоичных чисел выполняется по следующим правилам:

0 * 0 = 0

1 * 0 = 0

0 * 1 = 0

1 * 1 = 1

Пример:

1110

* 10

+ 0000

1110

11100

Деление

Деление выполняется так же как в десятичной системе счисления:

1110 | 10

|

10 | 111

11

10

10

10

0

0,0(0 оценок)
Ответ:
Fire73
30.09.2022 11:28

"Реклама "

Некоторые компании, занимающиеся легальным бизнесом, рекламируют свои товары или услуги с спама. Привлекательность такой рекламы — низкая стоимость и (предположительно) большой охват потенциальных клиентов.

"Реклама незаконной продукции"

С спама рекламируют продукцию, о которой нельзя сообщить другими например, контрафактные товары (подделки, конфискат), лекарственные средства с ограничениями по обороту,

"Фишинг"

«Фишинг»  — ещё один мошенничества. Он представляет собой попытку спамеров выманить у получателя письма номера его кредитных карточек или пароли доступа к системам онлайновых платежей. Такое письмо обычно маскируется под официальное сообщение от администрации банка. В нём говорится, что получатель должен подтвердить сведения о себе, иначе его счёт будет заблокирован, и приводится адрес сайта (принадлежащего спамерам) с формой, которую надо заполнить. Среди данных, которые требуется сообщить, присутствуют и те, которые нужны мошенникам. Для того, чтобы жертва не догадалась об обмане, оформление этого сайта также имитирует оформление официального сайта банка.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота