М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Dindonn
Dindonn
13.05.2020 02:38 •  Информатика

Составить блок-! к финалу конкурса лучшего по профессии «специалист электронного офиса» были допущены трое: иванов, петров, сидоров. соревнования проходили в три тура. иванов в первом туре набрал m1 , во втором n1, в третьем-p1. петров –m2,n2,p2: соответственно сидоров – m3,n3,p3. составить программу, определяющую, сколько набрал победитель.

👇
Ответ:
maksus1608
maksus1608
13.05.2020

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

Сначала мы вводим эти самые , потом складываем. Далее Sort3(Iv,Pet,Sid) - это функция. Если вы не знакомы с функциями, то просто перерисуйте вместо этого укрупненного блока все, что на следующей странице, вместо переменных а, в и с подставляя те переменные, которые вы используете для хранения суммы участников. 

Что делает функция Sort3: он сортирует по убыванию значения, хранящиеся в переменных а,в и с. После чего для того, чтобы получить максимальное значение, нам достаточно вывести первый элемент - а. Функция Swap  выполняет обмен значений переменных. Sort2 - сортирует два элемента. Она вс для Sort3. 

В основной программе вместо переменных а,в и с использовались переменные Iv, Pet и Sid. При неиспользовании функций подставляйте их. 

Можно использовать простые развилки и не заморачиваться с Sort3, но выходит неэффективно, некрасиво.При увеличении числа участников количество развилок вырастет в несколько раз - оно вам надо? Проще отсортировать. 

 

4,8(67 оценок)
Открыть все ответы
Ответ:
ajselaskerova
ajselaskerova
13.05.2020
Хорошо, давайте начнем с создания абстрактного класса Point. Абстрактный класс - это класс, который не может быть создан сам по себе, а может только служить базовым классом для других классов. Он имеет хотя бы одну виртуальную функцию, и мы не можем создавать экземпляры (объекты) этого класса непосредственно.

```c++
#include
using namespace std;

class Point {
protected:
int x; // координата x
int y; // координата y
public:
virtual void setCoordinates(int x, int y) = 0; // абстрактная функция установки координат
virtual void getCoordinates() = 0; // абстрактная функция получения координат
virtual void setColor(string color) = 0; // абстрактная функция установки цвета
virtual string getColor() = 0; // абстрактная функция получения цвета
virtual ~Point() {} // виртуальный деструктор
};
```

Здесь мы объявили класс Point с двумя защищенными переменными x и y, представляющими координаты точки. Затем мы объявляем четыре виртуальных функции: `setCoordinates`, `getCoordinates`, `setColor` и `getColor`. Эти функции будут переопределены в производных классах, чтобы обрабатывать соответствующие значения.

Далее, давайте создадим класс ColoredPoint, который наследуется от класса Point:

```c++
class ColoredPoint : public Point {
private:
string color; // цвет точки
public:
void setCoordinates(int x, int y) override { // переопределение функции установки координат
this->x = x;
this->y = y;
}

void getCoordinates() override { // переопределение функции получения координат
cout << "Coordinates: (" << x << ", " << y << ")" << endl;
}

void setColor(string color) override { // переопределение функции установки цвета
this->color = color;
}

string getColor() override { // переопределение функции получения цвета
return color;
}
};
```

В классе ColoredPoint мы добавляем дополнительную переменную color для представления цвета точки. Мы также переопределяем все четыре виртуальные функции класса Point.

Теперь давайте создадим класс Line, который также наследуется от класса Point:

```c++
class Line : public Point {
protected:
int x2; // вторая координата x
int y2; // вторая координата y
public:
void setCoordinates(int x1, int y1, int x2, int y2) { // функция установки координат линии
this->x = x1;
this->y = y1;
this->x2 = x2;
this->y2 = y2;
}

void getCoordinates() { // функция получения координат линии
cout << "Coordinates: (" << x << ", " << y << ") - (" << x2 << ", " << y2 << ")" << endl;
}

void setColor(string color) override { // переопределение функции установки цвета
cout << "Setting color of line to: " << color << endl;
}

string getColor() override { // переопределение функции получения цвета
// здесь могут быть дополнительные действия, но в данном примере возвращаем пустую строку
return "";
}
};
```

В классе Line мы добавляем две дополнительные переменные (x2 и y2) для представления вторых координат линии. Мы также переопределяем функции установки и получения координат.

Теперь создадим класс ColoredLine, который наследуется от класса Line:

```c++
class ColoredLine : public Line {
private:
string color; // цвет линии
public:
void setCoordinates(int x1, int y1, int x2, int y2) { // переопределение функции установки координат линии
this->x = x1;
this->y = y1;
this->x2 = x2;
this->y2 = y2;
}

void getCoordinates() { // переопределение функции получения координат линии
cout << "Coordinates: (" << x << ", " << y << ") - (" << x2 << ", " << y2 << ")" << endl;
}

void setColor(string color) { // переопределение функции установки цвета линии
this->color = color;
cout << "Setting color of line to: " << color << endl;
}

string getColor() { // переопределение функции получения цвета линии
return color;
}
};
```

В классе ColoredLine мы снова добавляем переменную color для представления цвета линии. Мы также переопределяем функции установки и получения координат, а также функции установки и получения цвета.

Теперь давайте создадим класс PolyLine, который также наследуется от класса Line:

```c++
class PolyLine : public Line {
public:
// для многоугольника можно использовать функции класса Line
};
```

Класс PolyLine наследует все функции и переменные от класса Line, поскольку многоугольник - это всего лишь линия с более чем двумя точками.

Далее создадим класс Picture, который содержит массив/параметризованную коллекцию объектов классов Point, ColoredPoint, Line, ColoredLine и PolyLine в динамической памяти. Мы также предусмотрим возможность вывода характеристик объектов списка:

```c++
#include

class Picture {
private:
vector objects; // коллекция указателей на объекты
public:
void addObject(Point* object) { // функция добавления объекта
objects.push_back(object);
}

void printObjects() { // функция печати объектов
for (const auto& object : objects) {
object->getCoordinates();
object->setColor("red");
cout << endl;
}
}
};
```

В классе Picture мы используем параметризованную коллекцию `vector`, чтобы хранить указатели на объекты класса Point. Мы добавляем функцию `addObject`, которая добавляет объекты в коллекцию. Мы также добавляем функцию `printObjects`, которая выводит характеристики объектов в коллекции, вызывая соответствующие функции установки цвета и получения координат.

Теперь давайте создадим демонстрационную программу для использования всех методов классов:

```c++
int main() {
Picture picture;

Point* coloredPoint = new ColoredPoint();
coloredPoint->setCoordinates(1, 1);
coloredPoint->setColor("blue");
picture.addObject(coloredPoint);

Line* coloredLine = new ColoredLine();
coloredLine->setCoordinates(1, 1, 2, 2);
coloredLine->setColor("green");
picture.addObject(coloredLine);

Line* polyLine = new PolyLine();
polyLine->setCoordinates(1, 1, 2, 2);
picture.addObject(polyLine);

picture.printObjects();

delete coloredPoint;
delete coloredLine;
delete polyLine;

return 0;
}
```

В этой программе мы создаем объект класса Picture и добавляем в него объекты разных типов (ColoredPoint, ColoredLine и PolyLine). Мы также вызываем функцию `printObjects` для вывода их характеристик. Затем, после завершения программы, мы освобождаем память, выделенную для объектов.

Дополнительное задание предлагает добавить классу Picture методы сортировки по некоторому критерию, вывода в файл и считывания из файла. Ниже приведены примеры этих методов:

```c++
#include
#include

bool compareByX(Point* a, Point* b) { // функция сравнения по координате x
return a->x < b->x;
}

void Picture::sortObjectsByX() { // функция сортировки объектов по координате x
sort(objects.begin(), objects.end(), compareByX);
}

void Picture::saveToFile(const string& filename) { // функция сохранения объектов в файл
ofstream file(filename);

if (file.is_open()) {
for (const auto& object : objects) {
file << "(" << object->x << ", " << object->y << ")" << endl;
}

file.close();
}
}

void Picture::loadFromFile(const string& filename) { // функция загрузки объектов из файла
ifstream file(filename);

if (file.is_open()) {
int x, y;
while (file >> x >> y) {
Point* point = new ColoredPoint();
point->setCoordinates(x, y);
addObject(point);
}

file.close();
}
}
```

Мы добавляем функцию `compareByX`, которая сравнивает две точки по координате x. Затем мы добавляем методы `sortObjectsByX`, `saveToFile` и `loadFromFile` в класс Picture. `sortObjectsByX` сортирует объекты в коллекции по координате x. `saveToFile` сохраняет все объекты в файл в формате `"(x, y)"`. `loadFromFile` загружает объекты из файла и добавляет их в коллекцию.

Теперь у нас есть полноценная программа, которая создает и использует классы Point, ColoredPoint, Line, ColoredLine, PolyLine и Picture, а также предоставляет возможность сортировки объектов, сохранения их в файл и загрузки из файла.
4,6(92 оценок)
Ответ:
fggyhuhgyg
fggyhuhgyg
13.05.2020
Добрый день! Конечно, я готов выступить в роли школьного учителя и объяснить вам разницу между созданием запроса для одной и нескольких таблиц, а также рассказать алгоритм создания запроса на выборку данных.

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

1. Создание запроса для одной таблицы:
Когда вы создаете запрос для одной таблицы, вы указываете саму таблицу, а также нужные поля (столбцы) из нее. Например, если в базе данных есть таблица "Студенты" с полями "Имя", "Возраст", "Группа", чтобы создать запрос, который выведет только имена студентов, вы можете использовать следующий код на языке SQL:

SELECT Имя FROM Студенты;
Этот запрос вернет только имена всех студентов из таблицы "Студенты".

2. Создание запроса для нескольких таблиц:
Когда нужно создать запрос для нескольких таблиц, это означает, что вернуться будут данные из двух или более таблиц, объединенных по определенным условиям. Для этого используется оператор JOIN. Например, допустим, у нас есть две связанные таблицы "Студенты" и "Группы", где таблица "Группы" содержит информацию о группе студента. Чтобы создать запрос, который вернет имена студентов и названия их групп, можно использовать следующий код:

SELECT Студенты.Имя, Группы.Название
FROM Студенты
JOIN Группы ON Студенты.Группа = Группы.ГруппаID;
Этот запрос объединяет таблицы "Студенты" и "Группы" по полю "Группа" и выводит имена студентов и названия соответствующих групп.

Алгоритм создания запроса на выборку данных можно представить в следующих шагах:

1. Определите, какие данные вам необходимо получить из таблицы (или таблиц).
2. Укажите таблицу или таблицы, из которых нужно получить данные.
3. Если нужно отфильтровать данные по определенным условиям, напишите условия с помощью операторов сравнения (например, "=", ">", "<" и т.д.).
4. Если нужно объединить несколько таблиц, используйте оператор JOIN и указывайте условия объединения.
5. Укажите, какие поля вы хотите получить в результате запроса (используя оператор SELECT).

Вот и все! Теперь вы знаете разницу между созданием запроса для одной и нескольких таблиц, а также простой алгоритм создания запроса на выборку данных.
4,8(49 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