ПОИСК Статьи Рисунки Таблицы Расчет плотности паровой фазы многокомпонентной смеси Процедура из "Программирование и вычислительные методы в химии и химической технологии" Для расчета коэффициентов активности компонентов в многокомпонентной смеси необходимо располагать числовыми значениями коэффициентов Ац и составом жидкости. Коэффициенты Aij учитывают межмолекулярное взаимодействие компонентов в бинарных смесях и определяются по опытным данным о равновесии между всевозможными парами компонентов в многокомпонентной смеси (см. стр. 409). Для системы, содержащей к компонентов, они образуют матрицу порядка к X к, причем диагональные элементы Ац равны нулю. [c.100] Запишем программу расчета коэффициентов активности по уравнению (3—31). [c.100] В программе после ввода исходных данных производится вычисление молярных долей компонентов, а затем расчет по формуле (3—31). Исключение элементов в соответствии с формулой (3—31) осуществляется в операторах присваивания с помощью логических выражений. [c.101] О с шагом Ар пока расчетное значение давления не превысит экспериментально заданной величины) с последующим уточнением корня методом деления отрезка в некотором отношении. [c.102] Программа состоит из двух частей. В первой части исходные данные и вспомогательные выражения приводятся к виду, удобному для дальнейшего использования, а во второй — производится собственно расчет плотности смеси. [c.103] Уравнение (3—32) содержит 8 коэффициентов, зависящих от состава смеси и физико-химических свойств отдельных компонентов. В программе для их обозначения введен массив А [1 8]. Каждый элемент массива А вычисляется по соотношениям (3—33), причем коэффициенты, относящиеся к отдельным компонентам и используемые в этих соотношениях, записаны в виде двумерного массива К0ЕР[1 А , 1 8] — матрицы, число строк которой равно числу компонентов смеси, а число столбцов — числу коэффициентов. [c.103] При расчете коэффициентов уравнения (3—33) используются операторы цикла с элементами списка первых двух типов, причем цифры 1, 3, 8 ш 4, 5, 6, 7 соответствуют порядковым номерам соотношений в записи (3—33). [c.104] Если шаг del меньше 0,0001, то расчет заканчивается, иначе делается шаг назад по плотности и управление передается на повторное выполнение оператора цикла с уменьшенным в 10 раз шагом. Повторный расчет производится аналогично, лишь только с новыми значениями den и del. Таким образом, при каждом повторном выполнении оператора цикла уточнение корня производится в интервале предыдущего шага с шагом в 10 раз меньшим. [c.104] При записи алгоритмов средствами Алгола часто возникает необходимость многократного использования стандартных вычислительных методов как отдельных частей общей программы. В этом случае последовательность операторов, реализующая такой стандартный метод, оформляется в виде процедуры. [c.105] Использование процедуры базируется на том, что вводятся два понятия описание процедуры и оператор процедуры. [c.105] Заголовок процедуры является описанием используемых элементов языка в процедуре. Он состоит из идентификатора процедуры, списка идентификаторов переменных, значения и наименования которых могут изменяться при многократных обращениях к процедуре. Сюда же включается информация о типе этих переменных (совокупность спецификаций). Выбор идентификатора процедуры производится аналогично выбору наименований переменных. [c.105] Здесь MULT — идентификатор процедуры п — порядок матрицы А, В — массивы элементов исходных матриц С — матрица результата. [c.105] Содержание процедуры представляет вычислительную часть процедуры и состоит из операторов Алгола, реализующих алгоритмы расчета. [c.105] Сравнивая последнюю запись с программой на стр. 95, нетрудно заметить, что она отличается только внешним оформлением и отсутствием операторов ввода и вывода. [c.106] Оператор процедуры является средством обраш ения к описанию процедуры и состоит из идентификатора процедуры и списка наименований переменных, совпадающих по типу с переменными, указанными в заголовке. [c.106] Описание процедуры встречается в программе однажды, обычно среди описаний остальных элементов, а оператор процедуры может использоваться произвольное число раз, при этом могут изменяться лишь наименования переменных. Каждое из обращений с помощью оператора процедуры как бы вызывает на место оператора процедуры его описание и обеспечивает выполнение операторов содержания. [c.106] Формальные и фактвчесвие параметры. Параметры, включенные в список заголовка процедуры, носят название формальных параметров, а параметры в операторе процедуры — фактических параметров. [c.106] Формальные параметры не имеют числовых значений, и поэтому они нигде не описываются, кроме как в совокупности спецификаций в заголовке процедуры. Наоборот, фактические параметры — есть переменные или другие элементы языка, используемые в программе, где описана процедура. Отсюда следует, что фактические параметры должны быть обязательно описаны в начале блока, где используется данная процедура. Для обозначения формальных параметров можно использовать любые идентификаторы. В частности, по наименованию они могут совпадать с наименованиями фактических параметров. [c.107] Спецификация. Список формальных параметров должен указываться в заголовке процедуры (специфироваться), причем спецификация формальных параметров включает в себя только описание тина или класса. Это значит, что если формальным параметром является идентификатор массива, то границы размерности его в спецификации не указываются, а указывается только тип идентификатора массива. [c.107] Вернуться к основной статье