Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Опишіть та дайте приклади використання зв’язаної організації пам’яті для реалізації рекурсивних структур.
Зв’язана організація пам’яті задає множину структур даних, зв’язки між якими організовуються за допомогою вказівників. Кожен елемент такої структури володіє властивістю - „мати зв’язок з іншими елементами” ( асоціація ). ДСО володіють властивістю мати змінний склад структури, яка дозволяє розглядати ДСО як асоціацію зв’язаних об’єктів рекурсивні структури даних у своєму описі посилаються самі на себе. Взагалі поняття динамічних структур даних є більш широким, ніж поняття рекурсивних структур 47). Організація роботи з файлами у мові С++ з використанням потоків. Під файлом зазвичай розуміють поіменовану інформацію на зовнішньому носієві, наприклад жорсткому магнітному диску. Логічно файл можна подати як кількість послідовних байтів, тому такі пристрої як дисплей, клавіатуру і принтер також можна розглядати як окремі випадки файлів. За способом доступу файли можна поділи: на послідовні (текстові), читання і запис в яких проводяться з початку байт за байтом, і файли з довільним доступом (бінарні), які допускають читання і запис у вказану позицію. Стандартна бібліотека містить три класи для роботи з файлами: ifstream — клас вхідних файлових потоків; ofstrearn — клас вихідних файлових потоків; fstream — клас двонаправлених файлових потоків. Ці класи є похідними від класів istream, ostream та iostream відповідно, тому вони містять перевантажені операції < < і > >, прапорці форматування, маніпулятори, методи, стани потоків і т. д. Використання файлів в програмі передбачає наступні операції: • створення потоку; • відкриття потоку і пов’язування його з файлом; • обмін (ввід/вивід); • знищення потоку; • закриття файлу. Кожен клас файлових потоків містить конструктори, за допомогою яких можна створювати об'єкти цих класів різними способами. Конструктори без параметрів створюють об'єкт відповідного класу, не пов'язуючи його з файлом: ifstream (); { input } ofstream (); { output } fstream ();, { file- потік} Конструктори з параметрами створюють об'єкт відповідного класу, відкривають файл з вказаним ім'ям і пов'язують файл з об'єктом: іfstream(const char *name, int mode = ios:: in); ofstream(const char *name, int mode = ios:: out | ios:: trunc); Другим параметром конструктора є режим відкриття файлу. Якщо встановлене за замовчанням значення не влаштовує програміста, можна вказати інше, склавши його з бітових масок, визначених в класі ios: enum open_mode { in = 0x01, //Відкрити для читання out = 0x02, // Відкрити для запису ate = 0x04, // Встановити покажчик на кінець файлу арр = 0x08, // Відкрити для додавання в кінець trunc = 0x10, // Якщо файл існує, вилучити його nocreate = 0x20, // Якщо файл не існує, видати помилку noreplace = 0x40, // Якщо файл існує, видати помилку binary= 0x80. // Відкрити у двійковому режимі };
Відкрити файл в програмі можна з використанням або конструкторів, або методу open, що має такі ж параметри, як і у відповідному конструкторі, наприклад // Використання конструктора ifstream inpf (" input.txt"); if (! inpf){ cout < < " Неможливо відкрити файл для читання"; return 1; } ostream f; f.open(" output.txt". ios:: out); // Використання методу open if (! f) { out < < " Неможливо відкрити файл для запису"; return 1; }
Читання і запис виконуються або за допомогою операцій читання і вилучення, аналогічних потоковим класам, або за допомогою методів класів. 48). Використання маніпуляторів при вводі-виводі даних.(незнайдено повністю) Маніпуляторами називаються функції, які можна включати в ланцюжок операцій поміщення і добування для форматування даних. Маніпулятори поділяються на прості, які не вимагають вказівки аргументів, і такі, що параметризуються. Користуватися маніпуляторами зручніше, ніж методами установки прапорців форматування.
|