- •Етапи підготовки і рішення задач на еом
- •Програма, що не має помилок часу трансляції і виконання, може і не дати вірних результатів через так звані логічні помилки в обраному алгоритмі, тобто алгоритмічних помилок.
- •Запис алгоритмів у виді блок – схем
- •Мови програмування
- •1. Основні поняття алгоритмічної мови Бейсік.
- •3. Сталі та змінні.
- •4. Функції. Вирази.Оператор присвоєння
- •Вправи та запитання
- •5. Надання значень змінним
- •Оператор read.
- •6. Виведення результатів
- •Оператор Результат
- •Оператор Результат
- •7.Лінійні програми
- •Розгалуження
- •1.Логічний вираз
- •3. Команда розгалуження if. Повна форма умовної команди.
- •10.Цикли
- •11.Оператори циклу
- •12. Обчислення суми, добутку
- •13. Ітераційні цикли
- •14. Вкладені цикли
- •Мал.12 Схеми вкладених циклів.
- •15. Використання масивів
- •Вправи та запитання
- •16. Нестандартні функції та підпрограми
- •17. Робота з текстовими даними
- •18. Оператори роботи з графічною інформацією.
- •19. Робота з файлами даних
- •20 Основи роботи в пакеті MathCad
- •Визначення основних понять та позначень, безпосередньо зв'язаних з процесом обчислень у середовиіщі пакету Вхідний алфавіт
- •Типи констант і змінних
- •Розмірність, одиниці вимірів та одиниці маштабування
- •Базові обчислювальні конструкції пакета
- •Реалізація ітеративних обчислень.
- •Функції керування обчисленнями
- •Побудова декартових графіків
- •Методи доступу і роботи з файлами даних
- •Вбудовані функції та функції користувача
- •Розділ 21Алгоритми та програми реалізації загальних чисельних методів.
- •21.1. Розв’язання систем лінійних рівнянь.
- •21.2 Інтерполяція та екстраполяція.
- •21.3. Розв’язання нелінійних та трансцендентних рівнянь.
- •21.4 Розв’язування систем нелінійних рівнянь.
- •Програма 14
- •21.5. Пошук екстремумів функцій одної та багатьох змінних.
- •Програма 15
- •Програма 16
- •Програма 17
Базові обчислювальні конструкції пакета
Розглянемо можливості пакета по роботі з масивами даних, використанні умовних операторів та побудові графіків. Як буде показано далі, це забезпечує основу для розв’язування досить широкого кола типових задач обробки геолого-геофізичних даних.
Реалізація ітеративних обчислень.
Розглянемо можливості пакета по роботі з масивами даних, використанні умовних операторів та побудові графіків. Як буде показано далі, це забезпечує основу для розв’язування досить широкого кола типових задач обробки.
При ітеративних обчисленнях значення одного і того ж виразу обчислюється стільки разів, скільки значень має змінна (або змінні), яка входить в цей вираз. В алгоритмічних мовах програмування такі обчислення реалізуються циклічними конструкціями з визначеною кількістю повторень.
Яким же чином можна задати значення змінної ?
Якщо змінні змінюються закономірно таким чином, що кожне наступне значення відрізняється від попереднього на сталу величину, тоді достатньо записати 3 величини: початкове значення, кінцеве значення, крок зміни. Якщо початкове значення менше за кінцеве, крок додатній, інакше — від'ємний. (Згадаймо кодування циклу в Паскалі).
Розглянемо приклад, наведений на рис.с.1. Тут в рядку №1 обчислюється значення гравітайійного поля від кулі в фіксованій точці х спостереження. Значно цікавішою та корисною для дослідження є задача простеження аномального поля на певній лінії спостережень, тобто в множині точок х.
Нехай координати лінії спостереження дорівнюють: {x1,0} — початок лінії, {x2,0} — її кінець, dx — крок точок реєстрації. Початок декартових координат знаходиться в точці прекції на вісь х-ів центра кулі.
Отже в даному прикладі замість одного значення х потрібно ввести множину — масив значень х і обчислити величини Δg(x) Vz для кожного з них. Це і є ітеративні обчислення, аналогом яких на алгоритмічних мовах є циклічні конструкції.
Змінна, якій приписаний диапазон зміни значень. називається в пакеті ранжованою змінною. Вираз, в якому фігурує така змінна, називається ранжованим виразом. Пакет обчислює вираз для кожного значення змінних, що в нього входять. Іншими словами, в пакеті можна обчислювати функції як однієї, так і багатьох змінних.
В нашому прикладі х1 >x2, крок dx. В рядку №??? записана множина значень х. Кодування цього виразу здійснюється за допомогою піктограми тттттт або такою послідовністю: х:х1, х1+dx;x2. Отримаємо на екрані еквівалентне представлення
x:=x1,x1+dx..x2
Згідно загальних правил визначення змінних їм попередньо — перед записом відповідного виразу —необхідно присвоїти конкретні значення. Можна також конкретні значення записувати безпосередньо в описі множини змінних
x:=-1000,-800..1000
Для того, щоб обчислення Δg(x) та Vz виконати по всій множині заданих значень х, потрібно вказати, що Δg(x) та Vz залежать від х, записавши
Якщо в описі значень змінної не вказаний другий член, це означає, що крок зміни величини дорівнює одиниці. Наступні вирази є еквівалентними:
x:=x1, x1+1..x2
x:=x1..x2.
У випадку, коли значення змінної представляють собою незакономірну послідовність чисел, використовується т.з. індексна форма предстпвлення даних.
Під індексом розуміється номер конкретного значення змінної в загальній послідовності. Для введення значень індексованої змінної потрібно ввести з початку нову змінну, значення якої становлять індекси. При цьому використовується початкове та кінцеве значення індексів, які, зрозуміло, є цілими числами. Після цього записується імя змінної з вказаним індексом, знак присвоєння, після якого через кому записуються значення.
Наприклад, в наведеній задачі необхідно визначити аномальне поле в 4-х точках спостереження з такими координатами: -1.2, -0.3, 0.1, 2.5. Для цього:
позначимо через i змінну, значення якої становлять індекси;
введемо диапазон індексів, користуючись відповідною піктограмою або записавши i:1;4, отримаємо на екрані i:=1..4;
записуємо імя змінної х з індексом i (користуючись відповідною піктограмою або записавши x[i:-1.2, -0.3, 0.1, 2.5.
В результаті отримаємо на екрані
xi
-1.2 |
-0.3 |
0.1 |
2.5 |
Цей спосіб називається ще введенням даних за допомогою вхідних таблиць. Якщо після формування таблиці, ввести імя змінної без індекса, отримаємо векторне представлення вхідної таблиці
При закономірній зміні вхідних даних також можна використати представлення даних ранжованих відповідно індекса.
Для нашого першого прикладу визначимо кількість точок спостереження. Позначимо її К:
К=(x2-x1)/dx+1.
Запишимо диапазон індексів:
I:=1..К
Тоді множину координат точок спостереження кодуємо т.ч.
Хі=х1+(і-1)*dx
Після такого визначення змінна Х також стає векторною, її значення записуються у вектор х.
