- •Національний університет “Львівська політехніка” Інститут підприємництва та перспективних технологій
- •Короткі теоретичні відомості
- •1.1. Десяткова система числення
- •1.2. Двійкова система числення
- •1.3. Вісімкова та шістнадцяткова системи числення
- •Алгоритми переведення чисел з однієї позиційної системи числення в іншу
- •Постановка завдання
- •4. Висновки
- •5. Контрольні запитання
- •Лабораторні роботи №2-3. Тема: "Знайомство з с. Виконання програми простої структури"
- •1. Короткі теоретичні відомості
- •1.1. Структура програми
- •1.2. Константи й змінні
- •1.3. Операції
- •1.4. Вирази
- •2. Постановка завдання
- •3. Варіанти
- •4. Методичні вказівки
- •6. Висновки
- •7. Контрольні запитання
- •Лабораторні роботи №4-5. Тема: "Використання основних операторів мови с"
- •Короткі теоретичні відомості
- •Складені оператори
- •Оператори вибору
- •Оператори циклів
- •Оператори переходу
- •2. Постановка завдання
- •3. Варіанти
- •5. Методичні вказівки
- •6. Висновки
- •7. Контрольні запитання
- •Лабораторна робота №6. Тема: "Обчислення функцій з використанням їхнього розкладу в степеневий ряд"
- •1. Короткі теоретичні відомості
- •2. Постановка завдання
- •3. Варіанти
- •4. Методичні вказівки
- •5. Отримані результати. Лабораторні роботи № 7.
- •Короткі теоретичні відомості
- •1.1. Функції
- •1.2 Бібліотека математичних функцій.
- •2. Постановка завдання
- •Лабораторна робота № 8. Тема: "Робота з одновимірними масивами"
- •Короткі теоретичні відомості
- •1.2. Ініціалізація масиву
- •1.3. Вказівники
- •1.4. Вказівники й масиви
- •2. Варіанти завдань
- •3. Методичні вказівки
- •Короткі теоретичні відомості
- •1.2. Масиви й рядки як параметри функцій
- •2. Постановка завдання
- •3. Варіанти
- •4. Методичні вказівки
- •Висновки
- •6. Контрольні запитання
- •4) Як здійснюється передача багатовимірних масивів у функцію? Лабораторні роботи №11-12. Тема: "Символьна інформація"
- •1. Короткі теоретичні відомості
- •2. Постановка завдання
- •3. Варіанти
- •Тема: " Використання бібліотечних функцій для обробки символьної інформації."
- •Короткі теоретичні відомості
- •2. Варіанти індивідуальних завдань
- •Методичні вказівки
- •Контрольні запитання
- •Лабораторна робота № 15 Тема: "Динамічні масиви"
- •Короткі теоретичні відомості
- •Формування динамічних масивів з використанням бібліотечних функцій
- •Формування динамічних масивів з використанням операцій new й delete
- •2. Постановка завдання
- •3. Порядок виконання роботи
- •4. Варіанти завдань
- •Лабораторна робота № 16. Тема: "Інформаційні динамічні структури"
- •Короткі теоретичні відомості
- •2. Постановка завдання
- •Порядок виконання роботи
- •4. Варіанти завдань
- •Список літератури
Лабораторна робота № 16. Тема: "Інформаційні динамічні структури"
Мета: Знайомство з динамічними інформаційними структурами на прикладі одно- і двонаправлених списків.
Короткі теоретичні відомості
У багатьох завданнях потрібно використовувати дані в яких конфігурація, розміри, склад можуть змінюватися в процесі виконання програми. Для їхнього представлення використовують динамічні інформаційні структури.
Найбільш проста інформаційна структура - це однозв'язний список, елементами якого є об’єкти структурного типу. Наприклад
struct ім'я_структурного_типу
{
елементи_структури;
struct ім'я_структурного_типу *вказівник;
}
У кожну структуру такого типу входить вказівник на об'єкт того ж типу, як і структура, що визначається.
beg
Приклади:
Опис структури
struct point
{int key;
point* next;
};
Поле key містить інформаційну частину структури point, а поле next містить адресу наступного елемента списку.
2. Функція для формування однонапрвленого списку
point* make_point( int n)
{
point *first, *p;
first=NULL;
for (int i=n;i>0;i--)
{
p=new(point);
p->key=i;
p->next=first;
first=p;
}
return first;
}
Як параметр у функцію передається кількість елементів у списку, а результатом є вказівник на перший елемент цього списку. Вказівник р вказує на знову створюваний елемент. Для звертання до полів використовується операція доступу до елемента структури, з якою пов'язаний вказівник -> . Існує інша можливість звертання до поля динамічної структури: (*p).key або (*p).next. В інформаційне поле key заноситься порядковий номер елемента в списку. Додавання нових елементів здійснюється на початок списку.
3. Функція для друку однонаправленого списку
point* print_point(point*first)
{
if (first==NULL)return NULL;
point*p=first;
while(p!=NULL)
{
cout<<p->key<<" ";
p=p->next;
}
return first;
}
При друці сформованого списку здійснюється прохід за списком за допомогою допоміжної змінної р доти, поки вона не стане дорівнювати NULL.
2. Постановка завдання
Написати програму, у якій створюються динамічні структури й виконати їхню обробку у відповідності зі своїм варіантом.
Для кожного варіанту розробити такі функції:
Створення списку.
Додавання елемента в список (у відповідності зі своїм варіантом).
Знищення елемента зі списку (у відповідності зі своїм варіантом).
Друк списку.
Запис списку у файл.
Знищення списку.
Відновлення списку з файлу.
Порядок виконання роботи
Написати функцію для створення списку. Функція може створювати порожній список, а потім додавати в нього елементи.
Написати функцію для друку списку. Функція повинна передбачати вивід повідомлення, якщо список порожній.
Написати функції для знищення й додавання елементів списку у відповідності зі своїм варіантом.
Виконати зміни в списку й друк списку після кожної зміни.
Написати функцію для запису списку у файл.
Написати функцію для знищення списку.
Записати список у файл, знищити його й виконати друк (при друці повинне бути видане повідомлення "Список порожній").
Написати функцію для відновлення списку з файлу.
Відновити список і роздрукувати його.
Знищити список.