Варіанти індивідуальних завдань



1. 1) 210; 1023 2) -43; -507 3) 61; -210 4) 6; 61
  5) 1023 (5); 27 (3)  6) B10716; 5F4D16 7) 1023,67  
2. 1) 81; 511 2) -81; -247; 3) -81; 210 4) 9; -511
  5) 511 (4); -13 (5)  6) A8F716; B4D516 7) 94,56  
3. 1) 107; 924 2) -25; -107; 3) -107; -64 4) -25; 23
  5) 924 (6); 18 (2)  6) 91A716; 60CD16 7) 756,8  
4. 1) 92; 803 2) -14; -673; 3) 803; -21 4) 7; -92
  5) 803 (4); 21 (3)  6) A20C16; 9E4816 7) 136,45  
5. 1) 108; 376 2) -28; -475; 3) -376; 34 4) 14; 108
  5) -376 (3); 11 (5)  6)  28D716; A4C916 7) -0,9452  
6. 1) 71; 249 2) -45; -208; 3) 71; -249 4) 18; 249
  5) 624 (5); 208 (2)  6) 19B716; C60F16 7) 25,98  
7. 1) 77; 1026 2) -43; -507; 3) 511; -1026 4) 77; 19
  5) 1026 (5); 33 (3)  6) B57016; CA4916 7) 291,8  
8. 1) 92; 346 2) -66; -208; 3) -18; 346 4) -5; 66
  5) 346 (3); -11 (4)  6) 38AE16; 94D816 7) -9,486  
9. 1) 200; 621 2) -22; -621; 3) 621; -38 4) -203; 9
  5) -200 (4); 13 (3)  6) 27B416; 9C0F16 7) 256,16  
10. 1) 65; 613 2) -44; -458; 3) 44; -613 4) 13; 65
  5) -613 (6); 44 (2)  6) B71016; 8CF416 7) 145,82  
11. 1) 59; 1001 2) -123; -1001; 3) 123; -44 4) 12; -59
  5) 1001 (5); 123 (2)  6) 780E16; 5B4F16 7) -194,2  
12. 1) 77; 523 2) -12; -523; 3) 523; -64 4) -77; 18
  5) 304 (3); -11 (4)  6) C17916; 2E7A16 7) -523,8  
13. 1) 105; 481 2) -39; -481; 3) 481; -203 4) -15; 19
  5) 1023 (4); 105 (2)  6) 910D16; 5F4716 7) 106,25  
14. 1) 72; 413 2) -72; -205; 3) 72; -205 4) 33; 18
  5) 413 (3); 21 (5)  6) 8AC116; 749E16 7) 0,5068  
15. 1) 17; 904 2) -45; -904; 3) -107; 45 4) 904; 5
  5) 904 (6); -19 (3) 6) 1A9716; B0C516 7) 1568,7  
16. 1) 90; 721 2) -14; -721; 3) 721; -31 4) -90; 7
  5) 721 (5); 17 (3)  6) 61FD16; 503A16 7) -367,45  
17. 1) 54; 600 2) -21; -600; 3) 127; -600 4) 7; 129
  5) -511 (2); 21 (4)  6) 8FA716; 9EB516 7) 74,563  
18. 1) 47; 904 2) -47; -112; 3) -904; 112 4) 47; 13
  5) 904 (6); 18 (3)  6) 41EC16; D60916 7) 56,08  
19. 1) 72; 603 2) -72; -316; 3) 316; -21 4) -72; 6
  5) -603 (5); 20 (2)  6) A07C16; 8E4B16 7) -316,9  
20. 1) 40; 1020 2) -64; -1020; 3) -22; 130 4) -40; 12
  5) -1020 (5); 31 (3)  6) 2B5716; 7F0E16 7) -1020, 6  
21. 1) 41; 516 2) -19; -516; 3) 19; -125 4) 9; 516
  5) 516 (4); 11 (5)  6) 9F1716; 7AD516 7) 41,26  
22. 1) 107; 825 2) -31; -107; 3) 47; -825 4) 107; 7
  5) 825 (5); 18 (2)  6) 1A9516; 6C0F16 7) 75,58  
23. 1) 52; 703 2) -24; -703; 3) 241; -52 4) -47; 13
  5) 703 (4); -21 (3)  6) 720E16; A8E716 7) -703,35  
24. 1) 210; 723 2) -33; -723; 3) 33; -210 4) 36; 48
  5) -723 (4); 25 (3)  6) B97016; F34E16 7) 210,47  
25. 1) 66; 515 2) -66; -147; 3) -81; 515 4) -66; 15
  5) 515 (4); -13 (5)  6) 5FA716; BC4816 7) 66,156  
26. 1) 107; 524 2) -52; -107; 3) 524; -64 4) 195; -8
  5) 524 (5); 18 (2)  6) 65E316; DC0A16 7) -524,38  
27. 1) 63; 824 2) -14; -824; 3) 63; -129 4) 72; 13
  5) 824 (4); 21 (3)  6) CB32 16; 34F916 7) 106,75  
28. 1) 88; 356 2) -88; -47; 3) -356; 44 4) 14; 88
  5) 356 (3); -24 (5)  6) 8A4F16; 75D916 7)  0,8453  
29. 1) 61; 549 2) -35; -208; 3) 61; -208 4) 6; 549
  5) 549 (5); 108 (2)  6) B9E716; C20D16 7) 61,98  
30. 1) 67; 1026 2) -43; -107; 3) 107; -1026 4) 67; 19
  5) -1026 (5); 43 (3)  6) EA5716; C04916 7) -1026,8  
         

Лабораторна робота № 3

СКЛАДАННЯ АЛГОРИТМІВ ТА ПОБУДОВА БЛОК-СХЕМ

Мета роботи:Ø практично закріпити знання про алгоритмізацію процесів розв’язування обчислювальних задач; Ø навчитись розробляти оптимальні алгоритми і зображати їх у формі блок-схем; Ø здобути практичні навики графічної побудови блок-схем алгоритмів за допомогою універсальних або спеціалізованих графічних редакторів.

Завдання лабораторної роботи

1. Повторити теоретичний матеріал про процеси комп’ютерного розв’язування задач, властивості та види алгоритмів, а також інформацію про стандарти, правила й вимоги до побудови блок-схем.

2. Уважно прочитати умову задачі індиві­ду­ального завдання. Визначити:

· що саме і в якій формі має бути отримане в результаті розв’язування задачі; 

· які вхідні дані для цього має ввести або задати користувач; 

· які перетворення треба виконати, щоб на основі вхідних даних отримати бажаний результат; 

· які додаткові змінні потрібні для реалізації алгоритму; 

· яким буде процес перетворення: лінійним, розгалуженим чи циклічним; 

· що є умовою розгалуження і які гілки воно має; 

· що слугує параметром циклу і які дії мають виконуватися циклічно (багаторазово).

3. Розробити і записати словесний алгоритм розв’язування задачі, вказавши основні кроки (дії), які треба виконати, щоб із введених (заданих) вхідних даних отримати необхідні результати.

4. Коли основні кроки процесу розв’язування задачі визначено та встановлено змінні, які необхідні для їхньої реалізації, розробити детальний алгоритм і зобразити його у формі блок-схеми. Спочатку блок-схему доцільно виконати вручну, дотримуючись вимог стандарту щодо вибору і зображення блоків та зв’язків між ними.

5. Після погодження алгоритму та блок-схеми з викладачем треба реалізувати комп’ютерну побудову блок-схеми. Для цього необхідно скористатися одним із графічних редакторів, які надають спеціальні засоби для формування блок-схем (flowchart editor/maker). Існує велика кількість графіч­них редакторів, що підтримують побудову блок-схем, серед яких достатньо багато безкоштовних та он-лайн редакторів. До найпопулярніших редакторів блок-схем належать: Microsoft Visio, Draw.io, yEd, Gliffy, Lucidchart, Сreately, Dynamic Draw, Edraw, ClickCharts та інші. Нижче подано Інтернет-адреси сторінок, з яких можна отримати інформація про ці редактори, завантажити їх (або пробну версію) чи проводити побудову блок-схеми он-лайн.

6. Оформити звіт до лабораторної роботи, в якому, окрім загального матеріалу, навести своє індиві­ду­альне завдання, словесний алгоритм розв’язування задачі, рукописний чорновий варіант розробленої блок-схеми алгоритму та надруковану версію блок-схеми, виконану засобами вибраного графічного редактора. Вказати, який саме редактор блок-схем застосовано. Наприкінці написати висновок за результатами виконаної роботи.

Інтернет ресурси:

1. Visio Pro for Office 365

https://products.office.com/en-gb/visio/visio-professional-free-trial-flowchart-software

YEd. Graph Editor - yWorks

https://www.yworks.com/products/yed

3. Draw.io. Flowchart Maker & Online Diagram Software

https://www.draw.io/

AutoFlowchar

http://autoflowchart.software.informer.com/

Gliffy. Online Diagram and Flowchart Software

https://www.gliffy.com/

6. Сreately. Simply the easiest way to create flowcharts online

https://www.сreately.com/diagram-type/flowchart

Dynamic Draw

http://www.dynamicdraw.com/

Edraw. Cross-Platform Diagram Software

https://www.edrawsoft.com

9. NCH Software. ClickCharts Diagram & Flowchart Software

http://www.nchsoftware.com/chart/index.html

10. StudLab

http://studlab.com/index/redaktor_blok_skhem/0-70

Варіанти індивідуальних завдань

1. З клавіатури ввести два довгих цілих числа. Визначити, яке з них має більшу кількість цифр (пошук довшого числа проводити в одному циклі). Якщо довжини чисел однакові, то вивести відповідне повідомлення. Інакше перевірити, чи більше число є степенем меншого.

2. Визначити і вказати число Фібоначчі за заданим номером. Перевірити, чи це число парне. Якщо ні, то знайти найближче більше парне число Фібоначчі і вказати його номер. Підказка: два перші числа Фібоначчі дорівнюють 1, кожне наступне дорівнює сумі двох поперед­ніх.

3. Визначити всі точки локальних мінімумів математичної функції y = f(x) на проміж­ку [x0, xk], розглянувши k-1 послідовних рівновіддалених точок x з цього проміж­ку. Значення x0, xk та k задає користувач. Підказка: локальний мінімум – точка, значення функції в якій менше за значення функції в обох сусідніх точках.

4. Якщо введене з клавіатури значення x додатне та не перевищує 2,5, тообчислити суму ряду S зі заданою точністю e :

У суму включити тільки ті початкові доданки ряду, абсолютне значення яких перевищує e.Порахувати кількість доданків, які потрапили до суми.

5. Задано границі числового проміжку. Надрукувати всі числа з цього проміжку, що містять цифру 9. Вказати кількість знайдених чисел або вивести повідомлення про їхню відсутність.

6. Задано ціле число. Вивести на екран усі прості дільники цього числа, вказавши кількість їхніх повторень. Приклад:  2600 = 2´2´2´5´5´13.

7. З клавіатури вводиться послідовність дійсних чисел (кінцем введення слугує від’ємне число). Визначити і вказати середнє значення всіх введених чисел та номер максимального числа.

8. Знайти і вивести на екран найменше непарне число Фібоначчі, яке перевищує задане число М. Підказка: два перші числа Фібоначчі дорівнюють 1, кожне наступне обчислюється як сума двох попередніх.

9. Задано безмежну послідовність із записаних поспіль двійкових кодів чисел, які є степенями двійки: 1101001000... (20, 21, 22, 23, ...). Визначити і вказати, скільки 1 є серед початкових K (1 £ K £ 100000) цифр цієї послідовності.

10. Задано границі числового проміжку. Визначити, чи серед натуральних чисел з цього проміжку є досконалі. Якщо так, то вивести їхні значення. Підказка: досконалим вважається число, яке дорівнює сумі всіх своїх дільників, включаючи 1.

11. Знайти кількість натуральних трицифрових чисел, що складаються з трьох різних цифр, але містять 0.

12. Задано певне дійсне число. Виділити його дробову частину. Обчислити і вивести на екран двійковий код дробової частини заданого числа з точністю дробових цифр з урахуванням округлення.

13. Задано довге натуральне число. Визначити, чи є воно простим. Якщо ні, то знайти і надрукувати найбільше просте число, яке не перевищує задане. Підказка: простим є число, яке не ділиться цілочислово на інші натуральні числа (крім 1).

14. Задано довге натуральне число. Знайти кількість цифр цього числа, а також сформу­вати і вивести на екран нове число, в якому кожну парну цифру початкового числа замінити більшою непарною (1234®1335).

15. Задано дійсне число x. Обчислити значення квадратного кореня з цього числа  за рекурентним співвідношенням:

Обчислення проводити до досягнення заданої точності  e (| yi - yi-1 | < e).

16. Для заданого додатного x обчислити значення функції y = cos xза форму­лою розкладу в степеневий ряд:

У суму треба включити тільки ті початкові доданки ряду, абсолютна величина яких перевищує задану точність e.

17. Задано послідовність, що сформована із натуральних чисел від 1 до 99, кожне з яких повторюється кількість разів, що дорівнює значенню цього числа: 122333444455555.... Визначити і вивести на екран початкові P (P £ 500) цифр цієї послідовності.

18. Задано довге беззнакове ціле число. Вивести на екран усі дільники цього числа, що є простими числами (1 та саме число не враховувати) або вивести повідомлення, що введене число є простим.

19. Задано довге натуральне число. Перевірити, чи воно має парну кількість цифр. Якщо так, то сформу­вати і вивести нове число, в якому кожна пара цифр початкового числа має бути переставлена місцями (1234®2143). Інакше вивести на екран відповідне повідомлення.

20. Визначити точку (x, y), в якій функція двох змінних z=f (x, y) приймає най­більше значення. Для цього обчислити значення функції в усіх точках квадратної координатної сітки x´y розмірністю n´n, де x змінюється від
x1 до x2, а y – від y1 до y2. Значення n, x1, x2, y1 та y2задає користувач.

21. Вивести на екран усі натуральні числа, менші за задане число MAX, сума цифр яких дорівнює S, або вказати, що таких чисел немає. Значення MAX та S задає користувач.

22. Обчислити визначений інтеграл математичної функції y=f(x) на відрізку [a, b] за формулою прямокутників:

де x0=a; xi= xi-1+ih; h=(b-a)/n. Границі інтервалу інтегрування a, b та кількість точок розбиття інтервалу n задаються користувачем.

23. Для заданого додатного значення  x < 1  обчислити суму спадного ряду R:

У суму включити тільки ті початкові доданки, абсолютна величина яких перевищує задану точність e. Вказати кількість доданків, які враховані в сумі.

24. Визначити, чи математична функція y = f(x) перетинає вісь x на заданому інтервалі [a, b]. Для цього розбити заданий інтервал на N рівновіддалених точок. Послідовно обчислити значення функції у цих точках. Якщо значення функції у двох сусідніх точках мають різні знаки, то це означає, що на проміжку між цими точками функція перетинає вісь x.

25. Визначити найбільший спільний дільник (НСД) двох введених з клавіатури цілих чисел. Підказка: пошук НСД вести, починаючи від найменшого з введених чисел або скористатися методом Евкліда.

26. Для заданих значень x (дійсне число) та n (ціле число) обчислити і вказати значення полінома:

Розробити алгоритм з якомога меншою кількістю операцій.

27. Вивести на екран послідовність чисел Фібоначчі, які потрапляють у заданий проміжок [n1, n2]. Окремо зазначити скільки серед цих чисел непарних. Підказка: два перші числа Фібоначчі дорівнюють 1, кожне наступне обчислюється як сума двох попередніх.

28. Задано довге натуральне число. Якщо це число не закінчується нулем, то сформувати з нього нове число зі зворотним порядком цифр (2304 ® 4032). Інакше вивести відповідне повідомлення.

29. Знайти і вивести на екран значення перших трьох досконалих натуральних чисел (досконалим називається число, яке дорівнює сумі всіх своїх дільників, включаючи 1).

30. Визначити точку xmin, в якій математична функція y = f(x) приймає найменше значення на проміжку [a, b], розглянувши N послідовних рівновіддалених значень аргумента x з цього проміж­ку. Значення a, b та N задає користувач.

Лабораторна робота № 4

ОСНОВИ РОБОТИ В СЕРЕДОВИЩІ ПРОГРАМУВАННЯ
Microsoft Visual C++.
ВВЕДЕННЯ ТА РЕДАГУВАННЯ ПРОГРАМ

Мета роботи: Ø ознайомитись зі структурою, інтерфейсом та меню команд інтегрованого середовища програмування Microsoft Visual C++;  Ø здо­бути початкові навики швидкого введення та редагування текстів програм.

Завдання лабораторної роботи

1. Інформацію про основи роботи в інтегрованому середовищі програму­вання Microsoft Visual C++ (складової частини середовища Visual Studio) подано в методичному посібнику [3]. Перед початком роботи необхідно ознайомитися з наведеним матеріалом та надалі використовувати його як допоміжний під час виконання лабораторних робіт.

2. Якщо це не було зроблено раніше, то на робочому комп’ютері створити загальний каталог групи, назва якого має збігатися з назвою групи, а в ньому – особистий підкаталог з власним іменем. Надалі всі програми і/або програмні проекти треба зберігати у цьому каталозі.

3. Активізувати інтегроване середовище програму­вання, використо­вуючи один з можливих способів його завантаження.

4. Ознайомитися зі стартовою сторінкою середовища. Переглянути розділи закладки Get Started та занотувати їхні назви.

5. Встановити опції Close page after project load та Show page on startup, поставивши відповідні галочки.

6. Розпочати створення нового проекту. Для цього натиснути New Project… З’являється вікно нового проекту New Project. У розділі Resent Templates треба вибрати Visual C++, а в середньому розділі, де зазначені типи програм, вибрати Empty Project. У горизонтальному діалоговому вікні Name ввести назву проекту, наприклад, My_1_Project – вона ж буде використана як назва рішення (Solution name). У діалоговому вікні Location вказується каталог, у якому зберігатимуться всі папки і файли цього проекту (тобто сам проект). Найкраще свої проекти зберігати у створеному особистому каталозі. Коли все виконано, натиснути кнопку OK.

7. Перед тим як розпочати наповнення проекту, треба ознайомитися з розділами головного горизонтального меню. Занотувати назви розділів. Відкрити вертикальні підменю розділів File, Edit, View та Project. Переглянути їхній вміст, щоб зрозуміти призначення і можливості кожного з цих розділів. Коротко записати у звіт результати огляду розділів.

8. Відкрити розділ меню Tools. Детальніше розглянути його підрозділи Customize… та  Options… Команди вікна Customize призначені для налашту­вання панелей меню. За їх допомогою легко надати меню вигляд, зручний для користувача, зокрема наповнити панель інструментів піктограмами засобів, що використовуються найчастіше. Команди підрозділу Options призначені для вибору налаштувань інтегрованого середовища. Зокрема, через підрозділ Environment можна встановити шрифти та кольори, режим автозапису, особливості пошуку й заміни та багато іншого. Підрозділ Text Еditor містить засоби налаштування текстового редактора. Інші підрозділи мають відповідне до назви призначення. Увага: якщо треба зробити зміни якихось налаштувань середовища (без потреби їх виконувати не слід), то необхідно детально записати, в якому підрозділі та якому вікні виконуються зміни, які саме опції зміюються та якими були їхні значення до змін, щоб можна було швидко відновити попередній стан.

9. Створити в проекті файл, в який буде записана програма. Для цього треба вибрати команду Add New Item з розділу меню Project. Те ж саме можна зробити іншим чином: правою кнопкою миші клацнути на папці Source Files у вікні дерева проекту Solution Explorer, далі у спливаючих вікнах послідовно вибрати Add та New Item. У діалоговому вікні Add New Item, яке з’явиться на екрані, вибрати С++ File,  ввести назву цього файла, наприклад, program1, та натиснути кнопку Add.

10. Як результат виконання дій п. 9 відкривається вікно редактора програм, а у вікні Solution Explorer у дерева проекту в папці Source Files відображається ново­ство­рений файл. Редактор програм середовища призначений для швидкого, наочного та зручного введення текстів програм. Він здійснює виділення кольорами лексичних складових програми (констант, службових слів, коментарів тощо), забезпечує “розумне” втоплення вкладених операторів, надає можливість виділяти, копіювати чи перетягувати фрагменти програми мишкою та багато іншого. Розміри вікон інтегрованого середовища та їхнє розташування можна легко змінювати. Найпростіше це робити мишкою, потягнувши за рамку вікна чи його верхню панель. Вікна можна закріпити у зручному для користувача порядку, вказавши місця прив’язки.

11. Нижче наведено текст невеликої програми, який треба набрати. У процесі введення треба випробувати різні можливості редактора текстів програм, зокрема виділення, копіювання, витирання та інші. Програма має бути відображена на екрані так само, як в цьому збірнику – треба забезпечити поділ програми на рядки, “втоплення” вкладених фрагментів, вертикальне вирівнювання та ін. Для введення горизонтальних відступів (“втоплення”) треба застосовувати клавішу Tab, а не набирати пробіли. Клавіша Backspace забезпечує повернення на попередній рівень відступу. Найзручнішим є розмір табуляційного кроку 3 або 4. У разі потреби крок табуляції можна змінити через меню налашту­вань Tools ® Options... ® Text Еditor ® Tabs.

12. Якщо під час набору тексту програми редактор виділяє якісь її елементи червоною хвилястою лінією, то це вказує, що у цьому місці виявлено синтаксичну помилку. Ймовірна причина помилки роз’яснюється у сплива­ючому вікні, яке з’являється, коли курсор мишки навести на виділене місце програми. Всі помилки необхідно виправити.

13. Зберегти створений проект для подальшої роботи з ним. Збереження проекту відбувається автоматично в разі завершення роботи середовища чи переходу до нового проекту. Файли проекту можна зберігати окремо через відповідні команди розділу меню File.

14. Оформити звіт з лабораторної роботи, в якому до пунктів завдання
3 – 13 вказати, що було зроблено в процесі його виконання, які команди та засоби інтегрованого середовища програмування використовувались для цього, якими були результати. До п. 11 додати текст введеної програми. Звіт має відповідати вимогам, зазначеним у розділі “Оформлення звіту”.

Програма для опрацювання

/* Перша програма */

#include <stdio.h>

#define TEXT "Ви виконали першу програму"    /* повідомлення */

Void main (void)

{

char name[15];                      /* змінна для імені */

printf("\n\n Як Вас звати? ");

gets(name);

printf("\n Вітаємо, %s! %s", name, TEXT);

printf("\n\n \tEnter для завершення -> ");

getchar();                       /* зартимка результатів */

}

 

 

Лабораторна робота № 5

СТРУКТУРА ПРОГРАМИ МОВОЮ С.
КОМПІЛЯЦІЯ ТА ВИКОНАННЯ ПРОГРАМ

Мета роботи: Ø отримати практичні знання про структуру програм, написаних мовою С, їхні основні компоненти, правила і стилі запису програм;
Ø навчитись компілювати програми, виявляти і виправляти синтаксичні помилки, виконувати програму і переглядати її результати за допомогою засобів інструментального середовища програмування.

Завдання лабораторної роботи

1. Відкрити проект з першою програмою, створеною під час виконання попередньої лабораторної роботи. Ще раз уважно переглянути текст програми. Виділити основні структурні компоненти програми:

· директиви компілятору: #include та #define– яке призначення кожної директиви?

· функцію  main()– яке значення повертає ця функція, чи має вона параметри?

· оголошення змін­них: у програмі є лише одна змінна – масив name;

· оператори – у програмі всі оператори є звертаннями до бібліотеч­них функцій: виклик функції system("chcp 1251"), оголошеної в заголовному файлі <stdlib.h>, забезпечує коректне виведення українського тексту за кодовою таблицею Windows-1251; printf(), gets() та getchar() – cтандартні функції, оголошені в заголовному файлі <stdlib.h>, що виконують високорівневе форматне виведення та введення даних;

· коментарі.

