
- •Лабораторна робота №1
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості Масиви динамічної пам'яті
- •Приклад виконання завдання 1
- •Лістинг програми
- •Приклад виконання завдання 2
- •Лістинг програми
- •Приклад виконання завдання 3
- •Лістинг програми
- •Контрольні запитання
- •Лабораторна робота №2
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Читання і запис текстових файлів
- •Читання і запис бінарних файлів
- •Відкриття бінарних файлів
- •Файли з послідовним доступом
- •Запис даних у файл з послідовним доступом
- •Файли з довільним доступом
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №3
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості
- •Обмеження доступу до членів класу
- •Специфікатори доступу
- •Вбудовані функції-члени
- •Приклад виконання завдання 1.
- •Приклад виконання завдання 2.
- •Приклад виконання завдання 3.
- •Контрольні запитання
- •Лабораторна робота №4
- •Порядок виконання роботи
- •Завдання 2
- •Теоретичні відомості Конструктори і деструктори
- •Правила роботи з конструкторами і деструкторами
- •Варіант 10. Розробити описовий алгоритм, схему алгоритму і написати метод для підрахування кількості слів в текстовому файлі.
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №5
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Принципи спадкування в ооп
- •Оголошення похідних класів
- •Конструктори похідного класу
- •Функції члени похідного класу
- •Заборонені члени класу (Protected)
- •Приклад виконання Завдання 1
- •Контрольні запитання
- •Лабораторна робота №6
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Перевантаження операторів
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Приклад виконання завдання 3
- •Приклад виконання завдання 4
- •Контрольні запитання
- •Лабораторна робота №7
- •Порядок виконання роботи
- •Завдання 1.
- •Завдання 2.
- •Теоретичні відомості
- •Структура наслідування класів
- •Постановка задачі
- •Розробити клас трикутника, чотирикутника, кола, точки
- •Контрольні запитання
- •Лабораторна робота №8
- •Порядок виконання роботи
- •Завдання 1
- •Контрольні запитання
- •Лабораторна робота №9
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Множинне спадкування
- •Контрольні запитання
- •Лабораторна робота №10
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Шаблони
- •Параметризовані класи
- •Визначені об’єкти-потоки
- •Операції поміщення та вилучення
- •Приклад виконання Завдання з варіанту 2
- •Контрольні запитання.
- •Лабораторна робота №11
- •Порядок виконання
- •Завдання 1
- •Завдання 2
- •Завдання 3 Варіант 1. Задача “Банківське переведення” (дата, час, № рахунку, розмір рахунку).
- •Ітератори
- •Для роботи з вектором необхідно:
- •Приклад роботи з вектором
- •Алгоритми
- •Застосування алгоритмів до вектора
- •Приклад 1 виконання Завдання 1
- •Приклад 2 виконання Завдання 2
- •Приклад 3 виконання завдання №3
- •Контрольні запитання
- •Завдання 1
- •Теоретичні відомості Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №13
- •Порядок виконання
- •Завдання 2.
- •Теоретичні відомості
- •Стандартні потоки для базових класів
- •Форматування даних при обмінах з потоками
- •Маніпулятори
- •Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №14
- •Порядок виконання
- •Завдання
- •Теоретичні відомості
- •Контрольні запитання
Контрольні запитання
Для чого було створено STL?
Що таке контейнери, алгоритми, ітератори?
Види контейнерів.
Як працюють алгоритми?
Види ітераторів.
Що таке VECTOR?
Назвіть відомі вам функції-члени класу VECTOR.
Основні операції, які можна виконувати з VECTOR.
Що таке LIST?
Назвіть відомі вам функції-члени класу LIST.
Наведіть приклад простого списку.
Лабораторна робота №12
Тема: Особливості створення програм обробки динамічних даних (списків) з використанням контейнерів LIST, MAP, STRING стандартної бібліотеки шаблонів STL.
Мета: Набуття навичок в розробці програм з використанням контейнерів LIST, MAP, STRING стандартної бібліотеки шаблонів STL.
Порядок виконання роботи
1. Ознайомитись з теоретичною частиною даної теми.
2. Розробити структуру класу, який призначений для обробки складних динамічних даних та методів контейнера LIST стандартної бібліотеки шаблонів STL для обробки даних, що задані в Завданні відповідного варіанту.
3. Розробити структуру класу, який призначений для обробки складних динамічних даних та методів контейнера MAP стандартної бібліотеки шаблонів STL для обробки даних, що задані в Завданні відповідного варіанту.
4. Розробити структуру класу, який призначений для обробки складних динамічних даних та методів контейнера STRING стандартної бібліотеки шаблонів STL для обробки даних, що задані в Завданні відповідного варіанту.
5. Розробити функції класу, структура якого розроблена в п.2-4 для виконання Завдання.
6. Розробити програму, яка використовує розроблену в п.2-5 шаблонів класів для виконання Завдання.
7. Розробити 2-3 теста для перевірки правильності роботи даної програми.
8. Оформити звіт до лабораторної роботи.
Завдання 1
Структура розробленого класу повинна містити: 2-3 конструктори, функції заповнення, виведення, доповнення, видалення, вставки, сортування, часткового сортування (по заданному діапазону і критерію), пошуку по заданному критерію.
Варіант 1. Задача “Банківське переведення” (дата, час, № рахунку, розмір рахунку).
Варіант 2. Задача “Студент” (прізвище, вік).
Варіант 3. Задача “Медична картка” (прізвище, вага).
Варіант 4. Задача “Результати хімічного досліду” (float, float).
Варіант 5. Задача “Результати хімічного досліду” (час, кількість
речовини).
Варіант 6. Задача “Розклад” (№ рейсу та час відправлення).
Варіант 7. Задача. “Успішність” (предмет, оцінка).
Варіант 8. Задача “Мобільний телефон” (час розмови, кількість грошей, № телефону).
Варіант 9. Задача “Мешканці” (прізвище, № квартири).
Варіант 10. Задача “Кабельне телебачення” (кількість каналів, вартість, назва пакету).
Клас повинен містити методи обробки списку:
- вставка;
- сортування по полю;
- сумування;
- видалення.
Теоретичні відомості Приклад розробки програми
// Templates.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include <stdlib.h>
template <class T>
class List
{
private:
T *v;
int size;
public:
List(int);
T& operator[](int i) {return v[i];}
T& operator=(T * arr) {return arr;}
print_array(void);
sort_array(void);
};
template <class T>
List<T>::List(int n)
{
v = new T[n];
size = n;
}
template <class T>
List<T>::print_array()
{
int i;
for (i=0;i<size;i++)
{
printf (" %d |", v[i]);
}
}
template <class T>
List<T>::sort_array()
{
int i, n=1;
T temp;
while (n<size)
{
for (i=0;i<size-n;i++)
{
if (v[i]>v[i+1])
{
temp = v[i];
v[i]=v[i+1];
v[i+1]=temp;
}
}
n++;
}
}
void main()
{
const num = 10;
int i;
List<int> integer(num);
for (i=0;i<num;i++)
{
integer[i]=(int)(rand()/1000)+60;
}
List<int> character(num);
for (i=0;i<num;i++)
{
character[i]=(char)(rand()/1000)+60;
}
printf("\nInteger before sorting:\n");
integer.print_array();
printf("\nChar before sorting:\n");
character.print_array();
// sorting
integer.sort_array();
character.sort_array();
printf("\nInteger after sorting:\n");
integer.print_array();
printf("\nChar after sorting:\n");
character.print_array();
printf("\ndone\n");