Добавил:
свои люди в ТПУ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛБ3

.docx
Скачиваний:
0
Добавлен:
14.01.2026
Размер:
144.28 Кб
Скачать

Инженерная школа природных ресурсов

Направление подготовки Химическая технология

Отделение химической инженерии

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА PYTHON

Отчет по лабораторной работе № 3

Строки, списки и кортежи

Выполнил студент гр. ХИМ54 А.В. Чижова

(Подпись)

21.10.2025 г.

Отчет принят:

Преподаватель

доцент ОХИ ИШПР, к.т.н. В.А. Чузлов

(Подпись)

_____ _____________ 2025 г.

Томск 2025 г.

Исходные данные

Параметр

C1

C2

C3

iC4

nC4

iC5

nC5

C6

ωi

0.1

0.1

0.1

0.4

0.2

0.05

0.03

0.02

ρi, г/см3

0.416

0.546

0.585

0.5510

0.6

0.616

0.6262

0.6594

Mi, г/моль

16

30

44

58

58

72

72

86

Задание 1

Используя исходные данные, рассчитайте:

  1. Состав потока в мольных долях:

(1)

где - мольная доля i-го компонента; - массовая доля i-го компонента; - молярная масса i-го компонента; - число компонентов в системе; - индекс компонента в системе.

Проверить, равна ли сумма рассчитанных мольных долей 1.0.

  1. Плотность потока:

(2)

где ρ - плотность потока; - массовая доля i-го компонента; - плотность i-го компонента; - число компонентов в системе; - индекс компонента в системе.

  1. Среднюю молекулярную массу потока:

(3)

где - средняя молекулярная масса потока; - массовая доля i-го компонента; - молярная масса i-го компонента; - число компонентов в системе; - индекс компонента в системе.

Программная реализация:

w = [.1, .1, .1, .4, .2, .05, .03, .02]

p = [.416, .546, .585, .5510, .6, .616, .6262, .6594]

M = [16, 30, 44, 58, 58, 72, 72, 86]

#3. Средняя молекулярная масса потока

a = [w[i]/M[i] for i in range(len(w))]

s = sum(a)

m = 1/s

#1. Состав потока в мольных долях

x = [b * m for b in a ]

X = sum(x)

#2. Плотность потока

c = [w[i] / p[i] for i in range(len(w))]

s_2 = sum(c)

P = 1 / s_2

for d in x:

print(f'{d:.3f}')

if X == 1:

print("Сумма рассчитанных мольных долей равна 1,0")

else:

print("Сумма рассчитанных мольных долей не равна 1,0")

print(f'Плотность потока равна {P:.3f}')

print(f'Средняя молекулярная масса потока равна {m:.2f}')

Ответ:

0.265

0.142

0.097

0.293

0.146

0.029

0.018

0.010

Сумма рассчитанных мольных долей равна 1,0

Плотность потока равна 0.552

Средняя молекулярная масса потока равна 42.47

Задание 2

  1. Необходимо создать список, элементы которого будут числа от 1 до 10, возведенные в квадрат, если число четное и в степени ½, если число нечетное. Выведите элементы данного списка на экран в формате 8.4f.

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

Программная реализация:

lst = [i**2 if i % 2 == 0 else i**0.5 for i in range(1, 11)]

print("1. Список:")

for x in lst:

print(f"{x:8.4f}")

print("\n2. В порядке убывания:")

for x in sorted(lst, reverse=True):

print(f"{x:8.4f}")

Ответ:

1. Список:

1.0000

4.0000

1.7321

16.0000

2.2361

36.0000

2.6458

64.0000

3.0000

100.0000

2. В порядке убывания:

100.0000

64.0000

36.0000

16.0000

4.0000

3.0000

2.6458

2.2361

1.7321

1.0000

Задание 3

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

(4)

Где – расчетное значение плотности углеводорода, ; MW – молярная масса углеводорода.

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

(5)

Где – расчетное значение плотности i-го углеводорода, ; – табличное значение (исходные данные) плотности i-го углеводорода.

Программная реализация:

import math

w = [.1, .1, .1, .4, .2, .05, .03, .02]

p = [.416, .546, .585, .5510, .6, .616, .6262, .6594]

M = [16, 30, 44, 58, 58, 72, 72, 86]

P = [1.07-math.exp(3.56073-2.93886*M[i]**0.1) for i in range(len(M))]

delta = [abs(P[i]-p[i])/p[i]*100 for i in range(len(P))]

print("P:"); print('\n'.join(f'{x:8.4f}' for x in P))

print("\ndelta:"); print('\n'.join(f'{x:8.4f}' for x in delta))

Ответ:

P:

0.3418

0.5037

0.5881

0.6426

0.6426

0.6819

0.6819

0.7120

delta:

17.8471

7.7392

0.5227

16.6305

7.1056

10.7001

8.8970

7.9826

Задание 4

Пусть на смешение поступают материальные потоки следующего состава (массовые доли)

Поток

1

0.1

0.1

0.1

0.4

0.2

0.05

0.03

0.02

2

0.1

0.2

0.1

0.3

0.1

0.15

0.03

0.02

3

0.1

0.1

0.15

0.35

0.1

0.05

0.08

0.07

Расходы потоков 100, 150 и 120 кг/ч, соответственно. Необходимо рассчитать состав итогового потока в массовых долях.

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

(6)

Где – массовые доля i-го компонента в смесевом потоке; – массовая доля i-го компонента в j-ом потоке; – массовый расход j-го потока, кг/ч; j – индекс потока; i – индекс компонента в системе; n – число потоков, подаваемых на смешение.

Программная реализация:

w = [[.1, .1, .1, .4, .2, .05, .03, .02],

[.1, .2, .1, .3, .1, .15, .03, .02],

[.1, .1, .15, .35, .1, .05, .08, .07]]

q = [100, 150, 120]

W = [sum(wj[i] * qj for wj, qj in zip(w, q)) / sum(q) for i in range(len(w[0]))]

print("Состав итогового потока:")

print('\n'.join(f"Компонент {i+1}: {omega:.4f}" for i, omega in enumerate(W)))

Ответ:

Состав итогового потока:

Компонент 1: 0.1000

Компонент 2: 0.1405

Компонент 3: 0.1162

Компонент 4: 0.3432

Компонент 5: 0.1270

Компонент 6: 0.0905

Компонент 7: 0.0462

Компонент 8: 0.0362

Соседние файлы в предмете Программирование на Python