2. Відкомпілювати програму, тобто створити її внутрішній об’єктний (машинний) код. Це можна зробити окремо командою Compile з розділу меню Build (або комбіна­цією клавіш Ctrl+F7), а потім запустити редактор зв’язків (Build Solution). Простіше відразу виконати команду Build Solution, оскільки у процесі формування т. зв. рішення проекту здійснюється перекомпіляція всіх файлів програми, в які вносилися хоча б найменші зміни. У разі успішної компіляції далі здійснюється компонування виконавчого коду програми, зокрема під’єднуються об’єктні коди бібліотечних функцій та формується виконавчий файл з розширенням *.exe [3]. Для запуску білдера можна скористатися піктограмкою – якщо вона відсутня на головній панелі, то доцільно її туди вставити через меню Tools ® Customize ® Commands.

3. Увікні Output (якщо вікна Output немає на екрані, то треба відкрити його через розділ меню View) переглянути результати компіляції та побудови рішення. Якщо програма не мала синтаксичних помилок, то останній рядок буде орієнтовно таким:

========= Build: 1 succeeded, 0 failed, 0 skipped =========

А в разі виявлення помилок буде вказано: 0 succeeded, 1 failed.

4. Для аналізу помилок треба відкрити вікно Error List (найкраще щоби воно зберігалося згорненим у нижній панелі середовища). У вікні Error List попередження компілятора позначаються жовтим трикутником зі знаком !, а виявлені помилки – червоним кругом зі знаком ´. Для кожного попередження і помилки вказуються їхні системні номери й коротке пояснення, а також файл і номер рядка програми, де знайдено цю помилку (одна й та сама помилка може викликати декілька різних повідомлень). Якщо клацнути двічі на якомусь рядку повідомлень, то у вікні редактора програми буде відзначено ймовірне місце помилки, що дає змогу швидко знайти та виправити всі хибні записи.

5. Коли помилки виправлено, ще раз перекомпілювати програму. Якщо програма відразу була синтаксично правильною, то доцільно штучно ввести в її текст якісь некоректні доповнення, щоби навчитися виявляти, аналізувати та редагувати помилкові місця програми.

6. Побудоване рішення проекту програми запустити на виконання командою  Start Without Debugging (Ctrl+F5) або через піктограмку (прозора стрілка). Можна також скористатися командою  Start Debugging (F5) чи пікто­грамкою     (зелена стрілка). Обидві команди належать до розділу  Debug.

7. Якщо завдання п. 5 та п. 6 реалізовано успішно, то відкриється консольне вікно процесу виконання програми. У верхньому лівому кутку цього вікна є значок прямокутника, який відкриває меню налаштувань вікна результатів. Через команду Properties можна вибрати розмір вікна, його розта­шування, схему кольорів тощо. Треба відкрити закладку Font і встановити шрифт тексту Lucida Console для правильного відображення літер кирилиці.

8. У відповідь на запрошення програми ввести своє ім’я та проаналі­зувати й записати в звіт результати роботи програми.

9. Уважно прочитати програму, наведену нижче. Це гра, в якій користувач за встанов­лену кількість спроб, враховуючи підказки “завелике” та “замале”, має вгадати натуральне випадкове число з діапазону RMIN..RMAX, “задумане” комп’ю­тером. Для генерування випадкового числа в програмі використано бібліотечну функцію rand(), оголошену в <stdlib.h>, яка генерує рівномірно розподілені випадкові числа з діапазону 0..RAND_MAX. Щоб отримати випадкове значення з потрібного діапазону, над згенерованим числом виконуються вказані арифметичні перетворення. Функція srand() забезпечує унікальність згенерованого числа для кожного запуску програми. Вона здійснює т. зв. “затравку” генератора випадкових чисел поточним значенням системного таймера – її параметром є результат звертання до бібліотечної функції time(), оголошеної у файлі < time.h>.

10. Ще раз звернути увагу на стиль запису програми, передусім: •  розташу­вання та верти­кальне вирівнювання парних фігурних дужок {};  • верти­кальне вирівнювання операторів, що мають однаковий рівень вкладення; • “втоплення” операторів, які вкладені в інші; • застосування коментарів, пробілів та інші прийоми підвищення наочності програми.

11. Створити новий проект для роботи з цією програмою. Для цього перейти на стартову сторінку середовища або скористатися командою меню File ® New Project. У проекті створити файл для запису програми.

12. Ввести текст програми, використовуючи засоби вбудованого редак­тора текстів та підказки технології IntelliSense, які дають змогу швидко без набору вводити службові слова мови, ідентифікатори змінних, функції тощо.

13. Відкомпілювати програму, виправивши за необхідності всі помилки, та створити її виконавчий код  (Build ® Build Solution).

14. Виконати програму декілька разів. Можна змінити значення макро­констант діапазону та кількості спроб (RMIN,RMAX, K). Занотувати екранограми процесу виконання, тобто всі екранні повідомлення, введені значення та отримані результати.  

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

Програма для опрацювання

/*********************** ВГАДАЙ ЧИСЛО *************************/

