програмувати, не знаючи нічого про устрій комп'ютера і систему його команд. У цих мовах немає машинних команд; їх "команди" містять звичні слова, своєю структурою схожі на людські фрази і ніяк не відбивають деталей устрою комп'ютера. У цих мовах комп'ютер та його дії подано в більш загальному вигляді. Ці мови мають вищий рівень абстракції опису дій комп'ютера, тому називаються мовами високого рівня. Відповідно машинні мови називаються мовами низького рівня.
Однією з найпопулярніших мов високого рівня стала мова Паскаль, або Pascal. Програми в цій мові будемо називати Паскаль-програмами. Ось найкоротша з них:
program A(input, output);
begin end.
Переклад цього тексту з англійської слово в слово такий:
програма A(введення, виведення);
початок кінець.
Слово A перед дужками є ім'ям цієї програми.
Віддаючи данину традиції ознайомлення з мовами програмування, наведемо також Паскаль-програму, за якою комп'ютер "вітає світ":
program Hello(input, output);
begin writeln ( ' Вітаю, Світе! ' ) end.
Вітання задається, як очевидно, написом writeln ( ' Вітаю, Світе! ' ). Слово writeln є скороченням від "write line", тобто "написати рядок".
Комп'ютер не займається виконанням Паскаль-програм – можна навіть сказати, що він "не розуміє" цієї мови. Для виконання Паскаль-програму треба перекласти на мову машини. Цей переклад, або трансляцію в машинну мову, робить сам комп'ютер, виконуючи спеціальну програму перекладу – транслятор. У процесі трансляції Паскаль-програма читається з зовнішнього носія, за нею будується машинна програма й записується, як правило, у зовнішню пам'ять. Паскаль-програма являє собою початкові дані для побудови машинної програми (рис.1.4(а)). Обидві програми задають ті самі дії виконавця, тільки різними мовами.
Як ми вже говорили, машинна програма завантажується в оперативну пам'ять і потім виконується (рис 1.4(б)). Наприклад, виконання машинної програми "вітання світу" веде до появи на екрані слів Вітаю, Світе! .
Інший спосіб зробити Паскаль-програму "зрозумілою" комп'ютеру – інтерпретувати її. Це відбувається за виконання програми, яка називається інтерпретатором. Вхідні дані інтерпретатора – це Паскаль-програма й ті дані, що повинні читатися при її виконанні (рис.1.5). Інтерпретація програми полягає в тім, що дії, нею задані, відразу виконуються. Машинна програма при цьому не створюється.
Транслятор (або інтерпретатор) є основною програмою в системі програмування – спеціальній системі програм. За їх допомогою програми, записані мовою високого рівня, запам'ятовуються в комп'ютері та перекладаються на машинну мову або інтерпретуються. Кажуть, що система програмування підтримує відповідну мову високого рівня, і що він є вхідним для неї. Існує багато систем, що підтримують мову Паскаль, але вхідні мови практично всіх їх мають відмінності від стандарту мови Паскаль, створеного Віртом, тобто є його діалектами.
У даному посібнику в основному використовується "чистий" Паскаль, а при необхідності – діалект, що підтримується популярними системами програмування фірми Borland і називається Турбо Паскаль.
В усіх операційних системах файли мають імена, що мають принаймні дві частини, власне ім'я та розширення, відокремлені крапкою. Паскаль-програми записуються, як правило, у файли з розширенням .pas, наприклад, a.pas. У результаті їх трансляції створюються файли з розширенням, як правило, .exe і тим самим ім'ям, наприклад, a.exe. Саме вони містять машинні програми.
2. Постановка задачі
Скласти графічний алгоритм і програму алгоритмічною мовою розрахунку діаметра колони НКТ, при якому витрата енергії на підйом рідини буде мінімальна. Для цього ввівши дані варіанту і перевіривши співвідношення Рзк і Рнас, визначити L за однією з формул поданих у основних відомостях і у відповідності а цим прий-мається відповідне значення.
Якщо розрахунковий діаметр не відповідає стандартному, то необхідно взяти найближчий більший стандартний діаметр d. Визначаоть Qmax. Якщо Qmах>Qn то приймають колону НКТ діаметром d,при якому режим фонтанування буде оптимальним, якщо Qmах<Qn то діаметр колони розраховують за відповідною формулою коло-ну НКТ діаметром d. При цьому також необхідно забезпечити вибір най-ближчого більшого до стандартного діаметра труб. При цьому режим фонтанування буде не оптимальним. Повідомлення про прийнятий ре-жим фонтанування вивести на друк.
Вхідні дані згідно варіанту:
rok=800;
ron=750;
H=1000;
Pzk=11;
Pnas=10.2;
Pyk=0.5;
Pyn=0.5;
Qk=20;
a=50;
Qn=220;
Pzp=12.0;
3. Словесний алгоритм
Дана програма працює за наступним принципом:
оголошення констант (задані в умові задачі);
блок оголошення змінних з присвоєнням їм потрібного типу;
програма починається із задання команди графічного оформлення виведення результатів;
перевірка умови і в відповідності з результатом приймається та формула по якій обраховується довжина колони
обрахунок за формулою діаметра колони
визначення максимальної продуктивності за поданою в теоретичних відомостях методичкою
умова: якщо обраховане за формулою значення більше за подане в умові значення;
виводиться вище обрахований діаметр;
інакше діаметр обраховується за новою формулою;
вивід діаметра, обрахованого за вищевказаним способом;
вивіб повідомлення про не оптимальність режиму фонтанування;
кінець програми.
Графічний алгоритм.
+ -
+
-
5. Таблиця ідентифікаторів
Величина
Позначення | Назва
У програмі
roк | Густина рідини в кінці фонтанування
Н | Глубина залягання продуктивного пласта
dk | Діаметр труби
dn | Діаметр труби
Pzk | Тиск в забої
Pnas | Тиск насичення
Pyk | Абсолютний гирловий тиск в кінці фонтанування
Pzn | Тиск в забою в кінці розробки покладу
L | Довжина колони НКТ
a | Віддаль від забоя до верхніх отворів
Qk | Дебіт свердловини в кінці фонтанування
Qn | Початковий період фонтанування
Pin | Абсолютний початковий тиск в забої на глибині спуску НКТ
Pin | Абсолютний кінцевий тиск біля башмака свердловини
6. Програма алгоритмічною мовою
Program Kursova;
uses crt;
const
rok=800;
ron=750;
H=1000;
Pzk=11;
Pnas=10.2;
Pyk=0.5;
Pyn=0.5;
Qk=20;
a=50;
Qn=220;
Pzp=12.0;
var L,Qmax,dn,dk,Pik,Pin:real;
BEGIN
clrscr;
WRITELN;
writeln('г============================================================¬');
writeln('¦ РЕZУЛЬТАТU BUKOHAHHJA ¦');
writeln('L============================================================-' );
if Pzk>Pnas then
begin
L:=H-(Pzk-Pnas)/(rok-1.8); Pik:=Pnas;
end
else
if Pzk<Pnas then
begin
L:=H-a; Pik:=Pzk;
end;
dk:=400*sqrt((rok*L)/(Pik-Pyk))*exp(1/3*(ln((Qk*L)/(rok*1.8*L-(Pik-Pyk)))));
Pin:=Pik;
Qmax:=(15*(exp(-8*ln(10)))*(dk*dk*dk))/(exp(0.5*ln(ron)))*exp(1.5*ln((Pin-Pyn)/L));
if Qmax>=Qn then
begin
writeln('г============================================T===============¬' );
writeln('¦ DIAMETR KOLONU NASOSNO-KOMPRESORNUH TRYB ','¦ ',dk:4:2,