kiron123
17.04.2022 07:30

Суммативное оценивание за 4 четверть по информатике.1. установите соответствие, какой рисунок будет построен каждой программой. у| 3)1)2)ht и му енака щеекнув понеше есе кемин aгенезнеосоцеr tораочиститиутасает в кафыустановіть размер герь 5установить претератоест раннер иера 5густить передустановить размер гера 5tоверну» teoperteere 90орернуть емантрахеите9090 -опустить геротенторусь 4нур 4иши 50роерука на со 90 градуса30совернутиска c90 градусовкери 50 шагонповернуться на 90 градусовкроки 1 декаидди 50 шаговповернуться на 5 90 градусовткачатьдни 50 стов50 грпскеруса на180 ракесинаутгаас 90трепошив пероіндрвень горо2. изучите скрипт и составьте блок-схему для данной . [4]​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
nadir1234
17.09.2022 21:52

class Cluster{

vector<POINT> scores;

public:

int curX , curY;//координаты текущего центроида

int lastX, lastY;//координаты предыдущего центоида

size_t Size(){ return scores.size();}//получаем размер вектора

inline void Add(POINT pt){ scores.push_back(pt); }//Добавляем пиксель к кластеру

void SetCenter();

void Clear();//Чистим вектор

static Cluster* Bind(int k, Cluster * clusarr, vector<POINT>& vpt);

static void InitialCenter(int k, Cluster * clusarr , vector<POINT>& vpt);;

static void Start(int k, Cluster * clusarr, vector<POINT>& vpt);

inline POINT& at(unsigned i){ return scores.at(i);}//Доступ к элементам вектора

};

Теперь нам надо реализовать метод которой будет распределять начальные координаты центроидов. Можно конечно сделать чего-нибудь по сложнее, но в нашем случае сойдет и равномерное распределение по вектору:

void Cluster::InitialCenter(int k, Cluster * clusarr, vector<POINT>& vpt){

int size = vpt.size();

int step = size/k;

int steper = 0;

for(int i = 0;i < k;i++,steper+=step){

clusarr[i].curX = vpt[steper].x;

clusarr[i].curY = vpt[steper].y;

}

}

Также нужно написать метод, который будет ответственный за нахождение новых координат центроида в соответствии с пунктом 5.Координаты нового центроида можно найти описав вокруг пикселей кластера прямоугольник и тогда центроидом будет пересечение его диагоналей.

void Cluster::SetCenter(){

int sumX = 0, sumY = 0;

int i = 0;

int size = Size();

for(; i<size;sumX+=scores[i].x,i++);//the centers of mass by x

i = 0;

for(; i<size;sumY+=scores[i].y, i++);//the centers of mass by y

lastX = curX;

lastY = curY;

curX = sumX/size;

curY = sumY/size;

}

void Cluster::Clear(){

scores.clear();

}

И теперь только остался сделать простенький метод самого «привязывания» пикселей к определенному кластеру по принципу сравнения модулей отрезков:

Cluster * Cluster::Bind(int k, Cluster * clusarr, vector<POINT>& vpt){

for(int j = 0; j < k;j++)

clusarr[j].Clear();// Чистим кластер перед использованием

int size = vpt.size();

for(int i = 0; i < size; i++){// Запускаем цикл по всем пикселям множества

int min = sqrt(

pow((float)clusarr[0].curX-vpt[i].x,2)+pow((float)clusarr[0].curY-vpt[i].y,2)

);

Cluster * cl = &clusarr[0];

for(int j = 1; j < k; j++){

int tmp = sqrt(

pow((float)clusarr[j].curX-vpt[i].x,2)+pow((float)clusarr[j].curY-vpt[i].y,2)

);

if(min > tmp){ min = tmp; cl = &clusarr[j];}// Ищем близлежащий кластер

}

cl->Add(vpt[i]);// Добавляем в близ лежащий кластер текущий пиксель

}

return clusarr;

}

И наконец главный цикл:

void Cluster::Start(int k, Cluster * clusarr, vector<POINT>& vpt){

Cluster::InitialCenter(k,clusarr,vpt);

for(;;){//Запускаем основной цикл

int chk = 0;

Cluster::Bind(k,clusarr,vpt);//Связываем точки с кластерами

for(int j = 0; j < k;j++)//Высчитываем новые координаты центроидов

clusarr[j].SetCenter();

for(int p = 0; p<k;p++)//Проверяем не совпадают ли они с предыдущими цент-ми

if(clusarr[p].curX == clusarr[p].lastX && clusarr[p].curY == clusarr[p].lastY)

chk++;

if(chk == k) return;//Если да выходим с цикла

}

}

И что же из этого всего следует?

