Обработка данных (лекция 1 - 2)

Содержание

Слайд 2

Понятия данных и обработки данных

Данные — зарегистрированная информация, представление фактов, понятий или

Понятия данных и обработки данных Данные — зарегистрированная информация, представление фактов, понятий
инструкций в форме, приемлемой для общения, интерпретации, или обработки человеком или с помощью автоматических средств.

Обработка данных — [data processing, information processing] процесс приведения данных к виду, удобному для использования.

Информационная технология — это процесс, использующий совокупность средств и методов сбора, обработки и передачи данных для получения информации нового качества о состоянии объекта, процесса или явления.

Слайд 3

Области применения технологий обработки данных

Астрономия
Бухгалтерский учёт
Биотехнологии
Издательское дело
Компьютерная графика
Криптография
Уфология
Экспериментальная  психология

Нанотехнологии
Обработка результатов  экспериментов
Обработка сигналов
Обучение
Прикладная статистика
Экономическая  кибернетика

практически все области жизни современного общества

Несложно назвать

Области применения технологий обработки данных Астрономия Бухгалтерский учёт Биотехнологии Издательское дело Компьютерная
еще много примеров поскольку это -

список примеров:

а также:

Слайд 4

Standard Template Library (STL)

Стандартная библиотека
шаблонов

Краткий обзор библиотеки

Standard Template Library (STL) Стандартная библиотека шаблонов Краткий обзор библиотеки

Слайд 5

В библиотеке STL выделяют пять основных компонентов:

Контейнер (англ. container) — хранение набора объектов

В библиотеке STL выделяют пять основных компонентов: Контейнер (англ. container) — хранение
в памяти.
Итератор (англ. iterator) — обеспечение средств доступа к содержимому контейнера.
Алгоритм (англ. algorithm) — определение вычислительной процедуры.
Адаптер (англ. adaptor) — адаптация компонентов для обеспечения различного интерфейса.
Функциональный объект (англ. functor) — сокрытие функции в объекте для использования другими компонентами.

Слайд 6

Контейнеры STL

Наиболее часто используемым функционалом  STL являются 
контейнерные классы  («контейнеры»). 
Контейнеры STL делятся на три

Контейнеры STL Наиболее часто используемым функционалом STL являются контейнерные классы («контейнеры»). Контейнеры
основные категории:
   Последовательные контейнеры
Ассоциативные контейнеры
Адаптеры

Слайд 7

Последовательные контейнеры

реализуют структуры данных с возможностью последовательного доступа к ним.

Определяющая характеристика: можно

Последовательные контейнеры реализуют структуры данных с возможностью последовательного доступа к ним. Определяющая
вставить свой элемент в любое место контейнера.

vector - динамический непрерывный массив
list - список
deque - очередь

Слайд 8

Некоторые особенности последовательных контейнеров

Вектор (vector) представляет собой тип последовательного контейнера, который используется

Некоторые особенности последовательных контейнеров Вектор (vector) представляет собой тип последовательного контейнера, который
в большинстве случаев.
Список (list) используется при частых операциях вставки и удаления в произвольной позиции.
Дек (deque) выбирается в случае, если удалений нет, а вставки производится только в конце последовательности элементов».

Слайд 9

Вектора в С++

Вектора в С++

Слайд 10

Создание вектора определенного типа (синтаксис):
vector<тип_элемента> имя_вектора;

Вектор создание и инициализация

    Пример:
#include
Std::vector V; //пустой

Создание вектора определенного типа (синтаксис): vector имя_вектора; Вектор создание и инициализация Пример:
вектор
Std::vector V(10); // вектор размером 10 //элементов
Std::vector V(10, 0); //вектор размером 10 //элементов равных 0

Подключение библиотеки

using namespace std;

Объявление пространства имен

Слайд 11

Методы класса vector

push_back() - добавление нового элемента в конец вектора;
size() –

