Урок информатики в 11 классе на тему «Работа со списками. Решение задач»
Класс: 11
Тема урока: Работа со списками. Решение задач
Тип урока: урок применения знаний, умений и навыков (практическая работа)
Цель урока: сформировать представление об однородных массивах (списках), повторить основные способы и методы работы со списками, сформировать умение решать задачи с использованием одномерных массивов(списков).
Задачи урока:
1) обучающая: научиться применять основные методы для работы со списками; использовать при решении задач специальную функцию len при работе с различными типами данных; извлекать символы, объекты с помощью оператора индексирования; получать срез в различных типах данных.
2) развивающая: развитие мыслительной деятельности, речи, алгоритмического стиля мышления.
3) воспитательная: воспитание эмоционально-положительной направленности на практическую деятельность, интереса к информатике, личной ответственности за результаты своей работы.
Планируемые результаты:
Познавательные УУД:
научиться грамотно подходить к способам решения задач с использованием одномерных массивов;
применять полученные знания при работе с компьютером и на уроках информатики.
Регулятивные УУД:
выполнять учебные задания в соответствии с целью;
соотносить приобретенные знания с реальной жизнью;
выполнять учебное действие в соответствии с планом.
Коммуникативные УУД:
формулировать высказывание, мнение;
умение обосновывать, отстаивать свое мнение;
согласовывать позиции с партнером и находить общее решение;
Ресурсы: компьютеры, проектор, среда программирования Python IDLE, презентация.
Межпредметные связи: математика.
Основные понятия: список.
Ход урока (дидактическая структура урока)
1. Организационный этап (2 мин) | УУД: - Личностные - Коммуникативные | |||||||||||||||
Приветствие, перекличка. | ||||||||||||||||
| 2. Проверка домашнего задания (10 мин) | УУД: - Личностные - Познавательные - Регулятивные - Знаково-символические - Коммуникативные | ||||||||||||||
| Прохождение тестирования в системе NetTest: https://kpolyakov.spb.ru/school/test10/py42.htm | |||||||||||||||
| 3. Сообщение темы и целей урока | | ||||||||||||||
| Тема урока: Работа со списками. Операции над списками в Python Цели урока: сформировать представление об однородных массивах (списках) Повторить основные способы и методы работы со списками Сформировать умение решать задачи с использованием одномерных массивов(списков) | |||||||||||||||
| 3. Повторение пройденного материала (10 мин) | УУД: - Личностные - Познавательные - Знаково-символические - Коммуникативные | ||||||||||||||
| Список (list) - это тип данных, представляющий собой упорядоченный набор элементов. Элементы одно списка должны иметь одинаковый тип. Например, список строк, список целых чисел. Примеры списков: a = ["Андрей", "Вера", "Даша", "Коля", "Юра"] Здесь создали список с именем a и элементами строкового типа. b = [17, 409, 88] Здесь создали список с именем b и элементами - целыми числами. Каждый элемент списка имеет свой номер (индекс), и с каждым элементом списка можно отдельно работать. Нумерация элементов начинается с нуля:
a = ["Андрей", "Вера", "Даша", "Коля", "Юра"] print(a[2]) Вывод: Даша Чтобы перебрать все элементы списка используется цикл: a = ["Андрей", "Вера", "Даша", "Коля", "Юра"] for i in range(5): print("Привет,", a[i]) Вывод: Привет, Андрей Привет, Вера Привет, Даша Привет, Коля Привет, Юра Создание списка Списки можно создавать разными способами. 1) Перечислением всех элементов (этот способ был рассмотрен выше): a = ["Андрей", "Вера", "Даша", "Коля", "Юра"] Можно создать пустой список: a = [] 2) С помощью генератора списка: a = [0]*5 Получится список, состоящий из пяти нулей: [0, 0, 0, 0, 0]. a = [ i for i in range(10) ] Получится список [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a = [ i*i for i in range(10) ] Получится список [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 3) Путём ввода элементов с клавиатуры (каждый элемент с новой строки): a = [0]*5 for i in range(5): print("a[",i,"]= ", end = "") a[i] = int(input()) Запустите эту программу и создайте список. 4) Путём ввода элементов с клавиатуры (все элементы в одной строке через пробел). Для этого используется метод a.split(), возвращающий список строк, которые получатся, если исходную строку разрезать на части по пробелам: s = input() # пользователь вводит строку "1 2 3" a = s.split() print(a) Вывод: ['1', '2', '3'] Вывод списка Списки можно выводить разными способами. 1) Самый простой способ - просто дать команду вывести список: b = [17, 409, 88] print(b) Вывод: [17, 409, 88] 2) Вывод каждого элемента списка по-отдельности: a = ["Андрей", "Вера", "Даша", "Коля", "Юра"] for i in range(5): print(a[i]) 3) Вывод каждого элемента списка по-отдельности в одной строке: a = ["Андрей", "Вера", "Даша", "Коля", "Юра"] for i in range(5): print (a[i], end = " ") 4) Вывод элементов списка без обращения к индексам элементов: fruits = ["Яблоко", "Банан", "Груша"] for x in fruits: print(x, end = " ") Работа со списком 1) Элементы списка можно менять: a = [1, 2, 3, 4, 5, 6] for i in range(6): if a[i] % 2 == 0: a[i] = 0 print(a) Вывод: [1, 0, 3, 0, 5, 0] 2) Можно добавлять элементы в конец списка. Для этого используется метод a.append(x): a = [1, 2, 3] a.append(4) print(a) Вывод: [1, 2, 3, 4] 3) Можно расширять список, добавляя в его конец элементы другого списка. Для этого используется метод a.extend(b): a = [1, 2, 3] b = [4, 5] a.extend(b) print(a) Вывод: [1, 2, 3, 4, 5] 4) Списки можно копировать: a = [1, 2, 3] b = a print(b) 5) Функция нахождения длины списка len(a): a = ["Яблоко", "Банан", "Груша"] x = len(a) print(x) Вывод: 3 6) Заполнение списка случайными элементами: from random import randint x = 7 a = [0]*x for i in range(x): a[i] = randint(0,100) 7) Перестановка элементов списка в обратном порядке. Метод a.reverse(): a = [0, 1, 2, 3, 4, 5] a.reverse() print(a) Вывод: [5, 4, 3, 2, 1, 0] 8) Сортировка списка. Функция sorted(a): По возрастанию: animals = ["кот", "еж", "барсук", "собака", "свинья"] animals = sorted(animals) print(animals) Вывод: ['барсук', 'еж', 'кот', 'свинья', 'собака'] По убыванию: a = [5, 65, 14, 700, 8] a = sorted(a, reverse = True) print(a) Вывод: [700, 65, 14, 8, 5] | |||||||||||||||
| 4. Работа на компьютерах (20 мин) | УУД: - Личностные - Регулятивные - Познавательные - Знаково-символические - Коммуникативные | ||||||||||||||
| Учащиеся пишут программы на компьютерах под руководством учителя. Обучающиеся проходят инструктаж по ТБ перед работой за компьютером. Практическая работа «Работа со списками. Операции над списками в Python»Уровень А. Дополните приведенный код, так чтобы он вывел сумму минимального и максимального элементов списка numbers. numbers = [12.5, 3.1415, 2.718, 9.8, 1.414, 1.1618, 1.324] print(…) Дополните приведенный код так, чтобы он вывел среднее арифметическое элементов списка evens. evens = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] Уровень В. 1. Дан одномерный массив, состоящий из N целочисленных элементов. Ввести массив с клавиатуры. Найти максимальный элемент. Вывести массив на экран в обратном порядке. 2. В массиве действительных чисел все нулевые элементы заменить на среднее арифметическое всех элементов массива. 3. Найдите сумму и произведение элементов списка. Результаты вывести на экран. Уровень С. На вход программе подается натуральное число n, а затем n целых чисел. Напишите программу, которая создает из указанных чисел список, затем удаляет все элементы, стоящие по нечетным индексам, а затем выводит полученный список.
На вход программе подается натуральное число n и n строк, а затем число k. Напишите программу, которая выводит k-ую букву из введенных строк на одной строке без пробелов.
Выставление оценок за работу на уроке. | |||||||||||||||
| Рефлексия | УУД: - Личностные - Регулятивные - Коммуникативные | ||||||||||||||
| Рефлексия "Ключевые слова" На доске прикреплены "ключевые слова" урока, по которым можно придумать рассказ или расставить их в определенной последовательности. Слова: оценка, задача, учитель, массив и т.д. | |||||||||||||||
| 5. Домашнее задание (3 мин) | УУД: - Личностные - Коммуникативные | ||||||||||||||
| Написать программы: Создать список своих любимых песен. Отсортировать список в алфавитном порядке и вывести его. Создать список из десяти элементов. Заполнить его случайными числами. Вывести этот список. Вывести наименьший элемент списка. Заполнить массив из 5 элементов случайными числами в интервале [-100,100]. Найти сумму всех отрицательных элементов массива. Если отрицательных элементов в массиве нет, вывести сообщение «отрицательных элементов нет». |
Ответы на тест:
1,4,5
5
X[k] = 2*k + 1
X[k] = 12 - 3*k
X[k] = 2*k + k % 2
X[k] = 2*X[k-1]
X[N-1-k]
k+=2
S+=X[k]
X[k]>0
X[j] % 2 == 0
Ответы на задачи:
Уровень А
numbers = [12.5, 3.1415, 2.718, 9.8, 1.414, 1.1618, 1.324]
print(min(numbers) + max(numbers))
evens = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
average = sum(evens)/len(evens)
print(average)
Уровень В
1
1 2 3 4 5 6 7 | arr=[] n = 5 for i in range(n): arr.append(input('Введите число: '))
print('максимальный элемент: ' + str(max(arr))) print('обратный порядок: ' + str(list(reversed(arr)))) |
| |
2
data = [1.2, -5, 0, 3.4, 0, 0]
mean = sum(data) / len(data)
data = [it if it else mean for it in data]
3
a = [1, 5, 12, 83]
print('Числа: ', a)
print('Сумма всех чисел: ', sum(a))
result = 1
for i in a:
result *= i
print('Произведение всех чисел: ', result)
Уровень С
n=int(input())
b=[]
for i in range(n):
a=int(input())
b.append(a)
del b[1::2]
print(b)
n = int(input())
li = []
for _ in range(n):
li.append(input())
index = int(input())
res = ''
for s in li:
if len(s) >= index:
res += s[index - 1]
print(res)
n = int(input())
sp = []
for _ in range(n):
sp.extend(input())
print(sp)