/* Гра, в якій треба вгадати "задумане" комп’ютером число */

/****************************************************************/

#include <stdio.h>

#include <stdlib.h>

#define RMIN 1                           /* найменше число */

#define RMAX 100                         /* найбільше число */

#define K 6                              /* кількість спроб */

Int main (void)

{

int numb, answ, k;

system("chcp 1251");           /* підключення кирилиці */

srand(time(NULL));          /* запуск генератора випадкових чисел */

numb = RMIN + rand()%(RMAX - RMIN + 1);      /* випадкове число */

printf("\n **** Задумано число з проміжку %d..%d – вгадайте "

    "його за %d спроб ****\n\n", RMIN, RMAX, K);

for (k = 1; k <= K; k++)         /* цикл вгадування з K спроб */

printf("Спроба %d - ",k);

scanf("%d", &answ);

if (answ == numb)                       /* число вгадано */

{

printf("\n\t *** %d - Ви вгадали!!! ***", numb);

getchar(); getchar();                  /* затримка */

return 0;                  /* завершення програми */

}

if (answ > numb)                    /* виведення підказки */

printf("\t\t - завелике\n");

Else 

printf("\t\t - замале\n");

}

printf("\n\t*** Ви не вгадали :(   Це число %d ***", numb);

getchar(); getchar();                     /* затримка */

return 0;                        /* завершення програми */

}

Лабораторна робота № 6

 НАЛАГОДЖЕННЯ ПРОГРАМ ТА
КОНТРОЛЬ ЗА ПРОЦЕСОМ ВИКОНАННЯ

Мета роботи: Ø розширити знання про структуру С-програми;
Ø оволо­діти основними прийомами налагодження програми та контролю за ходом її виконання за допомогою засобів вбудованого налагоджувача із середовища програмування.

Завдання лабораторної роботи

1. Прочитати текст програми, поданої наприкінці роботи. Ця програма визначає число з-поміж введеної з клавіатури послідовності довгих цілих чисел, яке має найбільшу суму цифр (якщо чисел з такою сумою декілька, то вибирається перше з них). Для обчислення суми цифр числа використано окрему функцію SumaCyfr(). Ця функція визначає суму і кількість цифр заданого числа та повертає суму як значення функції, а кількість цифр записує за вказаною адресою. Ще дві користувацькі функції: LiniaRamky1()та LiniaRamky2() призначені для формування рамки, якою виокремлюється резуль­тат виконання програми. Параметр цих функцій задає довжину лінії рамки, яка визначається залежно від кількості цифр у числі з найбільшою сумою цих цифр. Введення чисел, знаходження суми їхніх цифр та перевірка, чи ця сума перевищує найбільшу зі знайдених раніше, організовано за допомогою оператора  do-while як циклічний процес у функції main(). Коли введення чисел завершено – його можна перервати, ввівши0замість числа, програма виводить результат: знайдену максимальну суму цифр і значення шуканого числа.

2. Активізувати інтегроване середовище програмування та створити новий проект. Для зручності орієнтування у каталозі проектів програм їхні імена доцільно пов’язати з номерами лабораторних робіт, наприклад LR6.

3. Відкрити вікно редактора та ввести текст програми, дотримуючись стилю її запису. Зауваження: у специфікаціях %ld у функціях введення та виведення значення числа вказується мала латинська літера l, яку не слід плутати з цифрою 1.

4. Зберегти текст програми у файлі в особистому каталозі. Відкомпілювати програму, виправити всі помилки і створити рішення проекту (виконавчий код): Build ® Build Solution.

5. Запустити програму на виконання: Debug ® Start Without Debugging (Ctrl+F5). Ввести послідовність цілих чисел, які аналізуватиме програма. Кожне число може мати до десяти цифр, що обумовлено діапазоном значень типу long. Числа найкраще набирати в одному рядку, відокремлюючи пробілами або табуляціями, хоча можна також відокремлювати числа, натискуючи Enter. Програма дає змогу ввести MAXN чисел, або зупинити введення нулем. Переписати у звіт введені числа і результати першого виконання програми.

6. Відкрити розділ горизонтального меню Debug. Його команди призначені для налагодження програм та контролю за процесом їхнього виконання. Переглянути команди налагодження, які доступні перед запуском програми. Серед них:

· Start Debugging (F5) – розпочати процес налагодження;

· Step Into (F11) – покрокове (порядкове) виконання операторів усіх функцій програми;

· Step Over (F10) – покрокове виконання без розгляду функцій, що викликаються;

· Toggle Breakpoint (F9) – встановлення /зняття точки зупинки програми;

· New Breakpoint ® Break at Function – встановлення точки зупинки у заданому місці певної функції;

· Delete All Breakpoints (Ctrl+Shift+F9) – видалення всіх встановлених точок зупинки;

· Disable / Enable All Breakpoints – блокування / активація (відключення / включення) всіх встановлених точок зупинки.