Вернемся к картинке с машинами, кластеризуя движущиеся объекты возникает проблема при использовании алгоритма к-средних, а именно мы не знаем сколько в данной сцене будет движущихся объектов, хотя можем приблизительно предугадать. Например кадр с машинами, на той сцене разумным будет предположить, что ну максимум там будет машин 10. Таким образом задавая на вход программе k = 10 и обведя точки 10 кластеров зелеными прямоугольниками, мы получим примерно следующую картину:

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

Теги:

c++

кластерный анализ

к-средних

Хабы:

C++

Обработка изображений

0,0(0 оценок)
Ответ:
sveta484
05.06.2022 07:01

Презентація - публічне представлення певної інформації, іншими словами це форма подання інформації.

Комп’ютерні презентації – це електронні документи, які відрізняються комплексним мультимедійним вмістом і особливими можливостями керування відтворенням, набір кольорових слайдів, підготовлених з використанням інформаційних технологій та призначених для розкриття однієї теми.(слайд 4)

Мультимедія - одночасне використання різних форм представлення інформації: тексту, графіки, відео фрагментів, анімації та звуку. Інформаційна технологія, що дозволяє обробляти, зберігати, передавати й відображати текст, звук, відеозображення, графічне зображення й анімацію. (слайд 5)

Сфери використання комп’ютерних презентацій

· Рекламування товарів, послуг;

· Супровід виступів, демонстрація ідей;

· Створення фотоальбомів;

· Наочне подання навчальних матеріалів;

· Контроль знань;

· Керування навчально-пізнавальною діяльністю учнів тощо.

(cлайд 6)

Види ком'ютерних презентацій

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

Слайдові презентації - це набір карток-слайдів з певної теми, що зберігаються у файлі спеціального формату. Слайдова презентація надає можливість інтерактивної взаємодії користувача з презентацією. До цього виду систем опрацювання презентацій відносяться Microsofr Office Power Point, Open Office.org, Powerbullet Presenter, ProShow Producer, Quick Slide Show, MySlideShow, тощо.

Потокові презентації - це презентації, призначені для неперервного показу слайдів за раніше запрограмований час. Потокова презентація фактично є фільмом. Програмами для опрацювання цього виду презентацій є Adobe Flash, Microsoft Movie Maker, AnFX Visual Design, Virtual Tour Builder, тощо. (cлайд 7)

Об'єкти комп'ютерної презентації

Об’єктами комп’ютерної презентації є :

· слайд

· напис

· малюнок

· таблиця

· діаграма

· відеофільм

· аудіозапис

· гіперпосилання

(слайд 8)

Кожен із цих об’єктів має свої властивості з якими ми зараз з вами познайомимося.

Отже, почнемо зі слайду. Слайд – це окремий кадр презентації, що може містити в собі заголовок, текст, порядковий номер, графіку, діаграми, наявність колонтитулів, фон і т.д. (слайд 9)

Напис має такі властивості, як :

Ø Шрифт

Ø Розмір

Ø Колір

Ø Інтервали

Ø Стиль оформлення

Ø Ефекти анімації

(слайд 10)

Властивості малюнку :

Ø Вид

Ø Розмір

Ø Стиль оформлення

Ø Положення

(слайд 11)

Таблиці

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

Таблиця як об'єкт текстового документа має такі властивості:

Ø Розмір таблиці – задається шириною таблиці в сантиметрах або у відсотках від ширини сторінки.

Ø Кількість стовпців і рядків у таблиці.

(слайд 12)

Діаграми

Якщо електронна таблиця містить велику кількість числових даних, то проаналізувати їх (порівняти, оцінити їх зміни з протягом часу, встановити співвідношення між ними тощо) достатньо важко. Провести аналіз великої кількості числових даних значно легше, якщо ці дані зобразити графічно.

Для графічного зображення числових даних використовують діаграми.

Діаграма - це графічне зображення, в якому числові дані подаються у вигляді геометричних фігур.

Кожен з типів діаграм має кілька видів. Їх можна переглянути, а також вибрати один з них, відкривши списки відповідних кнопок на вкладці Вставлення у групі Діаграми або відкривши вікно Вставка діаграми вибором кнопки відкриття діалогового вікна цієї ж групи.

З усіх типів діаграм найчастіше використовують гістограми, графіки, кругові, лінійчаті і точкові діаграми. (слайд 13)

Гіперпосилання

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

Гіперпосилання має вигляд кольорового підкресленого текстового фрагмента. При наведенні на нього, курсор набуває вигляду руки з піднятим пальцем. Текст гіперпосилання можна форматувати та редагувати, як звичайний текст, зокрема вилучати, вирізати, копіювати, уставляти, а також змінювати шрифт, розмір та накреслення тексту.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота