Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота №3 стек 3.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
56 Кб
Скачать
☆

Примеры

Ввод: input.txt VAR1=5 VAR2=VAR1*(7+VAR3) PRINT VAR1 PRINT VAR2+1

Вывод: output.txt 5 36

Методичні вказівки

В даній роботі пропонується написати програму обраною мовою програмування, у якій сформувати стек відповідно до завдання на основі базових алгоритмів: пошук, вставка, вилучення, виведення елемента.

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

При написанні програми виконуйте коментування коду.

Література

Завдання

1. Вивчіть завдання, виділивши при цьому всі види даних;

2. Сформулюйте математичну постановку завдання;

3. Виберіть метод рішення завдання, якщо це необхідно;

4. Розробіть алгоритм рішення завдання;

5. Написати програму обраною мовою програмування;

6. Підготуйте тестові дані для перевірки різних режимів роботи програми;

7. Виконайте тестування програми;

8. Порівняйте отриманий результат з підготовленим для тестування;

9. Здійснити відлагодження програми;

10. Підготуйте звіт.

Вимоги до звіту

Звіт до лабораторної роботи повинен відповідати наступній структурі:

- титульний лист.

- словесна постановка завдання. У цьому підрозділі проводиться повний опис завдання. Описується суть завдання, аналіз вхідних даних, область їх припустимих значень, одиниці їхнього виміру, можливі обмеження, аналіз умов при яких завдання має рішення (не має рішення), аналіз очікуваних результатів.

- математична модель. У цьому підрозділі вводяться математичні описи дпних і математичний опис їхньої взаємодій. Ціль підрозділу - подати розв'язуване завдання у математичному формулюванні.

- алгоритм рішення завдання. У підрозділі описується розробка структури алгоритму, обґрунтовується абстракція даних, завдання розбивається на підзадачі.

- лістинг програми. Підрозділ повинен містити текст програми обраною мовою програмування.

- контрольний тест. Підрозділ містить набори вихідних даних і отримані в ході виконання програми результати.

- висновки по лабораторній роботі.

- відповіді на контрольні питання.

Приклад виконання роботи

Приклад 1. Дано рядок символів. Перевірте правильність розміщення в ній круглих дужок.

У рішенні даного завдання будемо використовувати стек. Приведемо головну функцію і функцію для перевірки правильності розміщення круглих дужок.

//головна функція

int _tmain(int argc, _TCHAR* argv[]){

char text[255];

printf("Введіть текст, що містить \"(\" і \")\" \n");

gets(text);

Check_Brackets (text);

system("pause");

return 0;

}

//функція перевірки правильності розміщення дужок

void Check_Brackets (char *text){

int i;

int flag=1;

Stack *Top_Stack;

Top_Stack = new Stack();

for(i=0;i<strlen(text); i++) {

if(text[i]==')' ) {

if(Empty_Stack(Top_Stack)) {

// Спроба вилучити нульовий елемент стеку

flag=0;

break;

}

if(Top_Stack->Top->Data == '(')

Pop_Stack(Top_Stack);

else {

flag=0;

break;

}

}

if(text[i]=='(')

Push_Stack(text[i],Top_Stack);

}

if(flag!=0 && Empty_Stack(Top_Stack))

printf("Вірно!");

else printf("Невірно!");

Clear_Stack(Top_Stack);

printf("\n");

}