- •Оглавление
- •Лабораторная работа №1 «Запись арифметических выражения на языке Python. Обработка исключений. Запись информации в текстовый файл. Создание пользовательских функций»
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов
- •Лабораторная работа №2 «Программирование алгоритмов разветвляющихся структур. Нахождение максимального и минимального значения»
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов
- •Лабораторная работа №3 «Создание классов. Создание экземпляров классов. Создание конструкторов»
- •Часть 1
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов.
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов.
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов.
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов.
- •2 Часть
- •Задание на разработку проекта
- •Арифметическое выражение лр1: Арифметическое выражение лр2:
- •Разработка алгоритма
- •Выполнение проекта и получение результатов
- •Проверка правильности работы
- •Лабораторная работа №4 «Создание меню в Python-программе. Инкапсуляция»
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов
- •Доказательство правильности работы
- •Лабораторная работа №5 «Табулирование функции»
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов
- •Лабораторная работа №6 «Работа с библиотеками Python»
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов
- •Лабораторная работа № 7 «Создание приложений, использующих итеративные циклические структуры»
- •Задание на разработку проекта
- •Разработка алгоритма
- •3. Выполнение проекта и получение результатов
- •4.Доказательство правильности работы программ
- •Лабораторная работа №8 «Программирование Python-приложений с использованием библиотеки Tkinter»
- •1.Задание на разработку проекта
- •2.Разработка алгоритма
- •3.Выполнение проекта и получение результатов
- •4.Доказательство правильности работы программ
- •Лабораторная работа №9 «Работа с кортежами»
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результата
- •Доказательство правильности работы программы
- •Лабораторная работа №10 «Работа со словарями»
- •1 Часть
- •Задание на разработку проекта
- •2. Разработка алгоритма
- •Выполнение проекта и получение результата
- •Доказательство правильности работы программы
- •2 Часть
- •Задание на разработку проекта
- •Разработка проекта
- •Выполнение проекта и получение результатов
- •Лабораторная работа №11 «Работа со списками»
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов:
- •Лабораторная работа №12 «Базовые алгоритмы обработки списков и их сортировка»
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов:
- •Лабораторная работа №13 «Работа со вложенными последовательностями»
- •Задание на разработку проекта
- •Разработка алгоритма
- •Выполнение проекта и получение результатов
- •Дополнительное задание «Реализация пошаговой детализации»
- •Задание на разработку проекта
- •Разработка алгоритма
- •3. Выполнение проекта и получение результатов
Выполнение проекта и получение результатов:
На рисунке 6 показаны результаты работы программы;
Рисунок
6
- Результат
работы программы
Лабораторная работа №13 «Работа со вложенными последовательностями»
Задание на разработку проекта
Дана динамическая вложенная последовательность. Элементы списка
могут принимать целые значения от 0 до 1000 включительно. Опишите
алгоритм, который выполняет нахождение среднего арифметического
всех четных элементов. Разработайте функцию, который формирует новый список, из тех элементов исходной последовательности, значения которых больше найденного числа. Полученные результаты записать в текстовый файл с помощью функции. Так же вывести элементы вложенной последовательности.
Для выполнения задания следовало разработать:
Функцию vlozh_spiski(*arg) для формирования вложенной последовательности, которая в качестве аргумента принимает размерность последовательности.
В функции vlozh_spiski(*arg) организовать вывод вложенной последовательности.
Функцию prnt(*arg) для вывода элементов вложенной последовательности.
Функцию median(*arg) для нахождения среднего арифметического чисел вложенной последовательности.
В функции median(*arg) организовать вывод среднего арифметического чисел.
Функцию drugoy_spisok(*arg) для формирования нового списка из тех элементов вложенной последовательности значения, которых больше среднего арифметического чисел.
В функции drugoy_spisok(*arg) организовать вывод нового сформированного списка.
Функцию txt(*arg) для записи полученных результатов в текстовый файл.
В основной части программы организовать ввод размерности последовательности и вызов соответствующих подпрограмм.
Формализация задания:
Для того, чтобы вывести элементы вложенной последовательности надо пройтись по элементам вложенных списков, через вложенные циклы. После во вложенном цикле написать этот код «print(" %3d"% a[i][j], end = ' ')», который будет выводить элементы последовательности. Далее во внешнем цикле написать вот этот код «print()», который будет делать отступы после окончания каждой итерации вложенного цикла. Тем самым элементы вложенной последовательности будут выведены в матричном виде.
Разработка алгоритма
На рис. 1 показана блок-схема функции vlozh_spiski(*arg), которая формирует вложенную последовательность.
Рис.
35 - Блок-схема функции vlozh_spiski(),
которая формирует вложенную
последовательность
На рис. 2 показана блок-схема функции prnt(*arg), которая выводит элементы вложенной последовательности в матричном виде.
Рис. 36 - Блок-схема функции prnt(), которая выводит элементы вложенной последовательности
На рис. 3 показана блок-схема функции median(*arg), которая находит среднее арифметическое элементов вложенной последовательности.
Рис.
37 - Блок-схема функции median(),
которая выводит среднее арифметическое
элементов вложенной последовательности
На рис. 3 показана блок-схема функции drugoy_spisok(*arg), которая создает новый список из тех элементов вложенной последовательности, значения которых больше среднего арифметического этих элементов.
Рис.
38 - Блок-схема функции drugoy_spisok(),
которая создает новый список, согласно
заданному условию
На рис.5 показана блок-схема функции txt(*arg), которая записывает полученные результаты в текстовый файл.
Рис.
39 - Блок-схема функции txt(),
которая записывает полученные результаты
в текстовый файл
Рис.
40 - Блок-схема основной части программы
Ниже представлен код программы
Код программы:
import random
n = int(input('Введите количество строк: '))
m = int(input('Введите количество столбцов: '))
#Функция реализующая создание вложенной последовательности
def vlozh_spiski(*arg):
a = []
for i in range(n):
a.append([])
for j in range(m):
a[i] = random.sample(range(1000), m)
return a
#Функция реализующая вывод элементов вложенной последовательности
def prnt(*arg):
for i in range(n):
for j in range(m):
print(" %3d"% a[i][j], end = ' ')
print()
#Функция которая находит среднее арифметическое чисел вложенной последовательности
def median(*avr):
sum = 0
chet = 0
for i in range(n):
for j in range(m):
if a[i][j] % 2 == 0:
chet += 1
sum += a[i][j]
avr = sum // chet
return avr
#Функция реализующая создание нового списка из элементов вложенной
#последовательности, которые больше среднего арифметического этих чисел
def drugoy_spisok(*arg):
new = []
for i in range(n):
for j in range(m):
if a[i][j] > median:
new.append(a[i][j])
return new
#Функция реализующая запись полученных результатов в текстовый файл
def txt(*arg):
txt = open('C:/Users/User/Desktop/rezults.txt', 'w+', encoding = 'utf-8')
txt.write('Исходная вложенная последовательность')
txt.write('\n')
for i in range(n):
txt.write(str(a[i]))
txt.write('\n')
txt.write('\n Среднее арифметическое чисел равна:')
txt.write('\n')
txt.write(str(median))
txt.write('\n')
txt.write('Другой сформированный список: ')
txt.write('\n')
txt.write(str(new))
txt.write('\n')
txt.close()
a = vlozh_spiski(n, m)
print('Элементы вложенной последовательности: ')
prnt(a, m, n)
median = median(a, n, m)
print('Среднее арифметическое чисел равна: ', median)
new = drugoy_spisok(n, m, a)
print('Другой сформированный список: ', new)
txt(median, a, n)