A = list( range(N) )
Для заполнения массива квадратами этих чисел можно ис-пользовать такой генератор:
A = [ i*i for i in range(N) ]
В конце записи генератора можно добавить условие отбора. В этом случае в массив включаются лишь те из элементов, пе-ребираемых в цикле, которые удовлетворяют этому условию. Например следующий генератор составляет массив из всех чи-сел в диапазоне от 0 до 99, которые делятся на 7:
A = [i for i in range(100)
if i % 7 == 0]
Обратите внимание, что длина этого массива будет меньше 100, и цикл
for i in range(100):
print( A[i] )
приведёт к ошибке – выходу за границы массива.
Вывод массива
Массив – это набор элементов, поэтому во многих языках программирования нельзя вывести массив одной командой. Однако в языке Python такая возможность есть
print( A )
В этом случае весь массив выводится в квадратных скобках, его элементы разделяются запятыми:
A = [1, 2, 3, 4, 5]
print( A ) # [1, 2, 3, 4, 5]
Можно вывести элементы массива на экран по одному, ис-пользуя цикл:
for i in range(len(A)):
print( A[i], end=" " )
81 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Параметр end определяет, что после вывода каждого элемента
добавляется пробел, а не символ перехода на новую строку.
Удобно записывать такой цикл несколько иначе:
for x in A:
print( x, end=" " )
Здесь не используются переменная-индекс i и функция len, а
просто перебираются все элементы массива. На каждой итера-ции цикла в переменную x заносится значение очередного эле-мента массива (в порядке возрастания индексов). Такой цикл перебора очень удобен, если не нужно изменять значения эле-ментов массива.
В языке Python существует ещё один замечательный способ вывода всех элементов массива через пробел (без скобок):
print( *A )
Знак * перед именем массива означает, что нужно преобразо-вать массив в набор отдельных значений, то есть для массива
A = [1, 2, 3, 4, 5]
эта команда сработает так же, как и
print( 1, 2, 3, 4, 5 )
Ввод массива с клавиатуры
Иногда небольшие массивы вводятся с клавиатуры. В про-стейшем случае мы просто строим цикл, который выполняет оператор ввода отдельно для каждого элемента массива:
for i in range(N):
A[i] = int( input() )
Напомним, что если какую-то из введённых строк не удастся преобразовать в целое число, программа завершится с ошибкой.
Вместо цикла можно использовать генератор, который сразу создаёт массив и заполняет его введёнными числами:
A = [ int(input()) for i in range(N) ]
Здесь при каждом повторении цикла строка, введённая пользо-
вателем, преобразуется в целое число с помощью функции int,
и это число добавляется к массиву.
82 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
При этом пользователь вводит данные «вслепую», то есть программа не подсказывает ему, значение какого элемента вво-дится в данный момент.
Значительно удобнее, если перед вводом появляется сооб-щение с подсказкой:
for i in range(N):
print( "A[{}]=".format(i), end="" ) A[i] = int( input() )
В этом примере перед вводом очередного элемента массива на экран выводится подсказка. Например, при вводе элемента с индексом 3 будет выведено «A[3]=» и курсор (приглашение к вводу) будет мигать справа от знака =.
Заполнение массива случайными числами
Иногда нужно заполнить массив случайными числами (на-пример, определить случайные координаты клеток с призами или препятствиями в игре).
Для работы со случайными (точнее, псевдослучайными)
числами нужно подключить (импортировать) функцию randint из модуля random.
from random import randint
Эта функция генерирует случайное целое число в заданном диапазоне.
Если массив уже создан, для его заполнения случайными числами применим цикл по переменной:
for i in range(N):
A[i] = randint( 20, 100 )
То же самое можно сделать с помощью генератора:
A = [ randint(20,100) for i in range(N)]
Генератор создаёт массив из N элементов и заполняет его слу-чайными целыми числами на отрезке [20; 100].
Запишите фрагмент программы, который заполняет массив из 100 элементов случайными числами
а) на отрезке [100;150]; б) на отрезке [–10;10].
83 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Массивы в других языках программирования
Заполнение массива первыми N натуральными числами на языках Паскаль и C++ выглядит так:
const N = 10; const int N = 10; var A: array[1..N] of int A[N], i;
integer; for( i = 0; i < N; i++ ) for i:=1 to N do A[i] = i + 1;
A[i] := i;
Массивы (как и переменные) в этих языках нужно объяв-лять, сразу выделяя для них место в памяти. Объявление пе-ременных в Паскале начинается со слова var – это сокращение от английского слова variable.
Размер массива часто вводится через константу (постоян-ную величину) с помощью служебного слова const.
Найдите в дополнительных источниках перевод слов variable, integer, array на русский язык.
В языке Паскаль нумерацию элементов массива можно начать с любого значения, например с 0 или с 1. Чаще всего ис-пользуют привычную для человека нумерацию с единицы.
Почему в программе на языке Паскаль в элемент с A[i] записывается значение i, а в C++ – значение i+1?
Измените программы на языках Паскаль и C++ так, чтобы массив заполнялся теми же числами в обратном порядке.
Выводы:
Массив – это группа переменных одного типа, расположен-ных в памяти друг за другом и имеющих общее имя. Массивы используют для того, чтобы было удобно работать с большим количеством данных.![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAACZCAYAAAAcnAUCAAAACXBIWXMAAA7EAAAOxQGMMD9aAAACR0lEQVR4nO3Y7WqrQBRA0V7o+79yL4EIIaTpxI9Et2v/TlRcnFHn+0uZvj99AVovmKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZ6h2YP4O/+7fpVZygrTBHAX/7D9gZrYk5B3DkWGAHWwtzTchHxwY60FLMLREfnQfqk5Zgvgvy/pxAf2ku5icgb88N9EFzMD8JOQX0Qa9i7gFyCuhdr2DuCXIK6E2F7Tyg10Yx9ziVumsE8wiQpvOrsczq2l+YR5jKqdNPp8kMBTMUzFDPMI/0vJw69XPTZIaCGQpmKJihYIaCGQpmKJihnmFePr6PtnFw2g2DSyYzFMxQf2Eecak9baXJPPXz8lIJ8/SNYB5hqT39VF4ancwjgJ6+wjJrKq+9grnH6QR506uTuSdQkHfNWWb3AAryQXOfmZ8EBflLS16APgEK8klL32anm7s1KsSB1vo02XJKQQ625nfm7U1fCgtwRlttGsyBBbiwd+wAQXpThe08XYMZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZ6j+plipmlOWnDwAAAABJRU5ErkJggg==)
84 http://kpolyakov.spb.ru![](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAnACYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3DU9TttJs2ublsKOAByWPoB3Ned6n4z1S+dlgk+yw9lj+9j3b1+mKTxlqbX+tvCG/c23yKO27+I/XPH4CudHUfWvBxmMnKfJB2RxVarbsi8ms6oj7l1G6z15lY/oTzXR6N45uIpFh1P8AexHjzVGGX6gcEfr9a1vGtnaweHy8VvFG3mLyqAH+VecVlUlWwlRJSuTJypS3PcYpEniWSNgyMMhhyCKK4zwFqjSW8+nStnyvnjz/AHSeR+ePzor2qOIhUgpdzshNSjc5G/AXxDdCXGPtTbs9MbjnNd+J/COB8umZ/wCuaf4VzfjjSGtdSN/GuYLjG4jorgY/UDP1zXKDqPrXje0eGqSi43uzk5vZyaaue0am1gtoTqPkfZ8j/XAFc9utcj4kl8Otokw08WIucrt8pFDY3DPQemateMtSsbvQDHb3lvLJ5inakqsfyBrzuunHYpJ8iSd0XWqW0SOk8FLI2sTeX1Fuf/Qloro/BGjvZ2El5Ou2W4xtBHRB/j1/Kiqw+DbppsunTfKjp7m2hvLd4J41kjcbWVuhrhdT8ATJIz6dOroefLlOCPoQOfxooruxFCnVjeSNZ04y3MtPBmtM+028aj+8ZVx+hJ/Suj0XwNDaSLcahIs7ryI1HyD656/TgUUVz4fBUk7tXM4UYpnZAYFFFFeibn//2Q==) ![](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAnACYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3DU9TttJs2ublsKOAByWPoB3Ned6n4z1S+dlgk+yw9lj+9j3b1+mKTxlqbX+tvCG/c23yKO27+I/XPH4CudHUfWvBxmMnKfJB2RxVarbsi8ms6oj7l1G6z15lY/oTzXR6N45uIpFh1P8AexHjzVGGX6gcEfr9a1vGtnaweHy8VvFG3mLyqAH+VecVlUlWwlRJSuTJypS3PcYpEniWSNgyMMhhyCKK4zwFqjSW8+nStnyvnjz/AHSeR+ePzor2qOIhUgpdzshNSjc5G/AXxDdCXGPtTbs9MbjnNd+J/COB8umZ/wCuaf4VzfjjSGtdSN/GuYLjG4jorgY/UDP1zXKDqPrXje0eGqSi43uzk5vZyaaue0am1gtoTqPkfZ8j/XAFc9utcj4kl8Otokw08WIucrt8pFDY3DPQemateMtSsbvQDHb3lvLJ5inakqsfyBrzuunHYpJ8iSd0XWqW0SOk8FLI2sTeX1Fuf/Qloro/BGjvZ2El5Ou2W4xtBHRB/j1/Kiqw+DbppsunTfKjp7m2hvLd4J41kjcbWVuhrhdT8ATJIz6dOroefLlOCPoQOfxooruxFCnVjeSNZ04y3MtPBmtM+028aj+8ZVx+hJ/Suj0XwNDaSLcahIs7ryI1HyD656/TgUUVz4fBUk7tXM4UYpnZAYFFFFeibn//2Q==) ![](data:image/jpeg;base64,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) ![](data:image/jpeg;base64,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)
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Индекс элемента массива – это значение, которое указывает на конкретный элемент массива.
При обращении к элементу массива индекс указывают в квадратных скобках. Это может быть число, имя переменной целого типа или арифметическое выражение, результат ко-торого – целое число.![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAACZCAYAAAAcnAUCAAAACXBIWXMAAA7EAAAOxQGMMD9aAAACR0lEQVR4nO3Y7WqrQBRA0V7o+79yL4EIIaTpxI9Et2v/TlRcnFHn+0uZvj99AVovmKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZ6h2YP4O/+7fpVZygrTBHAX/7D9gZrYk5B3DkWGAHWwtzTchHxwY60FLMLREfnQfqk5Zgvgvy/pxAf2ku5icgb88N9EFzMD8JOQX0Qa9i7gFyCuhdr2DuCXIK6E2F7Tyg10Yx9ziVumsE8wiQpvOrsczq2l+YR5jKqdNPp8kMBTMUzFDPMI/0vJw69XPTZIaCGQpmKJihYIaCGQpmKJihnmFePr6PtnFw2g2DSyYzFMxQf2Eecak9baXJPPXz8lIJ8/SNYB5hqT39VF4ancwjgJ6+wjJrKq+9grnH6QR506uTuSdQkHfNWWb3AAryQXOfmZ8EBflLS16APgEK8klL32anm7s1KsSB1vo02XJKQQ625nfm7U1fCgtwRlttGsyBBbiwd+wAQXpThe08XYMZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZCmYomKFghoIZ6j+plipmlOWnDwAAAABJRU5ErkJggg==)
Для перебора элементов массива удобно использовать цикл по переменной, которая изменяется от минимального до мак-симального значения индекса.
Интеллект-карта
тип имя
размер
A[5]
A[i]
A[2*i-1]
заполнение ввод
индекс
вывод обработка
Рис. 3.8.
Практическая работа №20. Заполнение массивов
Практическая работа №21. Перебор элементов массивов
Вопросы и задания
1. Как вы думаете, почему элементы массива размещают в па-мяти рядом?
2. Объясните разницу между терминами «индекс элемента мас-сива» и «значение элемента массива».
3. Некоторые языки программирования разрешают обращаться к элементам за пределами массива (при этом программа не
85 http://kpolyakov.spb.ru
тип значение
массив
элемент массива
обращение к элементу
перебор элементов
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
завершается аварийно). Обсудите достоинства и недостатки такого решения.
4. Массив из 22 элементов требуется заполнить случайными числами на отрезке [10; 30]. Будут ли в массиве одинаковые элементы? Почему?
Задачи
1. Заполните все элементы массива значением X, введённым с клавиатуры.
2. Заполните массив натуральными числами, начиная со зна-чения X, введённого с клавиатуры.
3. Заполните массив натуральными числами в обратном по-рядке, начиная со значения X, введённого с клавиатуры. По-следний элемент должен быть равен X, предпоследний – X–1 и т.д.
4. Заполните массив степенями числа 2 (от 21 до 2N).
5. *Заполните массив степенями числа 2, начиная с конца, так чтобы последний элемент массива был равен 1, а каждый предыдущий был в 2 раза больше следующего.
6. *С клавиатуры вводится целое число X. Заполните массив, состоящий из нечётного числа элементов, целыми числами, так чтобы средний элемент массива был равен X, слева от не-го элементы стояли по возрастанию, а справа – по убыванию. Соседние элементы отличаются на единицу. Например, при X = 3 массив из 5 элементов заполняется так: 1 2 3 2 1.
7. Заполните массив случайными числами на отрезке [20; 100]. Запустите программу несколько раз, объясните полученные результаты.
8. С клавиатуры вводятся целые значения X и Y (X < Y). Запол-ните массив случайными числами на отрезке [X; Y].
9. Массив введён следующим образом:
A = [1, 2, 3, 4, 5]
При каких значениях x программа завершится аварийно?
86 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
print( A[x+3] ) for i in range(3):
а)
б)
в)
г)
д)
е)
A[i+x] = A[i]
for i in range(x-2):
A[i] = 2*(x-i) for i in range(4):
A[i+1] = A[i] + x
for i in range(x+1,x+6):
A[i] = x*x
for i in range(5):
A[i+2] = x + i
10. Чему будут равны элементы массива
A = [1, 2, 3, 4, 5]
после выполнения цикла? Здесь N = 5 – длина массива.
for i in range(N):
а)
б)
в)
г)
д)
е)
A[i] = A[i]*A[i] for i in range(N-1):
A[i] = A[i+1]
for i in range(N-1):
A[i+1] = A[i]
for i in range(N-1,0,-1):
A[i] = A[i-1]
for i in range(1,N):
A[i] = A[i-1] + 1 for i in range(1,N):
A[i] = A[i-1]*2
11. *Дан фрагмент программы:
j = 1
for i in range(N):
if A[i] == A[j]:
j = i
При каком условии после выполнения этого фрагмента по-лучится j = 0? j = 3? j = N – 1?
12. Введите с клавиатуры значения элементов массива, уве-личьте каждый элемент в 2 раза и выведите полученный массив на экран.
87 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
13. Введите с клавиатуры значения элементов массива и уве-личьте на 5 значения всех элементов массива, кроме перво-го и последнего.
14. В массиве чётное число элементов. Введите с клавиатуры значения элементов массива и выполните две операции:
а) увеличьте на единицу значения всех элементов в первой
половине массива;
б) увеличьте в 2 раза значения всех элементов во второй
половине массива.
15. *Введите с клавиатуры значения элементов массива и най-дите их среднее арифметическое.
88 http://kpolyakov.spb.ru![](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAnACYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3DU9TttJs2ublsKOAByWPoB3Ned6n4z1S+dlgk+yw9lj+9j3b1+mKTxlqbX+tvCG/c23yKO27+I/XPH4CudHUfWvBxmMnKfJB2RxVarbsi8ms6oj7l1G6z15lY/oTzXR6N45uIpFh1P8AexHjzVGGX6gcEfr9a1vGtnaweHy8VvFG3mLyqAH+VecVlUlWwlRJSuTJypS3PcYpEniWSNgyMMhhyCKK4zwFqjSW8+nStnyvnjz/AHSeR+ePzor2qOIhUgpdzshNSjc5G/AXxDdCXGPtTbs9MbjnNd+J/COB8umZ/wCuaf4VzfjjSGtdSN/GuYLjG4jorgY/UDP1zXKDqPrXje0eGqSi43uzk5vZyaaue0am1gtoTqPkfZ8j/XAFc9utcj4kl8Otokw08WIucrt8pFDY3DPQemateMtSsbvQDHb3lvLJ5inakqsfyBrzuunHYpJ8iSd0XWqW0SOk8FLI2sTeX1Fuf/Qloro/BGjvZ2El5Ou2W4xtBHRB/j1/Kiqw+DbppsunTfKjp7m2hvLd4J41kjcbWVuhrhdT8ATJIz6dOroefLlOCPoQOfxooruxFCnVjeSNZ04y3MtPBmtM+028aj+8ZVx+hJ/Suj0XwNDaSLcahIs7ryI1HyD656/TgUUVz4fBUk7tXM4UYpnZAYFFFFeibn//2Q==)
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Достарыңызбен бөлісу: |