В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
StehnkaSova
StehnkaSova
07.12.2021 22:12 •  Информатика

В произвольно заданном одномерном массиве определить количество смен знака. Нулевые элементы не учитывать. Pascal

Показать ответ
Ответ:
lotop
lotop
12.01.2022 11:12

Опубликовал решение на PasteBin и тут, поскольку суда криво копируются символы таба, и потом нельзя нормально скопировать код. https://pastebin.com/kWSChLsh

#include <algorithm>

#include <iostream>

#include <string>

#include <vector>

using namespace std;

struct State {

vector<pair<string, int>> candidates; // кандидаты в этом штате

string state; // название штата

int weight; // "вес" штата

State(string state = " ", int weight = 0) : state(state), weight(weight) {

}

void vote(string candidate) { // принимаем голос избирателя

 if (candidates.size() == 0) {

  candidates.push_back({ candidate, 1 });

  return;

 }

 for (int i = 0; i < candidates.size(); ++i) {

  if (candidates[i].first == candidate) {

   ++candidates[i].second;

   break;

  }

  else if (i == candidates.size() - 1) {

   candidates.push_back({ candidate, 0 });

  }

 }

}

string getResultOfElections() {

 if (candidates.size() == 1) {

  return candidates[0].first;

 }

 sort(candidates.begin(), candidates.end(), // сортировка по голосам

  [](pair<string, int>& a, pair<string, int>& b) {

   return (a.second > b.second);

  });

 int last = -1;

 for (int i = 1; i < candidates.size(); ++i) { // убираем проигравших

  if (candidates[i].second != candidates[0].second) {

   last = i;

   break;

  }

 }

 if (last != -1)

  candidates.erase(candidates.begin() + last);

 sort(candidates.begin(), candidates.end(), // лексографическая сортировка

  [](pair<string, int>& a, pair<string, int>& b) {

   return strcmp(a.first.c_str(), b.first.c_str()) < 0;

  });

 return candidates[0].first; // победитель

}

};

int main() {

setlocale(LC_ALL, "Russian");

cout << "Введите количество штатов: ";

vector<State> states;

int nOfStates = 0;

cin >> nOfStates;

cin.ignore();

cout << "Введите данные о состоянии штатов в формате Название_штата Значимость_Штата: ";

for (int i = 1; i <= nOfStates; ++i) {

 string input, buffer, name, weight;

 getline(cin, input);

 name = input.substr(0, input.find(' '));

 weight = input.substr(input.find(' '));

 states.push_back(State(name, stoi(weight)));

}

cout << "Количество голосов: ";

int nOfVotes = 0;

cin >> nOfVotes;

cin.ignore();

cout << "Данные о голосах в формате Штат Кандидат: ";

for (int i = 0; i < nOfVotes; ++i) {

 string input, state, candidate;

 getline(cin, input);

 state = input.substr(0, input.find(' '));

 candidate = input.substr(input.find(' ') + 1);

 for (int j = 0; j < nOfStates; ++j) {

  if (states[j].state == state) {

   states[j].vote(candidate);

  }

 }

}

vector<pair<string, int>> winners;

for (int i = 0; i < states.size(); ++i) {

 string result = states[i].getResultOfElections();

 if (winners.size() == 0) {

  winners.push_back({ result, states[i].weight });

  continue;

 }

 for (int j = 0; j < winners.size(); ++j) {

  if (winners[j].first == result) {

   winners[j].second += states[i].weight;

   break;

  }

  else if (j == winners.size() - 1) {

   winners.push_back({ result, 0 });

  }

 }

}

cout << endl;

for (int i = 0; i < winners.size(); ++i) {

 cout << winners[i].first << " " << winners[i].second << endl;

}

}

0,0(0 оценок)
Ответ:
Kotik210
Kotik210
08.03.2022 17:04

Черви, Вирусы-маскировщики, Вирусы – шпионы, Зомби, Рекламные вирусы, Вирусы – блокировщики, Троянские вирусы

Объяснение:

Черви — Worm

Червь  – программа, которая делает копии самой себя. Ее вред заключается в захламлении компьютера, из-за чего он начинает работать медленнее. Отличительной особенностью червя является то, что он не может стать частью другой безвредной программы.

Вирусы-маскировщики — Rootkit

Эти вирусы используются для сокрытия вредоносной активности. Они маскируют вредоносные программы, чтобы избежать их обнаружения антивирусными программами. Rootkit'ы также могут модифицировать операционную систему на компьютере и заменять основные ее функции, чтобы скрыть свое собственное присутствие и действия, которые предпринимает злоумышленник на зараженном компьютере.

Вирусы – шпионы — Spyware

Шпионы собирают информацию о действиях и поведении пользователя. В основном их интересует информация — адреса, пароли, данные кредитных карт).

Зомби — Zombie

Зомби позволяют злоумышленнику управлять компьютером пользователя. Компьютеры – зомби могут быть объединены в сеть —бот-нет) и использоваться для массовой атаки на сайты или рассылки спама. Пользователь может даже не догадываться, что его компьютер зомбирован и используется злоумышленником.

Рекламные вирусы — Adware

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

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

Троянские вирусы — Trojan

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

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