Обчислювальних процесів. Побудова блок-схем алгоритмів.
Мета роботи: Навчитись розробляти алгоритми і зображати блок-схеми розв’язку задач, що потребують циклічних і розгалужених обчислень, та записувати програми реалізації таких задач, використовуючи відповідні оператори мови Турбо Паскаль. Завдання лабораторної роботи: ; 1. Уважно прочитати умову задачі з індивідуального завдання. Визначити, що має бути отримано в результаті її розв’язку, які вхідні дані для цього потрібні. 2. Розробити алгоритм розв’язку задачі – вибрати такий алгоритм, який дозволяє отримати розв’язок за найменшу кількість кроків. Накреслити блок-схему алгоритму і навести короткий опис (роз’яснення) його основних кроків (за блок-схемою). 3. Записати програму розв’язку задачі на мові Турбо Паскаль. Складаючи програму звернути увагу на: · змістовну назву програми; · типи даних, що будуть використані в програмі; · імена змінних програми; · які дані будуть вводитись з клавіатури, а які доцільно оголосити як константи, зокрема як типізовані константи; · організацію оголошення, ініціалізації та введення даних – щоби, по-можливості, розширити область застосування програми і захистити її від помилок введення; · вибір операторів для запису циклічних і розгалужених процесів (уникати оператора goto); · виведення результатів роботи програми – вони повинні обов’язково давати відповідь на всі питання, поставлені в умові задачі (в індивідуальних завданнях використано термін "надрукувати", що означає – вивести на екран); слід виділити результати виконання програми на екрані (наприклад, вивести попередньо один-два пустих рядки) та супроводити числові чи інші значення відповідним текстом пояснення; · передбачити затримку зображення після виведення результатів для їх перегляду та аналізу. 4. Ввести текст програми, звертаючи увагу на форму його запису: вирівнювання по вертикалі, використання відступів, однаковий стиль запису ідентифікаторів і службових слів, тощо. Зберегти програму у файлі, перевіривши, чи записується він в особистий каталог. 5. Запустити програму на компіляцію і виконання. У випадку необхідності виправити синтаксичні та інші помилки. 6. Реалізувати програму для різних значень вхідних даних – використати щонайменше 3-4 різнотипні варіанти даних (зокрема, перевірити роботу програми в нестандартних ситуаціях – захист від помилок введення). Проаналізувати і записати отримані результати; якщо потрібно, то внести виправлення в текст програми. 7. Змінити текст програми, використавши інші оператори для організації розгалужень і циклів, наприклад, замінити For оператором While або оператором Repeat тощо. 8. Зберегти нову версію програми, присвоївши їй інше ім’я. Виконати змінену програму і занотувати результати. 9. У звіті з лабораторної роботи вказати: · задачу індивідуального завдання; · блок-схему алгоритму розв’язку та її опис; · текст програми розв’язку задачі з коментарями; · ім’я файлу, в який записано текст програми; · результати всіх реалізацій програми – навести форму введення вхідних даних і вигляд отриманого результату; · зміни, що зроблено в програмі, та результати виконання модифікованої програми; · висновок, в якому зазначити, наскільки розроблена програма відповідає умові задачі, як можна її вдосконалити. Варіанти індивідуальних завдань: 1. Визначити і надрукувати значення перших 20-и простих натуральних чисел. Підказка: простими є числа, які не діляться цілочисельно на інші натуральні числа, крім 1. 2. Для x, що змінюється від початкового значення x0 до кінцевого – xk, ; визначити всі точки локальних максимумів функції y= sin 5,4 x / cos (x / 0,6 + p / 3 ) для 75-и послідовних значень x з цього проміжку. Підказки: 1) перевірити значення функції в 75‑и рівновіддалених точках з проміжку [ x0, xk ]; 2) локальний максимум – точка, значення функції в якій є більшим за значення функції в двох сусідніх точках. 3. Визначити найбільший спільний дільник (НСД) трьох введених з клавіатури цілих чисел або вивести повідомлення про його відсутність, якщо такий дільник дорівнює 1. Підказка: пошук НСД вести, починаючи від найменшого з введених чисел. 4. Визначити і надрукувати номери і значення двох чисел Фібоначчі, в проміжок між якими потрапляє введене з клавіатури натуральне число. Підказка: два перших числа Фібоначчі рівні 1, кожне наступне утворюється як сума двох попередніх. 5. Якщо введене з клавіатури дійсне значення u додатне та перевищує 2, товизначити і надрукувати суму перших 10-и доданків ряду: 6. Згенерувати і вивести на екран 15 випадкових трицифрових чисел, в кожному з яких співпадає перша і остання цифри. Підказка: скористатись бібліотечними підпрограмами модуля System для генерації випадкових чисел. 7. З клавіатури ввести довге натуральне число. Визначити, чи є воно простим. Якщо ні, то знайти і надрукувати суму його всіх його дільників. Підказка: простим є число, яке не ділиться цілочисельно на інші натуральні числа (крім 1). 8. З клавіатури ввести послідовність дійсних чисел (закінчити введення нулем). Визначити середнє значення всіх введених чисел і номер мінімального з них. Підказка: кожне число аналізувати відразу після його введення. 9. З клавіатури ввести додатне x, що не перевищує 1,5. Обчислити суму ряду S ;з точністю e= 10-4 : S = - x + x 2 / 4 - x 3 / 16 + x 4 / 64 -... Підказка: у суму включити тільки ті початкові доданки, абсолютна величина яких не перевищує e. 10. Визначити найменше спільне кратне (НСК) трьох введених з клавіатури натуральних чисел. Перевірити, чи НСК дорівнює добутку цих чисел. Якщо так, то вивести відповідне повідомлення. Підказка: НСК шукати, починаючи від найбільшого з введених чисел. 11. З клавіатури ввести довге беззнакове число. Визначити і надрукувати добуток цифр, з яких воно складається, а також перевірити, чи серед цифр числа є нулі. 12. Визначити точку (x), в якій функція z = cos 3 x / log2 x приймає мінімальне значення. Для цього обчислити значення функції z=f (x) в усіх точках проміжку x належить[0,p / 2]. Кількість точок проміжку n вводиться з клавіатури. 13. З клавіатури ввести два довгі цілі числа. Визначити, сума цифр якого з цих чисел є більшою. Надрукувати результат перевірки чисел. 14. Визначити і надрукувати число Фібоначчі, номер якого задається з клавіатури. Перевірити, чи це число є парним. Підказка: два перших числа Фібоначчі рівні 1, кожне наступне утворюється як сума двох попередніх. 15. Визначити і надрукувати значення всіх трицифрових простих натуральних чисел. Вказати їх кількість. Підказка: простим є число, яке не ділиться цілочисельно на інші натуральні числа, крім 1. 16. Згенерувати і вивести на екран 30 випадкових чотирицифрових чисел, в кожному з яких не повинно бути парних цифр. Підказка: для генерації випадкових чисел скористатись бібліотечними підпрограмами модуля System. 17. Порахувати скільки є «щасливих» чисел серед випадкових чотирицифрових чисел. Підказки: «щасливим» вважається число в якому двох перших цифр дорівнює сумі двох останніх цифр числа. 18. З клавіатури ввести границі числового проміжку. Надрукувати всі парні числа з цього проміжку, які не містять цифри 7. Знайти їх кількість або вивести повідомлення про відсутність таких чисел. 19. Відомо, що сума ряду S = 1- 1 / 3 + 1 / 5 - 1 / 7 + 1 / 9 -... сходиться до значення p / 4. Визначити відносну похибку обчислення точного кінцевого значення у разі, якщо сумуються тільки перші k доданків ряду (значення k ввести з клавіатури). 20. Обчислити середнє значення функції y= 5 cos(x / 3 + p / 4 ) / Ö 2 x ; на проміжку [ x0, xk ], розглянувши 100 рівновіддалених послідовних значень x з цього проміжку. Визначити, чи приймає функція від’ємні значення на цьому проміжку. 21. Для введеного з клавіатури дійсного значення u (перевірити, щоб значення u не перевищувало 3) визначити і надрукувати суму перших 8-и доданків ряду: . 22. Надрукувати таблицю значень факторіалів натуральних чисел від 1 до 16. Як треба змінити програму, щоб визначити 20!? Підказка: n! = 1·2·3·…·(n -1)· n. 23. Для x, що змінюється від початкового значення x0 до кінцевого – xk, ; надрукувати таблицю значень функцій u=tg3x/exp(x/1,6+0,5),розглянувши 15 послідовних рівновіддалених точок з проміжку [ x0, xk ]. Визначити точки (значення x), в яких функція u=u (x) приймає максимальне значення. 24. З клавіатури по одному ввести k дійсних чисел. Визначити і надрукувати середнє значення введених чисел, а також відсоток чисел, що перевищують перше введене число. Підказка: кожне число аналізувати відразу після його введення. 25. Послідовно згенерувати 250 випадкових трицифрових чисел. Надрукувати тільки ті з них, в яких друга і остання цифри співпадають. Визначити відсоток таких чисел серед усіх згенерованих. Підказка: для генерації випадкових чисел скористатись бібліотечними підпрограмами модуля System. 26. З клавіатури ввести ціле натуральне число. Визначити, чи є воно простим. Якщо ні, то знайти і надрукувати найменше просте число, яке перевищує введене. Підказка: простими є числа, які не діляться цілочисельно на інші натуральні числа, крім 1. 27. Надрукувати числа Фібоначчі, які потрапляють у проміжок, заданий двома введеними з клавіатури натуральними числами n1 та n2. Підказка: два перших числа Фібоначчі рівні 1, кожне наступне дорівнює сумі двох попередніх. 28. З клавіатури ввести довге ціле число. Визначити і надрукувати кількість цифр, з яких воно складається, а також перевірити, чи серед цифр числа є непарні цифри.
|