Анализ показывает, что с ростом плотности промывочной среды и соответственно Архимедовой силы дюралевые трубы теряют свой вес очень быстро. Так, по сравнению с нахождением труб в воздушной среде при промывке водой вес дюралевых труб уменьшается на 35.7%, тогда как вес стальных – только на 12.7 %. Если же промывка ведется утяжеленным буровым раствором с плотностью 2300, то вес дюралевых труб уменьшается более, чем в 5 раз, тогда как вес стальных – менее, чем на 30%.
Очевидно, что в глубоких скважинах преимущество дюралевых труб не только в их 3-кратно меньшей массе, но и в большей “плавучести” в промывочной жидкости
Операторы перехода
Нормально составляющие программу операторы выполняются один за другим в порядке сверху вниз. Но этот порядок могут нарушать операторы перехода. Их два:
– Оператор безусловного перехода GOTO c указанием номера оператора, к которому следует перейти (например GOTO 40)
– Оператор условного перехода IF …THEN... После IF стоит условие в виде соотношения “больше” – “меньше” – “равно”. После THEN – указывают номер строки, к которой переходит программа при выполнении условия (пример: IF А>В THEN 70). Если условие не соблюдается, программа переходит к следующему по порядку оператору.
В других вариантах (см., Лекция 12: программа Q1MCA, номер 100) после THEN ставится оператор присваивания. При соблюдении условия этот оператор вступает в силу, после чего программа выполняет следующий по порядку оператор
Рассмотрим действие операторов перехода на примере:
Расчет длины
и диаметра
водоприемной части скважины при бурении на воду.
Ставятся следующее условия:
В случае, если мощность водоносного горизонта m <10 м , принимают, что
=
(11.3)
(т. е. под водоприемную часть используют всю мощность водоносного пласта)
Диаметр же водоприемной части находят по формуле
, (11.4)
где Q – проектная производительность в м
/ч, а
–скорость фильтрации в м/ч.
, (11.5)
где
– коэффициент фильтрации в м/сут.
Eсли же мощность водоноса m > 10 м, то в качестве диаметра принимают некоторое минимальное значение, чаще всего
0.108 м.
Тогда необходимая длина фильтра:
, (11.6)
Программа дана ниже. После определения допустимой скорости фильтрации
помещен оператор условного перехода (70). Программа “ветвится”: Если условие (M > 10) выполняется, то программа переходит на номер 110 и, после выполнения действий, в этом и следующем операторах, попадает на номер 130 и печатает результаты.
Таблица 11.2. Переименование переменных
Символы в формулах |
| Q |
|
|
|
|
Имена в программе | M | Q | K | D | L | V |
Программа VPTSH (водоприемная часть)
10 CLS
20 PRINT “РАСЧЕТ РАЗМЕРОВ ВОДОЗАБОРНОЙ ЧАСТИ СКВАЖИНЫ ”
30 INPUT “Мощность водоносного пласта, M, м”, M
40 INPUT “Проектная производительность скважины, Q м
/ч ”, Q
50 INPUT “Коэффициент фильтрации пласта, K, м/сут”, K
60 V = 2.71*(K^(1/3))
70 IF M > 10 THEN 110
80 L = M
90 D = Q/(3/14*M* V)
100 GOTO 130
110 D = 0.108
120 L = Q/(3/14*D* V)
130 PRINT “Допустимая скорость фильтрации, V, м/ч.”; : PRINT USING “ ###.#”; V
140 PRINT “Длина водоприемной части, L, м”; : PRINT USING “ ###.#”; L
150 PRINT “Диаметр водоприемной части, D, м”; : PRINT USING “ #.###”; D
Если же условие не выполняется, то программа выполняет номера 80 и 90 и с помощью оператора (100) безусловного перехода, обходя операторы 110 и 120, также попадает оператор 130
В таблице 11.3 приведены варианты расчетов на такой модели
Таблица 11.3. Расчет приемной части скважины при проектном дебите Q=21 м
/ч, и коэффициенте фильтрации водоносного пласта 9 м/сут (
=5.61)
Мощность пласта, м (входные данные) | Выходные данные (размеры приемной части, м) | |
Диаметр | Длина | |
5 | 0.237 | 5 |
24 | 0.108 | 11 |
При мощности 5 м, вся она используется в водоприемной части скважины. Требуемый дебит обеспечивается при диаметре 237 мм. Если же мощность пласта велика, то задаются диаметром всего 108 мм (это облегчает конструкцию скважины), и тогда дебит обеспечивается за счет длины водоприемной части.
Использование подпрограмм
Если программа несет несколько повторяющихся элементов, то целесообразно каждый раз отсылать ее к одному и тому же блоку – подпрограмме – для их расчета. Это делает программу более компактной.
В Бейсике имеется два типа подпрограмм.
Подпрограмма-функция состоит из единственного оператора вида:
DEF FN A(X1, X2, X3, …XN) = Функция от этих аргументов
Допустим, в нескольких частях программы необходимо считать площадь поперечного сечения различных труб. В начале программы (или в любом удобном месте) помещается оператор-функция:
DEF FN A(X1, X2) = 3.14/4*(X1^2–X2^) (11.7)
Это означает, что определяется функция А (имя функции) от формальных параметров Х1 и Х2). Функция написана после знака равенства
Пусть в каком-то месте программы необходимо найти площадь сечения УБТ, причем наружному диаметру УБТ присвоено имя DHU, а внутреннему – DVU. В этом месте вместо того, чтобы расписывать всю формулу, помещают оператор: F = FN A(DNU, DVU),
означающий, что площадь сечения УБТ F есть функция А (формулыа (11.7)), но не от формальных параметров Х1, Х2, а от фактических DHU и DVU.
Чем длиннее формула, тем удобнее применение подпрограммы-функции
Подпрограмма может включать некую последовательность операторов, выполняемых с ранее введенными величинами. Подпрограмма начинается с определенного места основной программы и обозначается оператором GOSUB (т. е. “идем в подпрограмму”).
Например: 120 GOSUB 200 означает, что подойдя к оператору номер 120, программа переходит на оператор 200 и выполняет этот оператор и все последующие по порядку, пока не встретится оператор RETURN (т. е. “возвращаемся”. Например: 280 RETURN. После этого программа возвращается к исходному месту и выполняет оператор, который следует за GOSUB.
Рекомендуемая литература: Осн. 1 с. 4-36
Контрольные вопросы
1 Алфавит языка Бейсик, из чего могут состоять имена переменных?
2 Функции Бейсика. Что означают функции ABS(X), FIX(X) и
SIGN(X)?
3 Показательная форма представления чисел
4 Способы ввода данных
5 Вывод данных, как ограничивается размер выводимых чисел?
6 Запись формул. Приоритеты арифметических действий и роль
скобок
7 Операторы перехода
8 Подпрограмма-функция
9 Подпрограмма
ЛЕКЦИЯ 12. Цикловые операции
Оператор цикла в общем виде выглядит как:
FOR I = К TO N STEP H
…………………………
NEXT I
Строка, начинающаяся с FOR., называется заголовком цикла. Он означает, что параметр цикла I, с шагом Н (по английски шаг – “step”), начиная с исходного значения К, принимает ряд все возрастающих значений, а именно К, К+1*Н, К+2*Н, К+3*Н и т. д. При каждом значении I производятся некоторые действия, результат которых зависит от параметра цикла. Эти выраженные последовательностью некоторых операторов действия составляют тело цикла (оно условно обозначено точками). После того, как все операторы тела цикла выполнены, управление передается на конец цикла – оператор NEXT I (“следующее I ”), и значение I возрастает на шаг Н. Операторы тела цикла выполняются снова – уже при новом I, и все повторяется до тех пор, пока при очередном возрастании I не окажется, что I > N. Тогда выполнение цикла прекращается.
Значения К, Н и N либо указываются еще до цикла, либо в операторе цикла вместо них ставят конкретные цифры. Чаще всего принимается значение Н = 1, и тогда заголовок цикла выглядит как FOR I =К TO N (без указания шага).
Оператор цикла обычно выполняется при участии индексных переменных. Индексные переменные имеют вид А(1), А(2), А(3) и т. д, или в общем случае А(I), Все вместе индексные переменные образуют массив значений некоторой величины А. Если составляющие массив члены А(I) имеют только один индекс, то массив называется одномерным. Существуют двумерные массивы типа А(I, J), трехмерные – А(I, J,K) и т. д.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |


