- •Етапи підготовки і рішення задач на еом
- •Програма, що не має помилок часу трансляції і виконання, може і не дати вірних результатів через так звані логічні помилки в обраному алгоритмі, тобто алгоритмічних помилок.
- •Запис алгоритмів у виді блок – схем
- •Мови програмування
- •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
14. Вкладені цикли
Тіло любого циклу може, в свою чергу, вміщувати оператори циклу. Якщо цикл вміщає в себе один або декілька циклів, то він представляє собою складний циклічний процес (або вкладені цикли). Цикл, який вміщує в середині себе другі цикли, називається зовнішнім, а цикл, який вміщується в другому циклі – внутрішнім (вкладеним). При програмуванні алгоритмів із структурою вкладених циклів необхідно дотримуватись наступного правила: внутрішній оператор циклу і приналежна йому область дій повинні повністю вміщуватись в області зовнішнього оператору циклу, тобто зовнішній цикл завжди починається раніше, ніж внутрішній цикл. Схематично правильну і неправильну організацію циклів зображено нижче на мал.12
а) правильна організація б) неправильна організація
вкладних циклів. вкладених циклів
.
Мал.12 Схеми вкладених циклів.
На мал.11-б цикли перетинаються, а це неправильно так як внутрішній цмкл перетинається з зовнішнім.
Доцільно проводити розділення обчислень між зовнішніми і внутрішніми циклами, якщо це можливо. У зовнішній цикл необхідно включати всі обчислення, які не залежать від параметру внутрішнього циклу. Це дозволить значно скоротити машинний час розрахунків. По цій же причині в якості параметру зовнішнього циклу вибирають зміну, обчислення якої найбільш складні.
Для програмування вкладених циклів використовують оператори типу FOR– NEXT, або WHILE – WEND. Якщо вкладені цикли мають спільне закінчення то оператори NEXT можна об’єднбнати в один, тоді структура буде мати наступний вигляд:
For i=1 то 10
For j=1 то 30
<оператор тіла циклу>
Next j, i
При організації вкладених циклів за допомогою операторів WHILE – WEND кожному оператору WHILE повинен відповідати свій оператор WEND.Крім цього вкладені цикли передумовою або післяумовою.
Приклад вкладених циклів
10 REN ВКЛАДЕНІ ЦИКЛИ
20 DIN T(3), C(3)
30 LET G=8.63
40 REM ВЕДЕННЯ МАСИВУ
50 FOR I=1 TO 3
60 IMPUT T(I)
70 NEXT I
80 PRINT “РЕЗУЛЬТАТИ РОЗРАХУНКУ”
90 FOR B=21.5 ЕЩ 43.5 ІЕУЗ 5.5
100 PRINT “B=”B
110 FOR I=1 TO 3
120 LET C(I)=G*SQR(B+1)*EXP(T(I))/T(I)
130 PRINT “C(“;I;”)=”;C(I),”T(“;I;”)=”;T(I)
140 NEXT I
150 NEXT B
160 END
RUN
15. Використання масивів
Масиви. Масив – це впорядкований набір даних (змінних ) одного типу. Основне призначення масивів – запам’ятовування (великої кількості) елементарних даних одного типу під час виконання програми.
Масиви мають імена, які їм надає користувач.
Масиви складаються з елементів. Кожний елемент має індекс, за яким його можна знайти в масиві. Кількість індексів визначає розмірність масиву.
Важливою характеристикою масиву є його розмір – загальна кількість елементів у масиві.
Одновимірні масиви. Елемент масиву позначають іменем масиву, за яким у круглих дужках зазначають індекс елемента. Це називають змінною з індексом. Наприклад, елементи одновимірного масиву розміру К з іменем А позначають так:
А(1) А(2) … А(К).
Двовимірні масиви. Деякі дані зручно наводити у вигляді прямокутної таблиці, який у Бейсику відповідає поняттям двовимірного масиву. Розглянемо прямокутну таблицю В:
b11 b12 … b1n
b21 b22 … b2n
…
bm1 bm2 … bmn
Елементи двовимірних масивів мають два індекси. Перший індекс вказує на номер рядка, а другий – на номер стовпця на перетині яких є конкретний елемент. індекси записують у дужках і відокремлюють комою.
Елементи двовимірного масиву В позначають так:
В (1,1) В(1,2) … В(1,N)
В (2,1) В(2,2) … В(2,N)
……………………………
В (M,1) В(M,2) … В(M,N).
Де В(1,1) – елемент, розташований на перетині 1-го рядка і 1-го стовпця; В(5,10) – елемент на перетині 5-го рядка і 10-го стовпця.
У пам’яті машини елементи масиву розміщені послідовно, рядок за рядком, а саме:
В (1,1) В(1,2) … В(1,N), В (2,1) В(2,2) … В(2,N),…,В (M,1), … В(M,N).
Використання масивів забезпечує наочність у роботі з даними та економією імен. Головна перевага – це прямий доступ до будь-якого елемента масиву, якщо відомий його індекс.
З індексними змінними, які позначають елементи масиву, можна виконувати такі ж дії, як і з простими змінними: операції введення – виведення, арифметичні операції тощо. Особливо зручно опрацьовувати масиви за допомогою оператора циклу FOR. На місці індексів можуть бути арифметичні вирази, які заздалегідь обчислюються і округлюються до найближчого цілого значення.
2. Оператор опису масивів. Користувач описує масиви на початку програми: зазначає їхні імена та розміри кожного. Таким чином резервується пам’ять, де будуть розміщені елементи масивів.
Для описання масивів є оператор опису масивів DIM:
DIM список масивів
Де DIM (розмір) – службове слово. У списку масивів зазначаються імена масивів і максимальне значення відповідних індексів
Приклад 2. Якщо у програмі використано одновимірний масив А з п’ятьма елементами і двовимірний масивом В, які складаються з шести рядків і десяти стовпців, то оператор матиме вигляд (якщо відлік значень індексів починається з одиниці.):
10 DIM А(5), В(6, 10).
Розміри масивів зручно задавати за допомогою оператора IMPUT. Наприклад:
10 IMPUT “К=”; К
20 IMPUT “М,N= ; M,N
30 DIM A(K), B(M,N)
Зауваження 1. У мові Бейсик за замовчуванням мінімальне значеня індексу дорівнює нулю. Тому насправді у прикладі 2 описано одновимірний масив А з шістьма елементами та двовимірний масив В з 7 рядками та 11 стовпцями.
Довідка 1. Оператор OPTION BASE. можна задати потрібне мінімальне значення індексу на початку програми за допомогою оператора
OPTION BASE стала
Тут OPTION, BASE – службові слова. Стала задає мінімальне значення індексу, тобто 1 або 0 (або інше число в середовищі Турбо Бейсик). Наприклад, у середовищі Турбо Бейсик оператора
10 OPTION BASE 1985
20 DIM C(1994)
описують масив з десятьма елементами, а набуває значення деякого року з діапазону 1985…1994.
Надалі вживатимемо, що мінімальне значення індексу дорівнює одиниці. Оператор OPTION BASE можна і не використовувати, а елемент масиву з нульовим індексом не брати до уваги.
використання одновимірних масивів. Розглянемо способи введення – виведення масивів. Для введення чи виведення масивів потрібно виконати певні дії з усіма елементами масивів з а допомогою операторів присвоєння, READ, INPUT, PRINT, використовуючи оператор циклу.
Наприклад, ввести значення п’яти елементів масиву можна двома способами:
10 DIM A(5) 2) 10 DIM A(5)
20 FOR I = 1 TO 5 20 FOR I = 1 ТО 5
30 READ A (I) 30 INPUT A(1)
40 NEXT I 40 NEXT I
50 DATA список даних
4. Використання двовимірних масивів. Для введення - виведення двовимірних масивів і виконання інших операцій з його елементами використовують конструкцію "вкладені цикли", яка має вигляд
FORI-I1TOI2
FOR J-J1 TO J2
серія
NEXT J NEXT І
5.Сортування (впорядкування) масиву. Задачі сортування (впорядкування елементів масиву за деякою ознакою) мають важливе практичне значення.
Задача 4. Є список імені ( прізвище тощо), який треба видрукувати за алфавітом.
Розглянемо програму 31. Нехай є сім імен, які описані в блоці даних. Занесемо імена в текстовий масив і впорядкуємо його за зростанням значень елементів. Результати виведемо на екран. Рядок 120 призначений для виведення на екран проміжних результатів сортування масиву.
10 REM Програма 31 Сортування масиву імен
20CLS
ЗО DATA Наталка, Ростик, Тарас, Роман, Галя, Юля, Андрій
40 К-7: DIM A$(K)
50 FOR 1= 1 ТОК
60READA$(l) 70 NEXT I
80FORJ= 1 ТО К-1 90 FOR І = 1 ТО К - J
100 IFA$(I)>A$(1+1)THENC$=A$(I):A$(I) = A$(I+1):A(I+1)^C$
110 NEXT I
120 FOR І = 1 ТО К: PRINT А$(ї); ""; : NEXT I: PRINT
130 NEXTJ
140 FOR 1= 1 ТОК
150 PRINT А$(І);"";
160 NEXT І
170 END
Після виконання програми 31 отримаємо список імен за алфавітом: Андрій Галя Наталка Роман Ростик Тарас Юля