7. Встановити точку зупинки на рядку програми  if(chysl= =0) break; Для цього треба встановити курсор на відповідний рядок програми і вибрати команду Toggle Breakpoint (F9). Можна також клацнути правою кнопкою миші на цьому рядку і в контекстному вікні, що відкриється, вибрати Breakpoint ®
Insert Breakpoint. Точка зупинки позначається червоним кружком на початку рядка у вікні редактора програми.

8. Запустити процес налагодження програми – Start Debugging (F5). Ввести перше число (можна ввести одразу всю послідовність чисел) і повернутися у вікно редактора. Місце зупинки програми позначається жовтою стрілкою. Відкрити вікно спостереження Locals. Якщо воно відсутнє у нижній панелі інтерфейсу середовища, то виконати команду Debug ® Windows ® Locals. Переглянути змінні, значення та типи яких висвітлені в цьому вікні. До якої функції належать ці змінні? Проаналізувати та записати в звіт значення змінних. Чому деякі з цих значень дивні? Які саме? Червоним кольором виділяється значення, яке було змінене в процесі виконання програми останнім. Якій змінній воно належить? Потім подібним чином відкрити вікно спостереження Autos. Дослідити, які змінні висвітлюються в цьому вікні. Занотувати вміст вікна Autos.

9. Відкрити ще одне вікно спостереження  Watch1 (таких вікон може бути декілька Watch2, Watch3, ...). Наповнити вікно тими змінними, які важливі для ефективного контролю програми, наприклад chysl, maxsum, kmax тощо. Імена (ідентифікатори) змінних можна набирати вручну або копіювати чи перетягати з вікна редактора. Надалі найкраще контролювати саме значення змінних з вікна Watch1 та записувати їх у звіт.

10. Запустити покрокове виконання програми Step Over (F10). Поспостері­гати за ходом її виконання та змінами значень змінних у вікнах Locals, Autos та Watch. Виконати в цьому режимі два-три повні проходи по циклу та занотувати основні результати. За яких умов виконуються внутрішні оператори if: maxsum=sumc; та два інші?

11. Перейти в режим виконання Step Into (F11). Що змінилося в процесі спостереження за виконанням оператора sumc = SumaCyfr(chysl,&kc);? Знову переглянути вміст вікон Locals, Autos та Watch. Як змінюється вміст цих вікон залежно від фрагмента програми, що виконується? Записати результати.

12. Ще раз відкрити розділ основного меню Debug. У ньому з’явилися нові команди:

· Step Out (Shift+F11) – завершення перегляду функції та повернення у точку її виклику;

· Continue (F5) – продовження виконання програми до наступної точки зупинки або до кінця програми;

· Stop Debugging (Shift+F5) – переривання процесу налагодження;

· Restart (Ctrl+Shift+F9) – перезапуск програми у режимі налагодження;

· Quick Watch… (Shift+F9) – відкриття вікна, в якому можна швидко переглянути поточне значення змінної чи певного виразу з активними змінними програми.

13. Зняти точку зупинки –  Toggle Breakpoint (F9). Можна просто клацнути мишкою на червоному кружку точки зупинки. Виконати програму до кінця – Continue (F5). Перевірити і записати остаточні результати.

14. Встановити в програмі чотири точки зупинки. Дві всередині функції main(), одну в SumaCyfr(), а останню – всередині однієї з функцій побудови рамки. Відкрити три вікна Watch, кожне з яких наповнити основними змінними відповідної функції. Запустити програму на виконання у режимі налагодження. Після кожної зупинки програми переглянути вміст вікон Watch. Які з них і в які моменти є активними? Записати в звіт по одному разу вміст кожного з вікон, зазначивши на якому етапі виконання програми це було зроблено. Зняти всі точки зупинки (Delete All Breakpoints) і завершити роботу програми (Continue).

15.  Ще одним способом зупинки програми для контролю поточного значення змінних є застосування команди Run To Cursor (Ctrl+F10). Цю команду можна реалізувати в контекстному вікні, що викликається правою кнопкою миші. Попередньо курсор редактора програм має бути встановлений на потрібне місце зупинки. Потім курсор можна перенести і знову зупинити програму в іншому місці. Попрактикувати роботу з командою Run To Cursor і коротко записати основні результати. Перервати процес налагодження програми (Stop Debugging).

16. Оформити звіт про виконання лабораторної роботи, в якому навести текст програми, що опрацьовувалася, вказати команди та інструментальні засоби середовища, які використо­вувалися для реалізації дій, заданих у завданні, навести зафіксовані результати, в т. ч. вміст вікон спостереження. Написати висновок.

Програма для опрацювання

/*** Пошук числа з найбільшою сумою цифр ***/

#include <stdio.h>

#include <stdlib.h>

#define MAXN 10                  // максимальна кількість чисел 

int SumaCyfr(long, int*);               // оголошення функцій 

void LiniaRamky1(int);

void LiniaRamky2(int,int);

Void main (void)

{


Дата добавления: 2018-04-15; просмотров: 2694; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!