Что из нижеперечисленного входит в алфавит языка python
Перейти к содержимому

Что из нижеперечисленного входит в алфавит языка python

  • автор:

Алфавит языка Python и типы данных

Алфавит языка Python и типы данных

Ввод и вывод данных — осуществляется с помощью встроенных функций

Ввод и вывод данных - осуществляется с помощью встроенных функций

Ввод и вывод данных

— осуществляется с помощью встроенных функций

Ввод: input (параметры)

Вывод: print (параметры)

Алфавит языка Алфавит языка программирования

Алфавит языка Алфавит языка программирования

Алфавит языка программирования Python — набор допустимых символов, которые можно использовать для записи программы.

Алфавит языка Python

Латинские прописные
буквы

Латинские строчные
буквы

Знаки арифметические(+,-,*,/),
препинания, скобки и другие

Зарезервированные (служебные) слова

for, if,class, def, print, input и т.д.

Алфавит языка В алфавит языка Python включены неделимые элементы (составные символы)

Алфавит языка В алфавит языка Python включены неделимые элементы (составные символы)

В алфавит языка Python включены неделимые элементы (составные символы).

Знаки не равно, равно

Знаки больше или равно,
меньше или равно

Начало и конец
комментария

Словарь языка Служебное слово языка

Словарь языка Служебное слово языка

Служебное слово языка Python

Значение служебного слова

вещественный (с плавающей точкой)

строковый (цепочка символов)

Алфавит и словарь языка Имена (констант, переменных и других объектов): не служебные слова; состоят из букв, цифр и символа подчеркивания; начинаются с буквы или символа…

Алфавит и словарь языка Имена (констант, переменных и других объектов): не служебные слова; состоят из букв, цифр и символа подчеркивания; начинаются с буквы или символа…

Алфавит и словарь языка

Имена (констант, переменных и других объектов):
не служебные слова;
состоят из букв, цифр и символа подчеркивания;
начинаются с буквы или символа подчеркивания;
прописные и строчные буквы РАЗЛИЧАЮТСЯ!

Правильные имена
x
velichina
zzz
polnaja_summa
s25
_k1
oshibka

Желательно давать переменным «говорящие» имена

Неправильные имена
polnaja summa — содержится символ (пробел)
2as — начинается с цифры
Domby&Son — содержится символ &
and – служебное слово языка

Задание 1. Даны длина (a) и ширина (b) классной комнаты

Задание 1. Даны длина (a) и ширина (b) классной комнаты

Даны длина (a) и ширина (b) классной комнаты.
Определить, программу, рассчитывающую периметр(Р) и площадь(S) этой комнаты.
a=int(input())
b=int(input()) P=2*(a+и)
S=a*b print(‘Периметр=’,P)
print(‘Площадь=’,S)

Простые типы данных тип Название

Простые типы данных тип Название

Простые типы данных

-27885; -156; 25; 152

Действительные числа (Вещественный)

25.56; 5.0; -365.5633

Данные и их типы целые числа (integer) – положительные и отрицательные целые числа, а также 0 ( например: 4, 687, -45, 0 )

Данные и их типы целые числа (integer) – положительные и отрицательные целые числа, а также 0 ( например: 4, 687, -45, 0 )

Данные и их типы

целые числа (integer) – положительные и отрицательные целые числа, а также 0 (например: 4, 687, -45, 0).

числа с плавающей точкой (float point) – дробные числа
(например: 1.45, -3.789654, 0.00453).
Примечание: разделителем целой и дробной части
служит точка, а не запятая.

строки (string) — набор символов, заключенных в кавычки
(например: «ball», «What is your name?»,
‘dkfjUUv’, ‘6589’).

Примечание: кавычки в Python могут быть
одинарными или двойными.

Операции. Операции над разными типами данных

Операции. Операции над разными типами данных

Операции. Операции над разными типами данных

‘Hi, Hi, Hi, Hi, Hi, Hi, Hi, Hi, Hi, Hi, ‘

Изменение типов данных int() – преобразует аргумент в целое число str() – преобразует аргумент в строку float() – … в число с плавающей точкой

Изменение типов данных int() – преобразует аргумент в целое число str() – преобразует аргумент в строку float() – … в число с плавающей точкой

Изменение типов данных

int() – преобразует аргумент в целое число
str() – преобразует аргумент в строку
float() – … в число с плавающей точкой

int (56)

Математические операторы Оператор

Математические операторы Оператор

Возведение в степень

Остаток от деления

Переменные в Python Переменная – это ссылка на область памяти, где хранятся те или иные данные

Переменные в Python Переменная – это ссылка на область памяти, где хранятся те или иные данные

Переменные в Python

Переменная – это ссылка на область памяти, где хранятся те или иные данные

Имена переменных в Python Имя переменной может состоять только из цифр, букв и символов подчеркивания

Имена переменных в Python Имя переменной может состоять только из цифр, букв и символов подчеркивания

Имена переменных в Python

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

Чтобы узнать значение, на которое ссылается переменная, находясь в режиме интерпретатора, достаточно ее вызвать (написать имя и нажать Enter).

Пример работы с переменными >>> apples = 100 >>> eat_day = 5 >>> day = 7 >>> apples = apples — eat_day * day >>>…

Пример работы с переменными

Логические выражения и логический тип данных

Логические выражения и логический тип данных

Логические выражения и логический тип данных

Если результатом вычисления выражения может быть лишь истина или ложь, то такое выражение называется логическим.

Логические выражения и логический тип данных

Логические выражения и логический тип данных

Логические выражения и логический тип данных

Больше или равно

Меньше или равно

Логические выражения и логический тип данных

Логические выражения и логический тип данных

Логические выражения и логический тип данных

Примеры работы с логическими выражениями на языке программирования Python (после # написаны комментарии):

x = 12 – 5 # это не логическая операция, а
операция присваивания переменной x
результата выражения 12 — 5
x == 4 # x равен 4
x == 7 # x равен 7
x != 7 # x не равен 7
x != 4 # x не равен 4
x > 5 # x больше 5
x < 5 # x меньше 5
x >= 6 # x больше или равен 6
x <= 6 # x меньше или равен 6

Логические выражения и логический тип данных

Логические выражения и логический тип данных

Логические выражения и логический тип данных

Логические операции
Логические выражения в результате вычисления принимают логические значения True и False.
Логические операции: отрицание — NOT, логическое умножение — AND, логическое сложение — OR, исключающее «или» -XOR .

Примеры: (после # написаны комментарии):

x = 8 y = 13
x == 8 and y < 15 # x равен 8 и y меньше 15
x > 8 and y < 15 # x больше 8 и y меньше 15
x != 0 or y >15 # x не равен 0 или y больше 15
x < 0 or y >15 # x меньше 0 или y больше 15

Задание 1. (Исходный код) N=int(input))

Задание 1. (Исходный код) N=int(input))

Задание 1. (Исходный код)

N=int(input)) K=N//3600; N=N%3600;
P=N//60; N=N%60;
print(K,‘час’, P, ‘минут’, N, ‘секунд’)

Что из нижеперечисленного входит в алфавит языка python

AppleGameplays5

11 месяцев назад

GermionaGrainger

Ответ:

В состав алфавита языка Python входят такие элементы, как: прописные и строчные буквы латинского алфавита, цифры и специальные знаки.

Объяснение:

Алфавит языка программирования Python — набор допустимых символов, которые можно использовать для записи программы.

Программирование на Python

цикла на шаг т. Если к = п или к > п, цикл не выполнится
ни разу.

Запишем на языке Python рассмотренный в п. 2.4.3 (при­
мер 19) учебника для 8 класса алгоритм вычисления степени с
натуральным показателем п для любого вещественного числа а.

# Программа 16
print('Возведение в степень')
а = float (input ('Введите основание а>> ' ) )
n = int(input('Введите показатель п>>'))
У= 1

