
- •Лабораторна робота № 4. Розробка простих консольних додатків за допомогою Microsoft Visual Studio 2010 Теоретичні відомості
- •Короткий огляд середовища розробки
- •Компіляція програми у Visual Studio. Виправлення синтаксичних помилок
- •Корисне сполучення клавіш
- •Виконання лабораторної роботи Створення простих консольних програм
- •Компіляція програми у Visual Studio. Виправлення синтаксичних помилок
- •Відладка у Visual Studio. Пошук логічних помилок в програмі
- •Покрокове проходження для пошуку помилки
- •Продовження налагодження
- •Закінчення сеансу налагодження
- •Налагодження в разі аварійного завершення програми
Компіляція програми у Visual Studio. Виправлення синтаксичних помилок
Розглянемо автоматичне виявлення помилок на окремих прикладах. Для цього створимо проект Приклад_2, обравши у контекстному меню рішення зазначені на рис. 20 команди.
Рис. 20. Контекстне меню з командами створення нового проекту
Виконайте крок 2 та 3, вказавши ім’я проекту Приклад_2.
Рис. 21. Вікно створення нового проекту
Виконайте крок 4 та 5, створивши файл вхідного коду з ім’ям Приклад_2.
Далі на кроці 6 у вікні редактора коду наберіть наведений нижче текст програми (див. приклад 2) (рис. 22).
Приклад 2. Програма визначення мінімального та максимального значення
Визначити максимальне та мінімальне значення чисел, введених з клавіатури.
#include <stdio.h>
void main()
{
int max = 0, min = 0;
int n, a
/* Помилка cинтаксису: відсутня ; в кінці оголошення змінних */
setlocale(LC_CTYPE, "Russian");
printf_s("Введіть кількість чисел n: ");
scnf_s("%d", &n); /* Помилка cинтаксису: невірне ім’я функції (повинно бути scanf_s) */
printf_s("Введення %d чисел:\n", n);
printf_s("Далi слiд ввести наступних %d чисел:\n", n);
for (int i = 1; i < n; i++)
{
printf_s("Введіть %d число: ", i);
scanf_s("%d", &a);
// Пошук максимального і мінімального елемента
if (a < min) min= a;
if (a > max) max= a;
/* Помилка синтаксису: немає закриваючої скобки } */
printf_s("Найбiльше введене число серед %d чисел: %d\n", n, max);
printf_s("Найменше введене число серед %d чисел: %d\n", n, min);
system("pause");
/* Помилка синтаксису: в програмі відсутній опис функції system("pause") */
}
/* Щоб виправити помилку, додайте в початок програми #include <windows.h> */
Рис. 22. Текст програми в редакторі коду Visual Studio 2010
Потім виконайте збірку додатка (крок 7), вибравши в меню Побудова - Побудувати рішення. Після цього у вікні Список помилок (Error List) повинні з'явитися повідомлення про виявлені помилки (рис. 23).
Рис. 23. Вікно Список помилок
Вікно Список помилок можна відкрити, вибравши в меню Вигляд (View) - Список помилок (List Errors). В відкритому вікні Список помилок двічі клацніть по першій поміченій помилці і переконайтеся, що при цьому в редакторі коду курсор переміститься на рядок з помилкою (рис. 24).
Рис. 24. Вікно редактора вхідного коду та списку помилок з поміткою рядка з помилкою
ПОРАДА. Корисно переглядати список помилок, починаючи з першої, тому що одна-єдина помилка може викликати ланцюгову реакцію, поява «наведених» помилок. Виправлення цієї єдиної помилки призведе і до зникнення інших. Однак обмежуватися виправленням тільки однієї помилки все ж не варто, оскільки ви будете втрачати час на повторну збірку рішення (а воно може становити в серйозних додатках до декількох годин!). З досвідом ви навчитеся легко відрізняти «наведені» помилки від реальних.
Як видно з рис. 24, повідомлення про помилку містить номер помилки (в класифікації помилок компіляції) та короткий її опис. Буває, що діагностичної інформації компілятора недостатньо, щоб зрозуміти суть помилки, і в таких випадках слід шукати її більш докладний опис.
Як правило, у вбудованій довідковій системі VS можна знайти вичерпний опис помилки, можливих причин її виникнення та способів її виправлення, а також приклади програм з помилками такого ж типу (і номера). Для отримання довідкової інформації достатньо натиснути клавішу F1 на поточній помилці у вікні Список помилок або у вікні Виведення, в результаті чого має з'явитися вікно довідкової системи з описом помилки, як показано на рис. 25.
Рис. 25. Вікно Виведення з повідомленням про помилки компіляції
Перегляньте весь список виявлених компілятором помилок. Точно установіть рядки тексту програми, що містять помилки (для цього слід двічі клацнути по помилці в списку і курсор в редакторі коду переміститься на рядок з помилкою). Використовуючи отриману інформацію (і вказівки в коментарях в тексті програми), виправте помилки, а потім перекомпілюйте програму. Якщо всі синтаксичні помилки були виправлені, то компіляція пройде успішно і буде зібраний виконуваний файл.
Рис. 26. Вікно редактора вікном виведення помилок
Перевірте роботу програми, запустивши її на виконання командою меню Налагодження - Почати налагодження (або натиснувши клавішу F5).
Зверніть увагу, що на виконання була запущена програма з ім‘ям Приклад_1, хоча ми мали на увазі запуск програми Приклад_2.
Щоб змінити цю ситуацію, слід у провіднику рішень виділити рішення і обрати Вигляд (View) – Властивості Windows (Properties Windows).
Рис. 27. Вікно властивостей рішення
У вікні властивостей змініть Запуск проекту (Startup project) змініть проект Приклад_1 на Приклад_2.
Рис. 28. Вікно властивостей рішення
Знов запустіть програму на виконання. Отримаємо вікно консолі, в якому на запит програми введемо необхідні дані і отримаємо результат роботи програми.
Рис. 29. Результат виконання програми
На рис. 29 показаний приклад введення-виведення програми, з якого видно, що програма, хоча і працює, але видає невірний результат, оскільки мінімальним числом є нуль, а серед введених чисел нуля немає і кількіст введених чисел дорівнює 4 замість 5. Це означає, що в коді програми міститься помилка, яку автоматично не вдалося виявити. Засоби пошуку такого роду помилок (званих логічними) будуть розглянуті.