Методы класса vector push_back() - добавление нового элемента в конец вектора; size()
определение размера вектора (количество элементов);
pop_back() — удалить последний элемент;
clear() — удалить все элементы вектора;
empty() — проверить вектор на пустоту.

Для доступа к элементам вектора можно использовать квадратные скобки [], также, как для обычных массивов

Слайд 12

//Пример процедуры вывода вектора
void pr_vec(vector A)
{
for(int i = 0; i <

//Пример процедуры вывода вектора void pr_vec(vector A) { for(int i = 0;
A.size(); i++)
cout << A[i] << ' ';
cout<}

Пример процедуры вывода на консоль элементов вектора

Размер вектора определяется методом size():
имя_вектора.size();
Пример: int n=V.size();

Слайд 13

Некоторые операции с векторами

Изменение размера вектора (количества элементов):
имя_вектора.resize(новый_размер);

Добавить новый элемент в конец

Некоторые операции с векторами Изменение размера вектора (количества элементов): имя_вектора.resize(новый_размер); Добавить новый
вектора: имя_вектора.push_back(новый_элемент);

Слайд 14

Пример: играем с размерами вектора

Пример: играем с размерами вектора

Слайд 15

Значения вектора

Показать

Значения вектора Показать

Слайд 16

Итераторы

Итераторы

Слайд 17

Итератор — нечто, указывающее на элемент вектора.

Объявление итератора:
vector<тип>::iterator имя_итератора;

Итераторы

Итератор

Итератор — нечто, указывающее на элемент вектора. Объявление итератора: vector ::iterator имя_итератора;
имя_вектора.begin() указывает на первый элемент соответствующего вектора.

Итератор имя_вектора.end() указывает на фиктивный элемент вектора, расположенный за последним его элементом

Слайд 18

Действия с итераторами

