Лабораторна Робота № 30

Тема: Mathcad. Алгоритми і програми.

 

Мета: Навчитися складати програми.

 

Теоретичні відомості

 

У документі Mathcad можна використовувати алгоритмічні структури (програми). Вони організовуються за допомогою кнопок панелі П рограмування (Programming) (рис. 30.1). Доцільність використання програмних блоків визначається необхідністю завдання виразам внутрішньої логіки.

Рисунок 30.1 - Панель для створення програм

Програми створюються натисненням на кнопки Add Line панелі П рограмування (Programming), в результаті чого у документі відобразиться блок з маркерами. У ці маркери можна вводити оператори програми.

 

1.1 Прості алгоритми

Найпростішою програмою у документі Mathcad можна вважа-ти, наприклад, програму обчислення значення виразу (рис. 30.2). Вона містить оператор присвоєння та оператор повернення значення return. Зрозуміло, що така програма є має мало змісту, та все ж вона демонструє основні принципи програмування.

Рисунок 30.2 - Програма обчислення значення виразу

Доповнення програми новим рядком виконується за допомогою кнопки Add Line. Після її натиснення з’являється новий рядок з маркером для вводу оператора. При введенні операторів також з’являються маркери, в які треба вводити дані, що відповідають синтаксису оператора.

 

1.2 Розгалуження

Розгалуження в програмі організовуються за допомогою умовного оператора if. Він має два параметри. Правий повинен містити логічний вираз, істинне значення якого на момент виконання програми призводить до виконання оператори, що записується у лівий параметр.

Умовний оператор дозволяє проводити обчислення значення змінної різними виразами в залежності від умов. Іншим призначенням умовного оператора є організація 2-х віток виконання програми.

Нехай треба обчислити значення .

Для цього визначається функція за допомогою програми (рис. 30.3).

Рисунок 30.3 - Програма з розгалуженням

Логічні вирази будуються за допомогою операцій порівняння та логічних операції. Всі операції, які можна використовувати у логічних виразах умовного оператора, згруповані на панелі Л огічна (Boolean).

Оператор o therwise використовується разом з операторами if. Він вказує на оператор, який буде виконано, якщо ні один із логічних виразів не отримає істинного значення.

 

1.3 Цикли

У програмах Mathcad можна використовувати оператори циклу з параметром for та оператор циклу з передумовою while. Оператор for має три маркери – позиції, де записується змінна – параметр циклу (зліва, зразу ж за словом for), значення, які буде отримувати параметр циклу (справа, після слова є), тіло циклу (послідовність операторів, які будуть виконуватись для кожного із значень параметру циклу). Значення для параметру циклу можна задавати діапазоном ранжованої змінної або вектором.

Оператор while має дві позиції, в які записується умова закінчення циклу (після слова while) та тіло циклу. Логіка цього оператору наступна. Спочатку перевіряється умова, тобто обчислюється логічний вираз. Якщо він приймає істинне значення, тоді виконується тіло циклу. Така послідовність дій повторюється до тих пір, поки логічний вираз отримає хибне значення. У цьому випадку буде виконуватись наступний за циклом оператор.

Переривання виконання циклу можна викликати оператором break. Дія цього оператора полягає в тому, що наступним після нього буде виконуватись оператор, який знаходиться за межами циклу. Для наочності інколи в кінці циклу записують оператор continue. Ніякої дії він не виконує, а демонструє, що тіло циклу закінчилось.

Для того, щоб обробляти ситуації виникнення помилок, використовують оператор on error. Така ситуація може виникнути, наприклад, при діленні н 0 або обчисленні логарифму від’ємного числа.

На рис. 30.4 зображено програму з оператором циклу.

 

Рисунок 30.4 - Оператор циклу

 

1.4 Перехоплення помилок

Оператор on error має дві позиції для вводу. Справа від виразу записується вираз, у якому може бути помилка обчислення, а зліва записується вираз, який буде обчислюватись у випадку помилки.

 

1.5 Складені алгоритми

Часто виникають задачі, для рішення яких потрібно використовувати програми з кількома простими алгоритмами. Приклад такої програми показано на рис. 30.5.

У програмі, яка зображена на рис. 30.5, обчислюється кількість від’ємних елементів масиву. Спочатку змінній a присвоюється вектор з 5-ма елементами. Далі змінна k отримає результат виконання програми і її значення виводиться в документ.