for i in range(n):

Здесь параметр цикла i будет изменяться от 0 до п — 1 вклю­
чительно, следовательно, тело цикла выполнится ровно п раз.

1.5.4. Различные варианты программирования
циклического алгоритма

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

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

Так как здесь в явном виде задано условие окончания рабо­
ты, то воспользуемся конструкцией while True:

# Программа 17
kl = k2 = О

n = int (input ('Введите целое число»'))
if n > 0:

k2 += 1
if n == 0: break

Программирование циклических алгоритмов §1.5

print ('Введено:') kl)
print ('положительных чисел к2)
print ('отрицательных чисел

Имеющееся условие окончания работы можно достаточно про­
сто преобразовать в условие продолжения работы — работа про­
должается, пока п не равно 0, значит, мы можем воспользоваться
оператором while с таким условием:

# Программа 18
kl = k2 = О
n = int(input('Введите целое число>>'))
while п 1= 0:

n = int (input ('Введите целое число»'))
print('Введено:')
print ('положительных — ', kl);
print ('отрицательных — ', k2)

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

В языке Python имеются два вида операторов цикла: while
(цикл с условием) и for (цикл с параметром).

Цикл с условием выполняется до тех пор, пока некоторое
условие (условие продолжения работы цикла) не станет ложным.
Если условие в заголовке цикла ложно с самого начала, тело
цикла не выполнится ни разу.

Если условие в заголовке цикла всегда остаётся истинным,
цикл работает бесконечно. Для досрочного выхода из цикла ис­
пользуют оператор break.

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

Глава 1. Начала программирования

начала цикла. Переменная, изменение которой определяет работу
цикла, называется параметром (переменной) цикла. При вызо­
ве функции range () указывают от одного до трёх параметров:
начальное значение, значение-ограничитель (не входящее в диа­
пазон) и шаг изменения переменной цикла; обязательный пара­
метр — значение-ограничитель.

Если число повторений тела цикла известно, то лучше вос­
пользоваться оператором for; в остальных случаях используется
оператор while.

Вопросы и задания

1. Проанализируйте работу программы:

Ответьте на вопросы.
а) Сколько раз выполнится тело цикла?
б) Какое значение примет х после завершения программы?
в) Какое значение примет у после завершения программы?
г) Сколько раз выполнится тело цикла, если заменить условие

на х <= 5?
д) Сколько раз выполнится тело цикла, если заменить условие

на х >= 5?
е) Сколько раз выполнится тело цикла, если заменить условие

на х > О?
ж) Что произойдёт, если из тела цикла убрать команду

з) Сколько раз выполнится тело цикла, если заменить коман­
ду х += 1 на х += 2?

и) Сколько раз выполнится тело цикла, если заменить коман­
ду х += 1 на х -= 1?

2. Дана последовательность операторов:

Программирование циклических алгоритмов §1.5

Сколько раз будет выполнено тело цикла и какими будут
значения переменных a, b, s после выполнения этой после­
довательности операторов?

3. Определите значения переменных s и i после выполнения
фрагмента программы.

а) з = 0 6) s = 0 в) s = 0
i=0 i=0 i=2
while i < 5: while i < 5: while i > 1:
i += 1 i += 1 s=s+ 1 / i

4. Определите значение переменной s после выполнения фраг­
мента программы при указанных значениях а. Составьте
таблицы значений переменных.

s = s + р % 10
р = р // 10

а) а = 23;
б) а = 32;
в) а = 109;

5. От программы, записанной на алгоритмическом языке, пе­
рейдите к записи программы на языке Python. Определите,
что будет выведено в результате работы программы. Составь­
те таблицу значений переменных.

к := к + 1
кц
ВЫВОД S

Глава 1. Начала программирования

6. Запишите на языке Python фрагмент программы, соответст­
вующий блок-схеме. Определите значения переменных к и t
после её выполнения. Составьте таблицу значений перемен­
ных.
t = 50
k = 10

7. Требовалось написать программу вычисления факториала
числа п (факториал числа п — это произведение всех целых
чисел от 1 до и). Программист торопился и написал про­
грамму неправильно. Ниже приведён фрагмент его програм­
мы, в котором содержатся три ошибки:

Найдите ошибки. Допишите необходимые операторы и выпол­
ните программу на компьютере.

Пример входных данных Пример выходных данных

Введите п>>5 5! = 120
Введите п>>6 6! = 720

8. Проанализируйте следующий цикл:

while а < b:
с = а == b

В чём его особенность?

Программирование циклических алгоритмов §1.5

9. Запишите на языке Python программы решения № 26-30
из § 2.4 из учебника для 8 класса. Используйте оператор
while.

10. Дана последовательность операторов:

а=1 break
b= 1
while True:

Сколько раз будет выполнено тело цикла и какими будут
значения переменных a, b, s после выполнения этой после­
довательности операторов?

11. Определите значение переменных s и i после выполнения
следующих операторов:

а) s = 0 6) 8 = 0
i=3
while True: i=1
s = s + 5 // i while True:

i -= 1 s = s + 1 // i
if i < 1:
i -= 1
break
if i <= 1:
break

12. От программы, записанной на алгоритмическом языке, пе­
рейдите к записи программы на языке Python. Определите,
что будет выведено в результате работы программы, если
были введены следующие числа: 1, 5, -10, 3, -8, 6, 4, 0.
Составьте таблицу значений переменных.

кц при х = О
ВЫВОД S
кон

Глава 1. Начала программирования

13. Запишите на языке Python фрагмент программы, соответст­
вующий блок-схеме. Определите значение переменной к по­
сле его выполнения при следующих значениях переменной х:
1, 5, -10, 3, -8, 6, 1, 2, -7, 4, 0. Составьте таблицу значе­
ний переменных.

14. Дана программа на языке Python:

while True:
print('Введите целое число')

if х < 0: kl += 1
if x > 0: k2 += 1
if x == 0: break

Составьте блок-схему, соответствующую программе. Какая за­
дача решается с помощью этой программы?
15. Напишите программу, в которой осуществляется ввод це­
лых чисел до тех пор, пока не будет введён ноль, и подсчёт
суммы и среднего арифметического введённых положитель­
ных чисел.

Программирование циклических алгоритмов §1.5

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

17. Напишите программу вычисления наибольшего общего дели­
теля двух целых чисел.

18. Сколько раз будет выполнен;> тело цикла?

a) for i in range (15): s += 1 += 1
б) for i in range (10, 15) : s += 1
в) for i in range (-1, 1): s += 1
r) for i in range (1, 1): s += 11

Д) k = 5 (k — 1, k + 1): s
for i in range

19. Определите значения переменных s и i после выполнения
следующих операторов. Составьте таблицы значений пере­
менных.

a) s = 0 6) s = 1
for i in range ( 6) :
n= 1
s += i for i in range(2, n + 1

в) s = 1 r) s = 1
n= 1 n= 1
for i in range(1, 4) : for i in range (1, 4) :
s += 1 / n s += 1 / n

20. Что будет выведено в результате выполнения цикла?

a) for X in range(1, 6) :: print('#', end= ' ' )
6) for X in range(6) : pi?int ( ' # ' , end= ' ' )
в) for X in range(2, 8) :: print('#', end= '')
r) for X in range(5, 6) :: print('#', end= '')
Д) for X in range(6, 6) :: print('#', end= '')
e) for X in range(5, 0, 1): print('#', end=
ж) for X in range(5, 4, -1): print('#', end=
3) for X in range(5, 1, -1): print, end=
и) for X in range(1, 4, -1): print, end=

Глава 1. Начала программирования

21. От программы, записанной на алгоритмическом языке, пе­
рейдите к записи программы на языке Python. Определите,
что будет выведено в результате работы программы. Составь­
те таблицу значений переменных.

нц для к от 1 до 5