Для итератора на vector вы можете:
Выполнять операцию разыменования (обращаться к

Действия с итераторами Для итератора на vector вы можете: Выполнять операцию разыменования
значению элемента на которое указывает итератор), как мы это делали с указателем: int x = *it;
Использовать инкремент (it++, ++it) и декремент (it--, --it).
Применять арифметические операции. Например, сместить итератор на пять элементов вправо, вот так: it += 5;
Сравнивать на равенство if (it == it2) { ...
Передать переменной разницу итераторов
int x = it - it2;

Слайд 19

Алгоритмы

Алгоритмы

Слайд 20

Использование итераторов

Требования:
#include
Пространство имен: std

Векторы и итераторы позволяют воспользоваться большим количеством библиотечных функций,

Использование итераторов Требования: #include Пространство имен: std Векторы и итераторы позволяют воспользоваться
которые называются алгоритмами
#include

Слайд 21

Вывод вектора по итератору

Функции для тестовой программы

Формирование вектора из файла

Вывод вектора по итератору Функции для тестовой программы Формирование вектора из файла

Слайд 22

Начало тестовой программы

Минимальный и максимальный элементы

Функции возвращают итератор.

Начало тестовой программы Минимальный и максимальный элементы Функции возвращают итератор.

Слайд 23

Поиск заданного элемента

Вставка элементов в вектор:
имя_вектора.insert(куда, что)
Здесь:
куда — итератор, указывающий

Поиск заданного элемента Вставка элементов в вектор: имя_вектора.insert(куда, что) Здесь: куда —
на элемент, непосредственно перед которым вставляется новый элемент.
что — элемент, который нужно вставить.

insert возвращает итератор, указывающий на только что вставленный элемент.

Слайд 24

Удаление заданного элемента

Сортировка и реверс

Удаление заданного элемента Сортировка и реверс

Слайд 25

Удаление диапазона элементов

Удаление элементов вектора по значению:
имя_вектора.erase( remove(имя_вектора.begin(),
имя_вектора.end(), значение), имя_вектора.end());

Удаление диапазона элементов Удаление элементов вектора по значению: имя_вектора.erase( remove(имя_вектора.begin(), имя_вектора.end(), значение), имя_вектора.end());

Слайд 26

Потоковые итераторы

Суть применения потоковых итераторов в том, что они превращают любой поток

Потоковые итераторы Суть применения потоковых итераторов в том, что они превращают любой
в итератор, используемый точно так же, как и прочие итераторы: перемещаясь по цепочке данных, считывает значения объектов или присваивает им другие значения.

Итератор потока ввода — это удобный программный интерфейс, обеспечивающий доступ к любому потоку, из которого требуется считать данные.

Потоковые итераторы имеют одно существенное ограничение — в них нельзя возвратиться к предыдущему элементу. Единственный способ сделать это - заново создать итератор потока.

Практически итератор потока вывода используется для отображения данных на экране.

Слайд 27

 являются либо итератором входного потока, либо итератором выходного потока. 
Классы для этих итераторов: 
istream_iterator  и  ostream_iterator. 

Потоковые

являются либо итератором входного потока, либо итератором выходного потока. Классы для этих
итераторы

Примеры :
istream_iterator cin_it (cin) - это итератор для потока cin.
ostream_iterator cout_it (cout) - это итератор для потока cout.
ostream_iterator cout_it (cout, " ") - это итератор для потока cout с разделителем.

Слайд 28

Примеры использования потоковых итераторов

Алгоритм: вводим целые числа
Они после ввода отображаются на экране

Примеры использования потоковых итераторов Алгоритм: вводим целые числа Они после ввода отображаются
(выводятся).
Если введено число 111, работа программы завершается.

Слайд 29

Функция copy в C++

Часто приходиться вывести некоторое количество элементов или добавить ячейки

Функция copy в C++ Часто приходиться вывести некоторое количество элементов или добавить
из одного контейнера в другой. Часто для это используется цикл, но есть средство лучше — метод copy().

copy — это метод который имеет три области применения.
Первая — это выводить элементы от n-го итератора до j.
Вторая — это добавлять элементы из контейнера A в контейнер B.
Третья — это копирование диапазона ячеек и вставка его позицию X.

Синтаксис:
copy(<первый>, <последний>, <операции>);

вывод элементов
добавление элементов
копирование элементов

Первый и последний – это диапазон ячеек, с которыми будут выполняться операции
В операции входит:

Слайд 30

Примеры использования потоковых итераторов

Имена

По умолчанию eos = ^Z (Ctrl Z)

Примеры использования потоковых итераторов Имена По умолчанию eos = ^Z (Ctrl Z)

Слайд 31

Добавление элементов в вектор

inserter — специальный тип итератора вывода который добавляет элементы

Добавление элементов в вектор inserter — специальный тип итератора вывода который добавляет
из контейнера A в контейнер B.

back_inserter — добавляет значения в конец STL контейнера.

front_inserter — добавляет элементы в начала контейнера (не работает с вектором)

copy(<первый>,<последний>, inserter(<имя контейнера>, <итератор>));

Слайд 32

Вывод и ввод вектора без цикла

Начало то же, только добавить #include

Вывод и ввод вектора без цикла Начало то же, только добавить #include

Слайд 33

Копирование элементов из одного вектора в другой

Копирование элементов из одного вектора в другой

Слайд 34

Добавление элементов в конец вектора


Добавление элементов в конец вектора

Слайд 35

Копирование элементов в другой вектор

Для вставки копируемых элементов в контейнер нужно третьим

Копирование элементов в другой вектор Для вставки копируемых элементов в контейнер нужно
аргументом  передавать — итератор.  От него начнут изменяться ячейки на значения другого контейнера.

Доступ к элементам вектора

Слайд 36

Работа с файлом

Работа с файлом
Имя файла: Обработка-данных-(лекция-1---2).pptx
Количество просмотров: 26
Количество скачиваний: 0