Сама програма містить оператор присвоєння, який ініціалізує змінну n нулем. Ця змінна буде накопичувати шукану кількість. Цикл організований за допомогою оператора циклу for з параметром і, значення якого будуть мінятись від 0 до 4. Тілом циклу є умовний оператор, за допомогою якого виконується перевірку кожного елементу вектора a. Коли елемент від’ємний, тоді значення змінної n збільшується на 1.

Рисунок 30.5 - Приклад складеного алгоритму

 

1.6 Обробка масивів

Масиви даних (вектори, матриці, тензори) доцільно обробляти за допомогою операторів циклу. На рис. 30.6 зображена програма сортування за зростанням елементів вектора.

У програмі на рис. 30.6 використано вкладені цикли. Для сортування використано алгоритм попарного порівняння елементів – сусідів та переставляння у разі необхідності. Іноді такий алгоритм називають методом «бульбашки».

 

1.7 Підпрограми-функції

Приклад підпрограми-функції можна побачити на рис. 30.3. Створення окремої підпрограми-функції виправдовується, коли вона використовується кілька разів у програмі. Ще один приклад підпрограми-функції показано на рис. 30.7.

 

 

Рисунок 30.6 - Сортування елементів вектора

 

 

Рисунок 30.7 - Приклад використання підпрограми–функції

 

 

Хід роботи

2.1 Постановка задачі

 

Серед стовпців заданого двовимірного масиву А(N,M) знайти стовпці, які містять тільки непарні елементи. Побудувати нову матрицю X, стовпцями якої є шукані.

Зауваження: Величини N, M, числові значення елементів масивів вибрати самостійно.

 

2.2 Послідовність дій

 

Програмні блоки для розв’язування задачі в середовищі Mathcad та отримані результати показані на рис. 30.8.

 

Рисунок 30.8 – Приклад виконання задачі

 

2.3 Варіанти завдання

 

30.1. Задано масив А(N,N). Вилучити з цієї матриці стовпчик в якому знаходиться перший парний від’ємний елемент.

30.2. Задано масив B(М,N). Сформувати масив У(N) із сум від’ємних елементів стовпчиків і впорядкувати його за спаданням.

30.3. Задано масив А(N,M). Сформувати масив В(М) із сум додатних елементів стовпців матриці А(N,М) і впорядкувати його за зростанням.

30.4. Задано матрицю С(N,N). Для кожного рядка, що містить від’ємний елемент на головній діагоналі, знайти суму всіх елементів цього рядка і вивести на екран.

30.5. Задано матрицю В(N,N). В рядках, що містять від’ємний елемент на головній діагоналі, знайти найбільший елемент і вивести його значення та значення його індексів.

30.6. Задано дві квадратні матриці А(N,N) і В(N,N). Отримати нову матрицю С(N,N) множенням елементів кожного рядка матриці А(N,N) на максимальний елемент відповідного рядка матриці В(N,N).

30.7. Задана квадратна матриця А(N,N). Отримати одновимірний масив В(N), де В(І) – це мінімальний елемент і-го рядка матриці, крім елемента, що належить головній діагоналі.

30.8. Задана цілочислова матриця А(N,N). Знайти максимальний елемент стовпця, який містить найменшу суму елементів.

30.9. Задана матриця А(N,М), яка містить не впорядковані рядки. Знайти максимальні елементи впорядкованих рядків.

30.10. Відстанню між рядками матриці А(N, M) назвемо суму добутків відповідних елементів рядків. Знайти два рядки з найбільшою відстанню.

30.11. Задано масив А(N,М). Впорядкувати стовпці за спаданням сум їх елементів.

30.12. Задано масив В(N,М). Сформувати масив С(N) із сум від’ємних елементів рядків матриці В(N,М), а потім впорядкувати його за зростанням.

30.13. Задано масив А(N,М). Сформувати масив С(N) із сум додатних елементів стовпчиків і впорядкувати його за спаданням.

30.14. Задано масив A(N,M). Сформувати масив В(N+M), три елементи якого є добутками елементів стовпців і чотири – добутками елементів рядків масиву A(N,M). Впорядкувати масив В(N+M) за зростанням.

30.15. Задано масив A(N,M). Впорядкувати стовпці за зростанням добутків їх елементів.

30.16. В турнірі з баскетболу змагались шість команд. В кожній команді 15 спортсменів. Відомий зріст кожного з них (в сантиметрах). Окремо для кожної команди знайти зріст трьох найвищих баскетболістів.

