Засоби вiдлагодження iнтегрованого середовища: вiкно спостереження за вмiстимим пам'ятi (Memory windows) i вiкно спостереження за за стеком викликiв (Call Stack). Розв'язування на С задач, в яких використовуються масиви типу char i рядки
Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки
Національний університет “Львівська політехніка”
Кафедра ЕОМ
/
Звіт
з лабораторної роботи № 6
з дисципліни: “Основи алгоритмізації та програмування”
на тему: “Засоби вiдлагодження iнтегрованого середовища: вiкно спостереження за вмiстимим пам'ятi (Memory windows) i вiкно спостереження за за стеком викликiв (Call Stack). Розв'язування на С задач, в яких використовуються масиви типу char i рядки”
Мета лабораторної роботи
Познайомитися iз засобами вiдлагодження Memory windows та Call Stack iнтегрованого середовища Visual C++ 2005.
Познайомитися iз використанням масивiв типу char i рядкiв у мовi програмування С.
Теоретичні відомості
Засоби вiдлагодження Memory windows та Call Stack
З допомогою Memory windows можна спостерiгати за значеннями комiрок пам'ятi комп'ютера, в яких зберiгаються данi, пiд час виконання програми.
Для встановлення вiкна (чи вiкон) спостереження за пам'яттю використовується меню Debug/Windows/Memory iнтегрованого середовища Visual Studio.
Для перегляду конкретної областi пам'ятi потрiбно задати адресу цiєї областi. Отримати таку адресу можна у вiкнi Autos чи Locals. Для масивiв у цих вiкнах видається адреси першого елемента масиву, для простих змiнних адресу можна отриматм записуючи у вiкнi Watch вираз з операцiєю отримання адреси (операцiя &).
Вiкно Call Stack встановлюється з допомогою меню Debug/Windows/Call Stack. У виконавчих програмах побудованих компiлятором Visual C++ 2005 (до речi, як створених iншими компiляторами) передача параметрiв у функцiї здiйснюється через стек. З допомогою вiкна Call Stack можна вiдслiдковувати ланцюжок викликiв функцiй та значення параметрiв що передаються.
Символьнi масиви та рядки в мовi програмування С
Рядок це неперервна послiдовнiсть символiв, яка завершується символом '\0', так званим нуль-символом. Довжиною рядка вважається кiлькiсть символiв за винятком нуль-символа. В мовi С вiдсутнiй спецiальний рядковий тип, а тому вiдсутнi оператори для роботи з рядками.
Замiсть того рядки зберiгаються в масивах, елементами яких є елементи типу char. Бiблiотека стандартних функцiй С мiстить багато функцiй для виконання найвживанiших операцiй з рядками, таких як порiвняння, копiювання, об'єднання рядкiв тощо.
В наступнiй таблцi перелiченi найвживанiшi стандартнi функцiї для роботи з рядковими даними.
Призначення функцiї
Функцiя
Визначення довжини рядка
strlen( )
Копiювання рядка
strcpy( ), strncpy( )
Конкатенацiя рядкiв
strcat( ), strncat( )
Знаходження першого чи останнього входження заданого символа
strchr( ), strrchr( )
Знаходження першого входження деякого рядка
strstr( )
Встановлення всiх символiв блоку в задане значення
memset( )
Індивідуальне завдання
7-4. Вивести задану послідовність символів, вилучивши із неї всі зайві пробіли, тобто із декількох пробілів, що розміщені підряд, залишити лише один.
Хід виконання роботи
Використовуючи вище приведений опис, познайомитися iз засобами вiдлагодження: Memory windows та Call Stack середовища Visual C++ 2005.
Навчитися користуватися цими засобами.
Використовуючи вище приведений опис, познайомитися зi символьними масивами та рядками в мовi програмування С.
З допомогою вбудованого текстового редактора пiдготувати тексти програм, у яких використовують рядковi данi, вiдлагодити їх та отримати результати роботи програм.
Текст програми
7-4
#include <stdio.h>
#include <string.h>
int main()
{
char str[8192];
printf("Enter string:\n");
gets_s(str, 8192);
for (int i = 0; i < strlen(str); i++)
{
if (str[i] == ' ' && str[i + 1] == ' ') continue;
if (str[i] == ' ' && i == strlen(str) - 1) continue;
printf("%c", str[i]);
}
getch();
return 0;
}
Результат роботи програми
7-4
/
Висновок
Я познайомився iз засобами вiдлагодження Memory windows та Call Stack iнтегрованого середовища Visual C++ 2005, познайомився iз використанням масивiв типу char i рядкiв у мовi програмування С. Я написав програму, в якій використовується масиви типу char і рядки.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!