22. Запишите на языке Python фрагмент программы, соответст­
вующий блок-схеме. Определите значение переменных к и t
после его выполнения. Составьте таблицу значений перемен­
ных.

23. Определите результат работы программы, записанной на
языке Python.

a) m = 0 б) m = О
for i in range (1, 7) : for i in range (3, 8) :
m -= 6
m -= 6 — i
print(m)
print(m)

24. Проанализируйте фрагменты программ. Запишите результат
их работы. Для каждого случая запишите фрагмент про­
граммы, обеспечивающий такой же результат, но с исполь­
зованием другого оператора цикла.

П рогр а м мирование циклических алгоритмов §1.5

а) х = 1 б) for х in range(-2, 3) :
while х <= 5 :
у = abs (х)
print(х) print(у)
х += 1
г) for х in range(5, -1, -1) :
в) х = 10
while х >= 5: у=x* x
print(у)
print(х)
х -= 1

25. Определите, что будет выведено в результате работы следую­
щей программы. Текст программы приведен на двух языках
программирования.

Алгоритмический язык Python

цел i, а, Ь for i in range (5, 10) :

а := 2 a=a+3+a// 3
b = b + a- b // 4
. Ь := 3 print(a + b)

нц для i от 5 до 9 3)
4)
а := а + 3 + div (а,

b := b + а — div(Ь,
кц

26. Напишите программу, которая 10 раз выводит на экран
ваши имя и фамилию.

27. Напишите программу, выводящую на экран изображение
шахматной доски, где чёрные клетки изображаются звёздоч­
ками, а белые — пробелами. Рекомендуемый вид экрана по­
сле выполнения программы:

Глава 1. Начала программирования

28. Напишите программу, которая вычисляет сумму:
а) первых п натуральных чисел;
б) квадратов первых п натуральных чисел;
в) всех чётных чисел в диапазоне от 1 до п;
г) всех двузначных чисел.

29. Напишите программу, которая генерирует 10 случайных чи­
сел в диапазоне от 1 до 20, выводит эти числа на экран и
вычисляет их среднее арифметическое.

30. Напишите на языке Python программы решения задач
№ 32, 33 из § 2.4 учебника для 8 класса. Используйте опе­
ратор for.

31. Напишите программу, которая выводит на экран таблицу
степеней двойки (от нулевой до десятой). Рекомендуемый
вид экрана после выполнения программы:

Таблица степеней двойки:

О1
12
24
38
4 16
5 32
6 64
7 128
8 256
9 512
10 1024

32. Напишите программу, которая выводит на экран таблицу
умножения на п (п — целое число в диапазоне от 2 до 10,
вводимое с клавиатуры).

Пример входных данных Пример выходных данных

Введите п>> 5 5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50

Программирование циклических алгоритмов §1.5

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

Проверочная работа № 5

1. Определите значение переменной s после выполнения опера­
торов:

2. Определите, что будет выведено на экран в результате вы­
полнения алгоритма. Запишите условие задачи, для реше­
ния которой составлен данный алгоритм.

3. Используя цикл while, напишите программу определения
суммы всех нечётных чисел от 1 до 99 включительно.

4. Сколько раз выполнится тело следующего цикла?

5. Какое число будет выведено на экран в результате работы
следующей программы?

s += к
к += 2
if к < 8:

Глава 1. Начала программирования

6. Запишите значение переменной sum после выполнения фраг­
мента программы.

for i in range(5, 10):
sum += i

7. Запишите результат выполнения программы.

р= 1
for i in range(6, 2, -1):

8. Дополнительное задание. Напишите программу, которая по
двум натуральным числам а и Ь, не превосходящим 30 000,
подсчитывает количество натуральных чисел, кратных 10,
на отрезке [а, Ь].
Программа получает на вход два натуральных числа а и Ь,
при этом гарантируется, что 1 < а < Ь < 30 000. Проверять
входные данные на корректность не нужно.
Программа должна вывести одно число: количество натураль­
ных чисел, кратных 10, на отрезке [а, 6].

Входные данные Выходные данные

Тестовые задания для самоконтроля
за курс 8 класса

1. Разработчиком языка Python является:
а) Блез Паскаль
б) Никлаус Вирт
в) Норберт Винер
г) Гвидо ван Россум

Тестовые задания для самоконтроля за курс 8 класса §1.5

2. Что из нижеперечисленного входит в алфавит языка Python?
а) латинские строчные и прописные буквы
б) служебные слова
в) русские строчные и прописные буквы
г) знак подчёркивания

3. Какая последовательность символов не может служить име­
нем в языке Python?

а) _mas
б) maSl
в) d2
г) 2d

4. Вещественные числа имеют тип данных:

а) float
б) int
в) bool
г) str

5. Языковые конструкции, с помощью которых в программах
записываются действия, выполняемые в процессе решения
задачи, называются:

а) операндами
б) операторами
в) выражениями
г) данными

6. Разделителями между операторами в одной строке служит:

а) точка
б) точка с запятой
в) пробел
г) запятая

7. При присваивании изменяется:

а) имя переменной
б) тип переменной
в) значение переменной
г) значение константы

Глава 1. Начала программирования

8. Для вывода результатов в Python используется оператор

а) while
б) input ()
в) print ()
г) and

9. Для вычисления квадратного корня из х используется функ­
ция:

а) abs(х)
б) sqr (х)
в) sqrt(х)
г) int (х)

10. Для генерации случайного целого числа из отрезка [10, 20]
необходимо использовать выражение:

а) randint(2*10)
б) randint(1020)
в) randint(10, 20)
г) randint (10) * 2

11. В каких условных операторах допущены ошибки?

а) if Ь = 0: print('Деление невозможно.')
б) if а < b: min = a; else min = b
в) if а > b : max = a

else max = b
r) if a > b and b>0: c = a + b

12. Определите значение переменной с после выполнения следу­
ющего фрагмента программы.

а = 100
Ь = 30
а=а-b* 3
if а > b:

а) 20
б) 70
в) -20
г) 180

Тестовые задания для самоконтроля за курс 8 класса §1.5

13. Условный оператор

позволяет определить, является ли число а:
а) целым
б) двузначным
в) чётным
г) простым

14. Какого оператора цикла не существует в языке Python?

а) for
б) while
в) repeat. until

15. Тело цикла в фрагменте программы

а' = 1
b=1
while а + Ь < 8:

выполнится:
а) 0 раз
б) 2 раза
в) 3 раза
г) бесконечное число раз

16. Определите значения переменных s и i после выполнения
фрагмента программы.

а) s = 0; i = -1
б) s = 5; i = 0
в) s = 15; i = 5
r) s = 15; i = 0

Глава 1. Начала программирования
17. В данном фрагменте программы

for i in range(1, 11) :

вычисляется:
а) сумма целых чисел от 1 до 10
б) сумма чётных чисел от 1 до 10
в) удвоенная сумма целых чисел от 1 до 10
г) сумма первых десяти натуральных чётных чисел

АЛГОРИТМИЗАЦИЯ
И ПРОГРАММИРОВАНИЕ

§ 2.1
Одномерные массивы целых чисел

Ключевые слова:
• массив
• элемент массива
• индекс элемента
• значение элемента
• заполнение массива
• вывод массива
• обработка массива
• последовательный поиск
• сортировка

До сих пор мы работали с простыми типами данных. Для
решения многих практических задач из простых типов образу­
ют составные типы данных, так называемые структуры данных.
Примером структуры является массив.

Массив — это совокупность фиксированного количества од­
нотипных элементов, которым присвоено общее имя. Доступ к
отдельному элементу массива осуществляется по его номеру (ин­
дексу).

С подобными объектами — числовыми последовательностя­
ми — вы уже встречались на уроках математики. Например,
члены арифметической прогрессии обозначались так: ах, а2, а3,

ап.
Размерность массива — это количество индексов, необходимое
для однозначного доступа к элементу массива. Массивы с одним
индексом называют одномерными, с двумя — двумерными и т. д.
Мы будем рассматривать одномерные массивы.

Глава 2. Алгоритмизация и программирование

В языке Python нет такой структуры данных, как «массив»;
для хранения группы однотипных объектов используют списки —
объекты типа list. Далее, говоря о списках, мы будем исполь­
зовать слово «массив».

В отличие от массивов список — это динамическая структура: ко­
личество элементов списка можно изменять во время выполнения
программы, удаляя и добавляя элементы. Кроме того, в отличие
от массива в списке можно хранить данные разных типов.

2.1.1. Обращение к элементу массива

Нумерация элементов массивов в Python всегда начинается
с нуля.

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

Рассмотрим пример массива (рис. 2.1):

i — индексы ————— -► 0 123 4
Значения элементов ————-► 1 2 -3 5 7

А [ i ] — обращения ————— >■А[0] А[1] А [2 ] А[3] А[4]
к элементам

Рис. 2.1. Одномерный массив

Здесь:
А — имя массива;
А[0] = 1 (значение элемента массива А с индексом 0 рав­
но 1), А[1] = 2, А[2] = -3, А[3] = 5, А[4] = 7.
Индексом может быть не только целое число, но и целое
значение переменной или арифметического выражения. Так, в
нашем примере А[4 * i — 2] = -3 при i = 1.
Индексом может быть даже значение элемента массива.
В нашем примере А [А [1 ] ] = -3.
При обращении к элементу массива с несуществующим ин­
дексом происходит серьёзная ошибка — выход за границы мас­
сива — и программа завершается аварийно.

Одномерные массивы целых чисел §2.1

Длина массива (количество элементов массива) определяется
с помощью функции 1еп(): N = 1еп (А) .

5 — длина массива, представленного на рис. 2.1.
Иногда размер массива хранят в отдельной переменной: N = 5.
Перед использованием в программе массив необходимо со­
здать, в противном случае обращение к несуществующему эле­
менту вызовет ошибку и аварийное завершение программы.

2.1.2. Заполнение массива

Заполнять массив в Python можно несколькими способами.
Рассмотрим некоторые из них.

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

С помощью записи

будет создан массив из пяти элементов, каждый из которых ра­
вен 1.

2. Ввод значений элементов с клавиатуры. Небольшие масси­
вы можно вводить с клавиатуры. Для этого можно использовать
цикл с параметром, выполняющий оператор ввода отдельно для
каждого элемента массива:

for i in range(N):

При каждом повторении цикла строка, введённая пользова­
телем, преобразуется в целое число с помощью функции int () ,
и это число добавляется в массив. Пользователь сам должен сле­
дить за тем, значение какого именно элемента он вводит в тот
или иной момент.

Чтобы перед вводом значения очередного элемента на экране
появлялась подсказка с индексом этого элемента, можно исполь­
зовать следующий цикл:

for i in range(N):

Глава 2. Алгоритмизация и программирование

В этом случае, например, при вводе значения элемента с ин­
дексом 2 на экран будет выведено А[2]= и справа от знака «=»
будет мигать курсор — приглашение к вводу.

3. Заполнение массива случайными числами. Для работы
со случайными числами сначала нужно подключить функцию
randint () модуля random () , генерирующую случайное целое чи­
сло в заданном диапазоне:

from random import randint

Далее можно использовать цикл с параметром:

for i in range(N):

A[i] = randint(10, 110)

Массив из N элементов будет заполнен случайными числами,
принадлежащими отрезку [10, 110].

4. Задание значений элементов массива по формуле.
Программа

for i in range(N):

заполняет массив целыми числами от 0 до N-1.
Программа

for i in range(N):

заполняет элементы массива числами, равными квадратам их
индексов.

2.1.3. Вывод массива

Во многих случаях бывает полезно вывести значения элемен­
тов массива на экран. Так, если значения массива генерировались
случайным образом, то необходимо знать, какими именно зна­
чениями заполнен исходный массив. Также нужно видеть, как
изменились значения элементов массив после обработки.

Самый простой способ — вывести список как один объект:

В этом случае весь массив выводится в квадратных скобках,
а его элементы разделяются запятыми.

Одномерные массивы целых чисел §2.1

Можно вывести элементы массива на экран по одному, ис­
пользуя цикл:

for i in range(len(А)):

Параметр end определяет, что после вывода каждого элемента
добавляется пробел, а не символ перехода на новую строку.

Значения элементов массива можно вывести в столбик:

for i in range(len(A)):

Более наглядным является следующий вариант вывода с ком­
ментариями:

for i in range(N): A[i])
print ('A[i, '] =

На основании рассмотренных примеров напишем программу,
в которой осуществляется: заполнение целочисленного массива А,
состоящего из 10 элементов, случайными числами, значения ко­
торых изменяются в диапазоне от 0 до 99; вывод массива А на
экран.

# Программа 19 ! Задание массива
N = 10
А = [0] * N ;

from random import randint Подключение генератора
случайных чисел
for i in range(N): Заполнение массива

A[i] = randint(0,99) Вывод массива

for i in range(N):
print ('A[', i, ']= ',A[i] )

2.1.4. Вычисление суммы элементов
Пример. В некотором населённом пункте N домов. Известно,

сколько людей проживает в каждом из домов. Составим алгоритм
подсчёта количества жителей населённого пункта.

Глава 2. Алгоритмизация и программирование
Исходные данные (количество жильцов) представим в виде
одномерного массива А, содержащего N элементов: А[0] — ко­
личество жильцов дома 1, А[1] — количество жильцов дома 2,

A[N—1] — количество жильцов дома N.
В общем случае A[i] — количество жильцов дома i + 1, где

i принимает целочисленные значения от 0 до N-1 (кратко обо­
значим это в блок-схеме как I = 0, 2V-1). Результат работы ал­
горитма обозначен через s (рис. 2.2).

Рис. 2.2. Блок-схема задачи вычисления суммы элементов массива

Суммирование элементов массива осуществляется по тому же
принципу, что и суммирование значений простых переменных —
за счёт поочерёдного добавления слагаемых:

1) определяется ячейка памяти (переменная s), в которой бу­
дет последовательно накапливаться результат суммирования;

2) переменной s присваивается начальное значение 0 — чис­
ло, не влияющее на результат сложения;

3) N раз текущее значение переменной s складывается со зна­
чением текущего элемента массива A[i]; полученный результат
присваивается переменной s.

Одномерные массивы целых чисел §2.1

Описанный процесс наглядно можно изобразить так:

s=0 s=0
i=0 s=s+A[0] s = 0+A[0]
1=1 S = S+A[1] s=0+A[0]+A[1]
1 = 2 s=s+A[2] s = 0+A[0]+A[1]+ [2]

i=N-l S = S+A[N-l] S = 0+A[0]+A[1]+A[2]+ . + A[N-1]

Запишем соответствующую программу на языке Python.

# Программа 20 Задание массива
N = 10
A = [0] * N Подключение генерато­
ра случайных чисел
from random import randint Заполнение массива

for i in range(N): Вывод массива

A[i] = randint(50, 200) Вычисление суммы
элементов массива
for i in range(N):
Вывод результата
print ('A[', i, ' ]= ', A[i])

for i in range(N):
s += A[i]

Рассмотрим работу этого алгоритма для массива

А = [100, 120, 130, 80, 70] .

© Глава 2. Алгоритмизация и программирование

Сравните программы 2 и 3. Выделите в них общие блоки. Обрати­
те внимание на различия.
Каким образом в программе 3 уточнена информация, представлен­
ная в примере о домах населённого пункта?

2.1.5. Последовательный поиск в массиве

В программировании поиск — одна из наиболее часто встре­

чающихся задач невычислительного характера.