30.17. Елемент масиву Аi,j називають сідловою точкою, якщо він є мінімальним в рядку з номером I та максимальним в стовпці з номером j. Знайти сідлові точки.

30.18. Серед стовпців заданого двовимірного масиву А(N,M) знайти стовпці, які містять тільки парні елементи. Побудувати нову матрицю X, стовпцями якої є шукані.

Зауваження: Величини N, M, числові значення елементів масивів вибрати самостійно.

 

3 Контрольні запитання

 

1. Що може бути результатом виконання Mathcad - програми?

2. Як вставити додатковий оператор до вже існуючого програмного блоку?

3. Які логічні операції можна використовувати в середовищі Mathcad?

4. Де зазвичай в Mathcad - програмі використовують оператор otherwise?

5. Чи можна всередині циклу, організованого з допомогою оператора for, присвоювати змінній-лічильнику деяке значення? Відповідь деталізуйте.

6. Коли припиняється повторення тіла циклу при використанні оператора while в Mathcad - програмі?

7. Що отримаємо при використанні оператора break не всередині циклу?

8. Для чого призначено оператор continue?

9. Які засоби перехоплення помилок при виконанні програмного блоку надає Mathcad?

10. В чому зміст в Mathcad рекурсивного завдання функції?

 

 

ПЕРЕЛІК РЕКОМЕНДОВАНИХ ДЖЕРЕЛ

 

 

1. Інформатика. Комп’ютерна техніка. Комп’ютерні технології: Підручник. – К.: Каравела, 2004. – 464 с.

2. Інформатика. Комп’ютерна техніка. Комп’ютерні технології. Посіб./ За ред. О. І. Пушкаря – К: Видавничий центр „Академія”, 2003 – 696 с.

3. Глинський Я. М. Практикум з інформатики: Навчальний посібник. 10-е вид. – Львів: Деол, 2007 р.

4. Глинський Я. М., Ряжська В. А. Інтернет. Сервіси, HTML i web-дизайн. – Львів: „ Деол ”, 2002. – 168 с.

5. Глинський Я.М., Анохін В.Є., Ряжська В.А. Паскаль. Turbo Pascal і Delphi. Навч. посібн. 7-е вид. – Львів: СПД Глинський, 2006. – 192с.

6. Ставровский А. Б. Турбо Паскаль 7.0. Учебник. – К.: Издательская группа BHV, 2000. – 400 c.

7. Дьяконов В. Mathcad 2000: учебный курс. – СПБ.: Питер, 2001. – 592 с.

8. Кукурудз С.Ф., Процюк В.Р., Ваврик Т.О. Збірник задач з програмування. Навч. посібн. – Івано-Франківськ: Факел, 2005. – 247с.

9. Кукурудз С.Ф., Ваврик Т.О., Михайлюк І.Р. Збірник задач з Microsoft Excel. Навчальний посібник.- Івано – Франківськ, 2004.-182 с.

10. Процюк В.Р., Юрчишин В.М., Кукурудз С.Ф., Присяжнюк Т.І. MathCad. Лабораторний практикум., Івано-Франківськ, 2001.

11. Тимків Д.Ф., Бродин З.М., Ширмовський Г.Я., Белей М.М. Методичні вказівки і завдання для курсових робіт з курсів. ”Інформатика і програмування ”, ”Обчислювальна техніка і програмування ” та ” Інформатика і системологія ”. – Івано–Франківськ: Факел, 2009.

12. Бродин З.М. Обчислювальна техніка та програмування. Ч.ІІІ. “Система Mathcad та її застосування для розв’язання інженерно-математичних задач ”. Конспект лекцій./ Електронний варіант. 2010. -136 с.

13. Тимків Д.Ф., Онацко Р.Г., Процюк В.Р. Конспект лекцій (електронний варіант) «Turbo Pascal і Delphi». – 2010р. – 240с.

14. Тимків Д.Ф., Кукурудз С.Ф., Процюк В.Р., Онацко Р.Г. Навчальний посібник (електронний варіант) «MathCad 13». – 2009р. – 174с.

15. Абрамов В. Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль: Учеб. пособие.- М., 1988.

16. Васюкова Н.Д., Тюляева В.В. Практикум по основам програмирования. Язык Паскаль: Учеб. пособие для учащихся сред. спец. учеб. заведений. – М., 1991.

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: