Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки, молоді та спорту України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи № 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нальний нуль-символ. Так масив str1 може зберiгати не бiльше чим 29 символiв. Цей масив не може мати довжину 8, тому що в ньому не вмiстися б нуль-символ. Якщо символьний масив описується без вказання явної довжини i iнiцiалiзується рядковим лiтералом, то створюється масив на один елемент довший за довжину рядка.
Найвживанiшi стандартнi функцiї для роботи з рядковими даними.
Призначення функцiї Функцiя
Визначення довжини рядка………………………………………………………….………strlen( ) Копiювання рядка………………………………………………………………..strcpy( ), strncpy( ) Конкатенацiя ………………………………………………………………...........strcat( ), strncat( )
Знаходження першого чи останнього входження заданого символа………….strchr( ), strrchr( )
Знаходження першого входження деякого рядка…………………………………………..strstr( )
Встановлення всiх символiв блоку в задане значення…………………………………..memset( )
Індивідуальне завдання:
Перевірити чи в заданій послідовності символів розставлені дужки (тобто справа від кожної відкриваючою дужки є відповідна закриваюча, а зліва від кожної закриваючої – є відповідна відкриваюча).
Текст програми:
# include <stdio.h>
# define SIZE 40
void main()
{
char arr[SIZE]="()";
int n = 0;
int t = 0;
while (arr[t] != '\0')
{
if(arr[t] == '(')
{
n++;
t++;
{
if(arr[t] == ')') n--;
}
}
t++;
}
if (n != 0)
printf ("\n Incorrect");
else
printf ("\n Correct");
}
Результат роботи програми:
char arr[SIZE]="()"
Результат: Correct
char arr[SIZE]=")("
Результат: Incorrect
Висновок:
Виконуючи цю лабораторну роботу я ознайомився із засобами від лагодження Memore windows та Call stack, також ознайомився з використанням масивів типу char і рядків у мові програмування С.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!