Можно выделить следующие типовые задачи поиска:

1) найти наибольший (наименьший) элемент массива;

2) найти элемент массива, значение которого равно заданному

Для решения таких задач в программе необходимо организо­

вать последовательный просмотр элементов массива и сравнение

значения очередного просматриваемого элемента с неким образ­

Рассмотрим подробно решение задач первого типа: нахожде­

ние наибольшего (наименьшего) элемента.

Представим себе одномерный массив в виде стопки карточек,

на каждой из которых написано число. Тогда идея поиска наи­

большего элемента массива может быть представлена следующим

1) возьмём верхнюю карточку (первый

| элемент массива), запомним имеющееся на

V карточке число (запишем его мелом на доске)

I как наибольшее из просмотренных; уберём

д карточку в сторону;

2) возьмём следующую карточку; сравним

числа, записанные на карточке и на доске;

Г если число на карточке больше, то сотрём чи­
сло, записанное на доске, и запишем там то
же число, что и на карточке; если же новое
число не больше, то на доске оставим име­
ющуюся запись; уберём карточку в сторону;

3) повторим действия, описанные в п. 2, для всех оставшихся

карточек в стопке.

В итоге на доске будет записано наибольшее значение элемен­

та просмотренного массива.

Одномерные массивы целых чисел §2.1

В программировании при обосновании корректности циклических чР
алгоритмов используется понятие инварианта цикла.
Инвариант цикла — логическое выражение (условие), зависящее
от переменных, изменяющихся в теле цикла; оно истинно непо­
средственно перед началом выполнения цикла и после каждого
прохода тела цикла.
Условие «записанное на доске число — самое большое из всех
просмотренных до сих пор» является инвариантом цикла для рас­
смотренного алгоритма.

Так как доступ к значению элемента массива осуществляется
по его индексу, то при организации поиска наибольшего элемента
в одномерном массиве можно запоминать (хранить) его индекс.
Обозначим искомый индекс imax. Тогда описанный выше алго­
ритм в сформированном нами массиве А на языке Python можно
записать так:

# Программа 21 Задание массива
N = 10
А = [0] * N Подключение генератора

from random import randint случайных чисел

for i in range(N): Заполнение и вывод массива

imax = 0 Поиск индекса наибольшего
for i in range(1,N): элемента

if A[i] > A[imax]: imax = i

print('Наибольший элемент: ', Вывод результата
A[imax])

Рассмотрим работу этого алгоритма для массива
А = [100, 120, 130, 80, 70] .

imax i А [ i ] > А[imax]

01 120 > 100 (Да)
130 > 120 (Да)
12 80 > 130 (Нет)
'0 > 13 (Нет)
23

Наибольший элемент: 130

Глава 2. Алгоритмизация и программирование

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

Результатом решения задачи второго типа (нахождение эле­
мента массива, значение которого равно заданному значению)
может быть:

• к — индекс элемента массива такой, что А [к] = х, где х —
заданное число;

• сообщение о том, что искомого элемента в массиве не обна­
ружено.
Программа поиска в сформированном нами массиве А значе­

ния, равного х, может выглядеть так:

# Программа 22 ; Заданиемассива
N = 10
а = [0] * N :
:

from random import randint Подключение генератора
случайных чисел

for i in range(N): Заполнение и вывод масси­
ва
A[i] = randint (0, 99)
print CA[', i, '] = A [i] )

x = int (j_nput('x—')) Ввод значения х
Поиск индекса элемента,
nx = -1 равного х

for i in range (0, N) : : Выводрезультата
if A[i] == x: nx = i !
!
if nx == -1: :

print('Элемента со J
значением, равным ', ;
х, ' нет ' )

print('Индекс элемента,
равного заданному, ', пх)

Одномерные массивы целых чисел §2.1

В этой программе последовательно просматриваются все эле­
менты массива. Номер найденного элемента сохраняется в пере­
менной пх. Если в массиве есть несколько элементов, значения
которых равны заданному числу, то программа найдёт последний
из них. Если значение переменной пх не изменилось в ходе вы­
полнения цикла и осталось равным -1, то это означает, что в
массиве нет элемента, равного х.

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

for i in range(N):
if A[i] == x:

print("Элемент не найден")

Используя цикл с параметром, мы начали последовательный
перебор элементов массива и завершим его досрочно, как только
будет найдено требуемое значение. В таком случае для выхода из
цикла используется оператор break.

Здесь выполнение алгоритма будет завершено (прервано) в од­
ном из двух случаев:

1) в массиве найден первый из элементов, равный заданному
значению;

2) все элементы массива просмотрены.

Запишите полный текст программы и выполните её на компьютере. В

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

Определите, количество каких элементов подсчитывается с помо­
щью следующего фрагмента программы.

Глава 2. Алгоритмизация и программирование

for i in range (10) :
if A[i] > 50: к += 1

© Если требуется определить сумму значений элементов, удов­
летворяющих некоторому условию, то вводят переменную, к зна­
чению которой прибавляют значение найденного элемента мас­
сива.

Определите, какому условию удовлетворяют элементы массива,
значения которых суммируются с помощью следующего фрагмента
программы.

for i in range (10) :
and A[i]

a Запишите полные тексты двух программ и выполните их на ком­
пьютере.

2.1.6. Сортировка массива

Под сортировкой (упорядочением) массива понимают перерас­
пределение значений его элементов в некотором определённом по­
рядке.

Порядок, при котором в массиве первый элемент имеет самое
маленькое значение, а значение каждого следующего элемента
не меньше значения предыдущего элемента, называют неубыва­
ющим.

Порядок, при котором в массиве первый элемент имеет самое
большое значение, а значение каждого следующего элемента не
больше значения предыдущего элемента, называют невозрастаю­
щим.

Цель сортировки — облегчить последующий поиск элементов:
искать нужный элемент в упорядоченном массиве легче.

Рассмотрим один из возможных алгоритмов сортировки мас­
сивов — сортировку выбором.

Сортировка выбором (например, по невозрастанию) осуществ­
ляется следующим образом:

Одномерные массивы целых чисел §2.1

1) в массиве выбирается максимальный элемент;
2) максимальный и первый элементы меняются местами; пер­
вый элемент считается отсортированным;
3) в неотсортированной части массива снова выбирается мак­
симальный элемент; он меняется местами с первым неотсортиро­
ванным элементом массива;
4) действия, описанные в п. 3, повторяются с неотсортиро­
ванными элементами массива до тех пор, пока не останется один
неотсортированный элемент (его значение будет минимальным).
Рассмотрим процесс сортировки выбором на примере массива

А = [0, 1, 9, 2, 4, 3, 6, 5] .

Индекс 1 2 345 6 78
Значение 0 1 924365

1 0 1£2 4 3 6 5
2
3 910243 5
Шаги 4
5 9 6 0 2 4 3 1 5_
6
7 9 6 5 2 _4_ 3 1 0
Итог:
9 6 5 4 2 _3 1 0

9 6 5 4 3 2_ 1 0

В этом массиве из 8 элементов операцию выбора максимального
элемента мы проводили 7 раз. В массиве из п элементов такая
операция будет проводиться п — 1 раз. Объясните почему.

Приведём фрагмент программы, реализующий описанный ал­
горитм:

for i in range(n — 1):

for j in range(i +1, n):
if A[j] > A[imax]: imax = j

A[i], A[imax] = A[imax], A[i]

Глава 2. Алгоритмизация и программирование

Здесь мы использовали один цикл внутри другого. Такая кон­
струкция называется вложенным циклом.

Запишите полный текст программы и выполните её на компьютере
для рассмотренного в примере массива А.

Для работы с большим количеством однотипных данных ис­
пользуются массивы.

Массив — это совокупность фиксированного количества од­
нотипных элементов, которым присвоено общее имя. Доступ к
отдельному элементу массива осуществляется по его номеру (ин­
дексу).

Нумерация элементов массива в Python начинается с нуля.
При обращении к элементу массива индекс записывают в ква­
дратных скобках. Это может быть число, имя переменной целого
типа или арифметическое выражение, результат которого — це­
лое число.
Перед использованием в программе массив необходимо со­
здать, в противном случае обращение к несуществующему эле­
менту вызовет ошибку и аварийное завершение программы.
Заполнять массив можно либо вводя значение каждого эле­
мента с клавиатуры, либо присваивая элементам некоторые
значения в программе. При заполнении массива и выводе его
элементов на экран используется цикл с параметром, который
изменяется от минимального до максимального значения индекса.
При решении разнообразных задач, связанных с обработкой
массивов, используются такие типовые алгоритмы, как: сумми­
рование элементов массива; поиск элемента с заданными свойст­
вами; сортировка массива.
Для вычисления суммы элементов массива используется пе­
ременная, в которой накапливается сумма. Начальное значение
этой переменной равно нулю.
При подсчёте элементов, удовлетворяющих условию, исполь­
зуется переменная, которая увеличивается на 1 каждый раз, ког­
да найден новый подходящий элемент. Начальное значение этой
переменной равно нулю.

Одномерные массивы целых чисел §2.1

Вопросы и задания

1. Объясните разницу между понятиями «индекс элемента мас­
сива» и «значение элемента массива».

2. Может ли массив одновременно содержать целые и вещест­
венные значения?

3. Для чего предназначены массивы?

4. Запишите в следующем формате:

А[<индекс>] = <значение элемента массива>

значения элементов массивов, сформированных следующим
образом:

а) for i in range(7): A[i] = 1
б) for i in range(7): A[i] = i
в) for i in range(7): A[i] = i * i — 4
r) A= [ 3, 4, -1, 5, 0, 10, -12]
д) for i in range(8):

if i % 2 == 0: A[i] = i / 2
else: A[i] = 0

5. Что вы можете сказать о массиве, сформированном следую­
щим образом?

а) for iin range(10): A[i] = random,randint(-50, 50)
б) for iin range(20): A[i] = i
в) for iin range(0, 5): A[i] = 2 * i — 1

6. Чему равна сумма элементов массива А[0] и А [5], сформи­
рованного следующим образом?

Алгоритмический язык Python

нц для i от 0 до 9 for i in range (10) :

A[i] := i * i — 5 A[i] = i * i — 5

Глава 2. Алгоритмизация и программирование

7. Известны значения элементов одномерного целочисленного
массива А, состоящего из 5 элементов:

i 0 123 4
A[i] 4 1 -5 7 2

Чему равно значение А[А[4] ]?

8. Чему равно среднее арифметическое значение элементов мас­
сива А[3] и А [4], сформированного следующим образом?

Алгоритмический язык Python

нц для i от 0 до 9 for i in range(10):
если mod(i, 2)=0 if i % 2 == 0:
то A[i] := i / 2 A[i] =i/2
иначе A[i] := (i + 1) / 2 else: A[i] = (i + 1) / 2
все

9. Найдите сумму значений элементов А[1] и А[4] массива,
сформированного следующим образом:
for i in range(6): A[i] = i * (i + 1)

10. Массив задан следующим образом:

Найдите значение выражения

В [5] * В [ 4 ] — В [2 ] — В [3] * В [ 1 ] .

11. Массив А из десяти элементов сформирован следующим
образом:

Алгоритмический язык Python

нц для i от 0 до 9 for i in range(10):

А[i] := i * i A[i] = i * i

Одно мер ные массивы целых чисел §2.1

К данному массиву был применён следующий алгоритм:

Алгоритмический язык Python

b := А[9] Ь = а[9]
нц для i от 0 до 8 for i in range (9) :

А[9 — 1] := А[8 — 1] A[9 — i] = A[8 — i]
кц A[0] = b
А[0] := b

Чему равно значение седьмого элемента обработанного мас­
сива?

12. Массив А из десяти элементов сформирован следующим
образом:

Алгоритмический язык Python

нц для i от 0 до 9 for i in range (10) :
A[i] := 11 — i A[i] = 11 — i

К данному массиву был применён следующий алгоритм:

Алгоритмический язык Python

нц для i от 0 до 8 for i in range (9) :
A[i + 1]:= A[i] A[i + 1] = A[i]

Чему равно среднее арифметическое значений элементов об­
работанного массива?

13. Определите, что будет выведено в результате выполнения
следующей программы:

a) A = [1, 7, 3, 6, 0, 10] 6) A

[ 0 ] * 7
for i in range(7):
s=0 A[i] = i * 3

for i in range(6): k= 0

s = s + a [i] for i in range(7):
sr = s / 6 if A[i] > 10: k += 1
print('sr= ', sr)
print('k= ', k)

Глава 2. Алгоритмизация и программирование

в) а = [-1, 7, -3, -6 ,0, 1, 2] г) A = [1, -7, 3, 6, 0, —
d= 0 5) :
m= О m = A[0]
п=О for i in range(1,

к= О if m < a[i ] :
d=i
for i in range(7): m = A[i]
if A[i] > 0: m += 1
if A[i] < 0: n += 1 print('d=', d)
if A[i] == 0: к += 1

14. Проанализируйте представленный в форме блок-схемы алго­
ритм и укажите результат его выполнения при заданном вход­
ном потоке данных: -5, 3, 1, -4, -3, 2, 5, -1, -7, 4.

Одномерные массивы целых чисел §2.1

Запишите соответствующую программу на языке программи­
рования Python.

15. Установите соответствие между записанными на языке
Python фрагментами программ обработки одномерного мас­
сива и результатами их работы.

а) у = 0 1. Произведение ненулевых эле­
for i in range(10): ментов массива
if A[i] == 0:
у += 1 2. Значение наибольшего эле­
мента массива
б) s = 0
for i in range(15): 3. Сумма всех элементов масси­
if A[i] % 2 == 0: ва с чётными номерами
s += a [i]
4. Номер (индекс) минимального
в) n = 0 элемента массива
for i in range (1, 10) :
if A[i] < a [n] : 5. Количество всех элементов
n=i массива, значение которых
кратно 5
г) k = 0
for i in range(100): 6. Количество ненулевых эле­
if A[i] % 5 == 0: ментов массива

д) m = a [ 0 ]
for i in range(1, 10):
if А[i] > m:

е) z = 1
for i in range(10
if A[i: <> 0:

16. В массиве Dat хранятся данные измерений среднесуточной
температуры за неделю в градусах (Dat [ 1 ] — данные за по­
недельник, Dat [2] — данные за вторник и т. д.). Опреде­
лите, что будет выведено в результате работы программы,
записанной на алгоритмическом языке. Запишите эту про­
грамму на языке Python.

Глава 2. Алгоритмизация и программирование

целтаб Dat [ 1. .7]
цел т, k

Dat[1] = 12; Dat[2] = 14
Dat[3] = 13; Dat[4] = 15
Dat [ 5] = 15; Dat[6] = 12
Dat [7] = 16
m := 0

нц для к от 1 до 7
если Dat[k] > 14 to

17. Напишите программу, которая вычисляет среднюю темпера­
туру воздуха за неделю с точностью до двух знаков после
запятой. Исходные данные вводятся с клавиатуры.

Пример входных данных Пример выходных данных

Введите температуру: Средняя температура за
Понедельник 12 неделю: 14.71
Вторник 10
Среда 16
Четверг 18
Пятница 17
Суббота 16
Воскресенье 14

18. Дан массив из десяти целых чисел. Напишите программу
подсчёта количества элементов этого массива, имеющих
максимальное значение.

19. В классе 20 учеников писали диктант по русскому языку.
Напишите программу, подсчитывающую количество двоек,
троек, четвёрок и пятёрок, полученных за диктант.

Одномерные массивы целых чисел §2.1

20. Объявлен набор в школьную баскетбольную команду. Извес­
тен рост каждого из N учеников, желающих попасть в эту
команду. Составьте алгоритм подсчёта количества претенден­
тов, имеющих шанс попасть в команду, если рост игрока
команды должен быть не менее 170 см. Запишите програм­
му на языке Python. Считайте рост претендента в команду
случайным числом из диапазона от 150 до 200 см, а число
претендентов N = 50.

21. В целочисленных массивах А и В содержатся длины катетов
десяти прямоугольных треугольников (А [ i ] — длина перво­
го катета, В [i] — длина второго катета i-го треугольника).
Найдите треугольник с наибольшей площадью. Выведите его
номер, длины катетов и площадь. Предусмотрите случай,
когда таких треугольников несколько.

22. Занесите информацию о десяти европейских странах в три
массива: Name (название стран), К (численность населения),
S (площадь страны). Выведите названия стран в порядке
возрастания плотности их населения.

Проверочная работа № 6

1. Дан одномерный массив А из шести элементов:

-125 200 10 5 43 11

1) Как можно создать этот массив в программе, записанной
на языке Python?

2) Чему равно значение элемента массива с индексом 4?
3) Чему равно значение элемента массива А[А[3] ]?

2. Программа обрабатывает одномерный целочисленный массив

i 01 2 3 4 5 6 7 8 9

Dat[i] 80 90 100 80 40 40 70 8 0 90

Заполните в тетради трассировочную таблицу и определите,
какие числа будут выведены в результате выполнения следу­
ющего фрагмента программы.

Глава 2. Алгоритмизация и программирование

к= 1 кm dat[i] < m
m = Dat[к] . . . .

for i in range(10):
if Dat[i] < m:

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

for i in range(8):

A [ i ] = int(input())
s = 0;

for i in range(8):
if A[i] < 0:

s = s + A[1] ;
print(s)

Каким окажется ответ после выполнения этой программы,
если в качестве элементов массива будут введены числа

1, 2, 3, 4, 0, -1, -2, -3, -4?

Как исправить программу, чтобы она решала поставленную
перед программистом задачу?

§ 2.2
Запись вспомогательных алгоритмов
на языке Python

Ключевые слова:
• подпрограмма
• процедура
• функция
• рекурсивная функция

Запись вспомогательных алгоритмов на языке Python §2.2

Запись вспомогательных алгоритмов в языках программиро­
вания осуществляется с помощью подпрограмм.

В Python различают два вида подпрограмм: процедуры и
функции.

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

Описание процедуры имеет вид:
def <имя процедуры>():

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

Операторы, которые входят в тело процедуры, записываются
с отступом. Так мы показываем, какие команды входят в про­
цедуру.

Для того чтобы процедура заработала, её необходимо вызвать
по имени; причём таких вызовов может быть сколько угодно.

Процедура должна быть определена к моменту её вызова,
т. е. должна быть выполнена команда def, которая создаёт объ­
ект-процедуру в памяти. Если процедура вызывается из основной
программы, то нужно поместить определение процедуры раньше
точки её вызова.

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

def digit():
print(1111111)

print('Четыре строки из семи единиц')
digit ()
digit ()
digit ()
digit ()

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

Глава 2. Алгоритмизация и программирование

Для этого создадим процедуру с параметром, определяющим дли­
ну строки.

Чтобы вывести единицу п раз воспользуемся командой:

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

def digit(n):
print ( ' 1 ' * n)

Чтобы вывести строку требуемой длины, нужно вызвать про-
цедуру, указав в скобках значение параметра п, т. е. количество
символов ' 1':

digit(7) (выводит 7 единиц: 1111111
digit(8) (выводит 8 единиц: 11111111
digit(9) (выводит 9 единиц: 111111111

digit(lO) #выводит 10 единиц: 1111111111

Процедура может зависеть от нескольких параметров. Давайте
немного улучшим процедуру digit (): сделаем так, чтобы можно
было изменять не только длину строки, но и цифры, из которых
она строится. Для этого добавим в процедуру ещё один параметр,
который назовём d:

Обозначение переменных, значения которых мы вводим с кла­
виатуры, не обязательно должно совпадать с обозначением пара­
метров процедуры. Мы могли бы назвать их любыми другими
именами, например:

def digit(d, n) :
print(d * n)

x= (input('Введите цифру: ') )
y=int(input('Введите длину строки:'))
digit(x, у)

Переменные d и n — это локальные переменные; они опре­
делены и используются только внутри процедуры digit (). Об­
ращаться к ним вне этой процедуры нельзя. Как только работа

Запись вспомогательных алгоритмов на языке Python §2.2

процедуры будет закончена, все её локальные переменные уда­
лятся из памяти.

В тех случаях, когда значение переменной, полученное в под­
программе, должно быть использовано в основной программе, эту
переменную следует объявить как глобальную.

Пример. Напишем процедуру для нахождения наибольшего
общего делителя двух чисел с помощью алгоритма Евклида. Ис­
пользуем её для нахождения наибольшего общего делителя сле­
дующих шести чисел: 16, 32, 40, 64, 80 и 128.

def nod (а, b): Процедура

while а != b:
if а > Ь:

m = [16, 32, 40, 64, 80, 12 8] : Основная программа

for i in range(1, 6):

nod(x, y) Вызов процедуры

Измените программу так, чтобы с её помощью можно было найти:
а) наибольший общий делитель следующих пяти чисел: 12, 24, 30,
48 и 51;
б) наибольший общий делитель произвольных десяти целых двуз­
начных чисел.

Функция — это подпрограмма, имеющая единственный ре­
зультат, записываемый в ячейку памяти. В отличие от проце­
дуры, функция не только выполняет какие-то команды, но и
возвращает результат в виде числа, символьной строки или др.

Описание функции имеет вид:
def <имя функции>():

Глава 2. Алгоритмизация и программирование

Функция начинается со служебного слова def. После этого
записывается имя функции, скобки и двоеточие. Операторы, ко­
торые входят в тело функции, записываются с отступом. После
оператора return записывается результат, который возвращает
функция.

В языке Python есть встроенная функция max () , вычисляю­
щая максимальное значение из нескольких аргументов.

Пример. Запишем функцию, которая возвращает значение на­
ибольшего из двух целых чисел.

def max(а, b):
if а > Ь:

Результат функции можно сразу вывести на экран:

Также мы можем присвоить результат работы функции любой
глобальной переменной: х = max (6, 8). Одна функция может
вызывать другую.

Пример. Напишем программу нахождения максимального из
четырёх целых чисел, использующую функцию поиска макси­
мального из двух чисел:

def max(а, b):
if а > Ь:
m=а
else:
m=b
return m

a, b, c, d = map(int, input().split())
f = max(max(a, b), max(c, d))
print('f=', f)

Измените программу так, чтобы с её помощью можно было найти:
а) максимальное из чисел а, Ь, с;
б) максимальное из чисел b, с, d\
в) минимальное из четырёх чисел;
г) разность максимального и минимального из четырёх чисел.

Запись вспомогательных алгоритмов на языке Python §2.2

Пример. В январе Саше подарили пару новорождённых кроли­
ков. Через два месяца они дали первый приплод — новую пару
кроликов, а затем давали приплод по паре кроликов каждый
месяц. Каждая новая пара также даёт первый приплод (пару
кроликов) через два месяца, а затем — по паре кроликов каждый
месяц. Сколько пар кроликов будет у Саши в декабре?

Составим математическую модель этой задачи. Обозначим
через Дп) количество пар кроликов в месяце с номером п. По
условию задачи, /(1) = 1, /(2) = 1, /(3) = 2. Из двух пар, име­
ющихся в марте, дать приплод в апреле сможет только одна:
/(4) = 3. Из пар, имеющихся в апреле, дать приплод в мае смо­
гут только пары, родившиеся в марте и ранее: /(5) = /(4) + /(3) =
3 + 2 = 5. В общем случае: Д/г) = f(n — 1) + f(n — 2), п > 3.

Числа 1, 1, 2, 3, 5, 8, . образуют так называемую последо­
вательность Фибоначчи, названную в честь итальянского матема­
тика, впервые решившего соответствующую задачу ещё в начале
XIII века.

Оформим в виде функции вычисление члена последователь­
ности Фибоначчи.

def f(п): 2)
if n == 1 or п == 2:

else: rez = f(n — 1) + f(n
return rez

Полученная функция — рекурсивная; в ней реализован способ
вычисления очередного значения функции через вычисление её
предшествующих значений.

Напишите программу, вычисляющую и выводящую 10 первых чле­
нов последовательности Фибоначи.

Запись вспомогательных алгоритмов в языках программиро­
вания осуществляется с помощью подпрограмм. В Python разли­
чают два вида подпрограмм: процедуры и функции.

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

Глава 2. Алгоритмизация и программирование

В процедуру могут быть переданы глобальные переменные, кото­
рые она обрабатывает, изменяет.

В отличие от процедуры, функция не только выполняет ка­
кие-то команды, но и возвращает результат в виде числа, сим­
вольной строки или др.

Вызов функции можно использовать в арифметических вы­
ражениях и условиях так же, как и переменную того типа, ко­
торый возвращает функция. В теле любой подпрограммы можно
вызывать другие функции и процедуры. Рекурсивная функция —
это функция, которая вызывает сама себя, напрямую или через
другие процедуры и функции.

Вопросы и задания

1. Для чего используются подпрограммы?

2. Дан текст процедуры на языке Python:

Определите, сколько звёздочек будет выведено в результате
вызова f(7). Вычисления фиксируйте в таблице:

п 1 2 3 4 5 6 7.
f (П)

3. Напишите процедуру с параметрами п (целое число) и а
(символ), которая выводит на экран п строк, каждая из ко­
торых содержит п символов а.

4. Напишите процедуру с параметрами w (ширина), h (высота),
а (символ), которая выводит на экран «прямоугольник» из
символов а, ширина которого равна w, а высота — h.

5. В чём основное различие процедур и функций?

6. Напишите функцию KDN (), которая вычисляет количество
цифр вводимого целого числа.

7. Напишите функцию KBDN(), которая вычисляет количество
цифр в двоичной записи вводимого десятичного числа.

Запись вспомогательных алгоритмов на языке Python §2.2

8. Напишите программу вычисления наименьшего общего
кратного следующих четырёх чисел: 36, 54, 18 и 15. Ис­
пользуйте процедуру вычисления наибольшего общего дели­
теля двух чисел.

9. Напишите программу перестановки значений переменных
а, Ь, с в порядке возрастания, т. е. так, чтобы а < b < с.
Используйте функцию swap () .
Исходные данные вводятся с клавиатуры.

Пример входных данных Пример выходных данных

12 3 12 3
2 13 12 3
3 12 12 3
231 12 3

10. Видоизмените программу сортировки массива выбором так,
чтобы в ней использовалась процедура выбора наибольшего
элемента массива.

11. Напишите программу вычисления выражения

s = 1! + 2! + 3! +. + п\
Здесь п\ — факториал числа п. п\ = 1 • 2 • • (и — 1) • п.
Используйте функцию вычисления факториала.

12. Напишите программу вычисления выражения

где х и п вводятся с клавиатуры. Используйте подпрограмму
вычисления степени.

13. Напишите функцию, вычисляющую длину отрезка по коор­
динатам его концов. Напишите программу, вычисляющую
периметр треугольника по координатам его вершин с помо­
щью этой функции.

14. Напишите функцию, вычисляющую площадь треугольника
по целочисленным координатам его вершин. Напишите про­
грамму вычисления площади четырёхугольника по коорди­
натам его вершин с помощью этой функции.

Глава 1. НАЧАЛА ПРОГРАММИРОВАНИЯ. 3

§ 1.1. Общие сведения о языке программирования Python. 3
1.1.1. Алфавит и словарь языка . 4
1.1.2. Типы данных, используемые вязыкеPython. 6
1.1.3. Режимы работы интерпретатораPython. 6
1.1.4. Оператор присваивания. 8

§ 1.2. Организация ввода и вывода данных. 13
1.2.1. Вывод данных . 13
1.2.2. Первая программа на языке Python . 15
1.2.3. Ввод данных с клавиатуры . 17

§ 1.3. Программирование линейных алгоритмов. 23
1.3.1. Числовые типы данных . 24
1.3.2. Целочисленный тип данных . 26
1.3.3. Строковый тип данных . 27
1.3.4. Логический тип данных. 28

§ 1.4. Программирование разветвляющихся алгоритмов . 36
1.4.1. Условный оператор . 36
1.4.2. Многообразие способов записи ветвлений. 38

§ 1.5. Программирование циклических алгоритмов. 47
1.5.1. Программирование циклов с известным условием
продолжения работы. 47
1.5.2. Программирование циклов с известным условием
окончания работы. 48
1.5.3. Программирование циклов с известным числом
повторений. 49
1.5.4. Различные варианты программирования
циклического алгоритма. 50

Тестовые задания для самоконтроля за курс 8 класса. 62

Глава 2. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ . 67

§ 2.1. Одномерные массивы целых чисел. 67
2.1.1. Обращение к элементу массива. 68
2.1.2. Заполнение массива. 69
2.1.3. Вывод массива. 70
2.1.4. Вычисление суммы элементов. 71
2.1.5. Последовательный поиск в массиве. 74
2.1.6. Сортировка массива. 78

Общие сведения о языке программирования Python

Нажмите, чтобы узнать подробности

1урок Общие сведения о языке программирования Python.

Языки программирования — это формальные языки, предназначенные для записи алгоритмов, исполнителем которых будет компьютер.

Записи алгоритмов на языках программирования называются программами.

PYTHON это – С одной стороны – интерпретатор – программа, которая интерпретирует или выполняет по шагам другие программы

С другой стороны – будучи языком программирования, определяет набор правил, согласно которым составляются программы и определяет набор правил, согласно которым эти программы исполняются на компьютере.

Разработан голландцем Гвидо ван Россумом (родился в 1956 г.) в 1991году.

Алфавит языка

Алфавит языка программирования Python — набор допустимых символов, которые можно использовать для записи программы.

Латинские прописные A, B, C, …, X Y, Z

Латинские строчные буквы a, b, c,…, x, y, z

Арабские цифры 0, 1, 2, …, 7, 8, 9

Специальные символы Знаки арифметические, препинания, скобки и другие

неделимые элементы (составные символы)

Знаки не равно !=, равно ==

Знаки больше или равно =,меньше или равно

Словарь языка

Имена (констант, переменных и других объектов):

не служебные слова;

состоят из букв, цифр и символа подчеркивания;

начинаются с буквы или символа подчеркивания;

прописные и строчные буквы РАЗЛИЧАЮТСЯ!

Правильные имена

polnaja_summa

Неправильные имена

polnaja summa — содержится символ (пробел)

2as — начинается с цифры

Domby&Son — содержится символ &

and – служебное слово языка

Корректно давать переменным «говорящие» имена

Вывод данных

print( , , . N)

Вывод данных из оперативной памяти на экран монитора:

Выражения — символьные, числовые, логические, в том числе переменные и константы

Пример:

print (‘s=’,s) Информация в кавычках выводится на экран без изменений

На экране:

Типы данных:

Тип данных переменной определяется формой записи.

Целые числа не содержат запятой, вещественные содержат, строковые данные (любые символы таблицы Unicode) записываются в апострофах, логические рассмотрим позже (True и False, выражения содержащие знаки сравнения…)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *