Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление строк и столбцов в динамической матрице c++ https://www.cyberforum.ru/ cpp-beginners/ thread2988295.html
Нужно удалить, например, сначала строку 3 и столбец 2. Это ещё нужно сделать и в динамической матрице. Не могу никак прийти к правильному решению. Пробовала что-то по типу: for( int i=1; i <= n; i++) for( int i=1; i <= n; i++) { if(i>l) (l-номер строки, которую нужно удалить) A=C; (C-элементы матрицы, из которой нужно удалить ) if(i<l) ...
C++ Сложно – списки
Дан указатель Р1 на первый элемент непустого списка. Продублировать в списке все элементы с парными значениями и вывести указатель на последний элемент преобразованного списка.
C++ Составить программу вычисления N значений функций Y для X, изменяющегося от Х1 c шагом dx https://www.cyberforum.ru/ cpp-beginners/ thread2988287.html
Помогите решить задачу, заранее спасибо
C++ Найти количество локальных экстремумов в массиве https://www.cyberforum.ru/ cpp-beginners/ thread2988285.html
Помогите решить задачку, заранее спасибо
C++ Расчет характеристик качества разработки программ по метрикам Холстеда
Разработать алгоритм решения задания в соответствии с вариантом(Составить алгоритм и программу, которые выводят в строку все натуральные простые числа, не превосходящие заданное натуральное трехзначное число М, а также находят количество этих чисел и их сумму.). Реализовать разработанный алгоритм на трёх языках программирования. Для каждой реализации рассчитать метрики качества программы...
C++ Определить предпочтительные элементы файла https://www.cyberforum.ru/ cpp-beginners/ thread2988263.html
Предпочтительным элементом в файле будем называть элемент, который встречается в файле более N/2 раз. Напишите программу, которая определит и отобразит все существующие в файле предпочтительные элементы. Очень нужно, буду благодарен по гроб жизни!
C++ Методы хеширования Помогите исправить программу, во время выполнения всегда пишет НЕ найдено. Условие задания "Дана таблица текстовой базы данных записями: фамилия; имя; отчество; адрес (улица, дом). Произвести хеширование и поиск по адресу (отдельно по названию улицы и по названию улицы и номеру дома)". Вводные данные в прикрепленном файле. Вот мой код: #define _CRT_SECURE_NO_WARNINGS #include <iostream>... https://www.cyberforum.ru/ cpp-beginners/ thread2988262.html C++ Средний объем выпуска продукции, максимальный период (в годах), в течение которого оно непрерывно увеличивало объем
Помогите с заданием, пожалуйста Имеются следующие данные: название предприятия и объемы выпуска продукции за последние 5 лет. Определить для каждого предприятия: 1) средний объем выпуска продукции; 2) максимальный период (в годах), в течение которого оно непрерывно увеличивало объем выпуска продукции. Выполнить сортировку списка. Добавлено через 5 часов 5 минут Это код 1 части, но я ни как...
C++ Массив в классе https://www.cyberforum.ru/ cpp-beginners/ thread2988255.html
Само задание: Ввести класс для работы с прямоугольной матрицей. Реализовать операции: a) ввод матрицы с консоли (оператор >>); b) вывод матрицы на экран или в файл (оператор << ) ; c) доступ к элементу (оператор ); Работа с перегрузкой операторов. Заготовка: #include <iostream>
C++ Структуры.Из файла нужно считать дроби и сложить те, у которых общий числитель Пожалуйста, помогите поправить код. В первой строке файла числитель, во второй слэш, третьей - знаменатель. Нужно разделить пустой строкой дроби, затем сложить те, у которых одинаковый числитель. Не использовать динамические массивы для хранения структур. На примере ниже кода слева файл с входными данными, справа - то, что нужно получить #include <iostream> #include <stdio.h> #include... https://www.cyberforum.ru/ cpp-beginners/ thread2988248.html
Создать бинарный файл с информацией о легковых автомобилях C++
Создать бинарный файл с информацией о легковых автомобилях: - марка автомобиля - производитель - тип автомобиля - год выпуска - стоимость Вывести сведения обо всех автомобилях, срок которых не менее 5 лет и произведённые не в Китае.
C++ дан файл f, компоненты которого около каждой команды напишите за что она отвечает пожалуйста П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. перепечатайте https://www.cyberforum.ru/ cpp-beginners/ thread2988246.html
0 / 0 / 0
Регистрация: 23.05.2022
Сообщений: 7
23.05.2022, 15:58  [ТС] 0

Определить такой порядок переналадки при котором время простоя оборудования минимально - C++ - Ответ 16255810

23.05.2022, 15:58. Показов 334. Ответов 2
Метки (Все метки)

Ответ

я стала решать, как задачу коммивояжера методом ветвей и границ, просто писала программу по алгоритму
есть проблема в том, что я застряла на моменте, где нужно вычеркнуть столбец и строку, ведь там надо ещё сохранить и указатели, то есть если вычёркивать 2 строку и 3 столбец, то указатели строки должны остаться 1345..., а указатели столбца 12456...
далее я хотела использовать while и чтобы он искал эти дуги
вот сам код
#include <bits/stdc++.h>
// ============================================================
using namespace std;
int prompt_menu_item()
{
int variant;
cout << "Выберите вариант\n" << endl;
cout << "1. Ввести числа с клавиатуры\n"
<< "2. Сгенерировать числа\n" << endl;
cout << ">>> ";
cin >> variant;
return variant;
}
//============================================================================
int main()
{
setlocale (LC_ALL, "RUS");
int i, j, n, min, min2, minn=0, min3, min4, k=0, l, f, minn1=0, minn2=0;
int P = std :: numeric_limits<int> :: max();
int variant = prompt_menu_item();
cout << " Введите количество типов деталей: \n";
cin >> n;
cout << "Матрица - "<< n <<" X " << n << endl;
int **E = new int* [n]; // создаём массив указателей
int **D = new int* [n];
int **C = new int* [n];
int **A = new int* [n];
int **B = new int* [n-1];
int **F = new int* [n];
for (int i = 1; i <= n; i++)
{
E[i] = new int [n]; //создаём элементы
D[i] = new int [n];
C[i] = new int [n];
A[i] = new int [n];
F[i] = new int [n];
}
for (int i = 1; i <= n; i++)
{
B[i] = new int [n];
}
switch (variant)
{
case 1:
{
for (int i = 1; i <= n; ++i) // Заполнение матрицы c клавиатуры
{
for (int j = 1; j <= n; ++j)
{
if(i==j)
E[i][j]=P;
else
{
cout<<"Введите элемент["<<i<<"]["<<j<<"]: \n";
cin>>E[i][j];
}
}
cout << endl;
}
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= n; ++j)
cout << E[i][j] << " "; //выводим матрицу
cout<<endl;
}
}
break;

case 2:
{
srand(time(NULL));
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
if(i==j)
E[i][j]=P;
else
E[i][j] = rand() % n*n+1; //заполняем матрицу случайными элементами
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
cout << E[i][j] << " "; //выводим матрицу
cout<<endl;
}
}
break;
default:
cout << "Вы выбрали неверный вариант" << endl;
exit(EXIT_FAILURE);
}
//==========================================================================
for(int i = 1;i <= n; i++) //находим матрицу, приведённую по строкам
{
min=E[i][1];
for(int j = 1;j <= n; j++)
if(E[i][j] < min)
min=E[i][j];
minn+=min; //находим константу приведения, меньше которой
for(int j = 1;j <= n; j++) //невозможно построить искомый маршрут
D[i][j]=E[i][j]-min;
}
cout<<"\nМатрица, приведённая по строкам:\n\n";
for(int i = 1;i <= n ; i++)
{
for(int j = 1;j <= n; j++)
cout << D[i][j] << " ";
cout<<endl;
}
//================================================================================
for(int j = 1;j <= n;j++) //находим матрицу, приведённую по столбцам
{
min2 = D[1][j];
for(int i = 1;i <= n; i++)
if(D[i][j] < min2)
min2 = D[i][j];
minn+=min2;
for(int i = 1;i <= n; i++)
C[i][j] = D[i][j] - min2;
}
cout<<"\nМатрица, приведённая по столбцам:\n";
for(int i = 1;i <= n; i++)
{
for(int j = 1;j <= n; j++)
cout << C[i][j] << " ";
cout<<endl;
}
cout<<"\nКонстанта приведения: " << minn; //выводим константу приведения
//================================================================================ ===111111
for(int i = 1;i <= n; i++) //находим степени нулевых элементов
for(int j = 1;j <= n; j++) //приведённой матрицы(суммы минимумов по строке и столбцу)
{
if (C[i][j]==0)
{
min3 = C[i][1];
for(int m = 2; m <= n; m++)
if( min3 > C[i][m] && m!=j)
min3 = C[i][m];
min4=C[1][j];
for(int m = 2;m <= n; m++)
if( min4 > C[m][j] && m!= i)
min4 = C[m][j];
if( min3+min4 > k || min3+min4 == k) //находим наибольшую степень нулевого элемента
{ //и координаты дуги, по которой мы будем проводить ветвление
k = min3 + min4;
l=i;
f=j;
}
}
}
for(int i = 1;i <= n; i++)
for(int j = 1;j <= n; j++)
A[i][j]=C[i][j];
cout << "\nНаибольшая степень нуля:" << k;
cout << "\nВетвление проводим по дуге:" << "(" << l <<"," << f << ")";
//================================================================================ ========
//исключаем ребро (l,f)
for(int i = 1;i <= n; i++) //находим минимальное по строкам
{
if(i==l)
{
min=C[i][1];
for(int j = 1;j <= n; j++)
{
if(j==f)
A[i][j]=P;
if(C[i][j] < min )
min=C[i][j];
}
minn1+=min;
}
}
for(int j = 1;j <= n;j++) //находим минимальное по столбцам
{
if(j==f)
{
min2 = C[1][j];
for(int i = 1;i <= n; i++)
if(i==l)
A[i][j]==P;
if(C[i][j] < min2 )
min2 = C[i][j];
minn1+=min2;
}
}
cout<<"\nМатрица, после исключения ребра:\n";
for(int i = 1;i <= n; i++)
{
for(int j = 1;j <= n; j++)
cout << A[i][j] << " ";
cout<<endl;
}
cout<<"\nСумма констант: " << minn1; //выводим константу приведения
minn1+=minn;
cout<<"\nКонстанта приведения без ребра: " << minn1;
//================================================================================ ===
//включаем ребро (l,f)
return 0;
}
Выход:
Выберите вариант

1. Ввести числа с клавиатуры
2. Сгенерировать числа

>>> 2
Введите количество типов деталей:
4
Матрица - 4 X 4
2147483647 13 1 1
5 2147483647 9 1
5 13 2147483647 9
13 13 1 2147483647

Матрица, приведённая по строкам:

2147483646 12 0 0
4 2147483646 8 0
0 8 2147483642 4
12 12 0 2147483646

Матрица, приведённая по столбцам:
2147483646 4 0 0
4 2147483638 8 0
0 0 2147483642 4
12 4 0 2147483646

Константа приведения: 16
Наибольшая степень нуля:4
Ветвление проводим по дуге: (4,3)
Матрица, после исключения ребра:
2147483646 4 0 0
4 2147483638 8 0
0 0 2147483642 4
12 4 2147483647 2147483646

Сумма констант: 0
Константа приведения без ребра: 16

Вернуться к обсуждению:
Определить такой порядок переналадки при котором время простоя оборудования минимально C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2022, 15:58
Готовые ответы и решения:

Необходимо определить маршрут белого коня с поля (Х1,У1) на поле (Х2,У2), при котором количество его ходов минимально
Имеется шахматная доска. Некоторые поля не ней заняты белыми и черными фигурами и пешками. Каждая...

Определить, при каком законе распределения ST(1), среднее время ожидания системы минимально
Определить, при каком законе распределения ST(1), среднее время ожидания системы минимально, если:...

Определить порядок ремонта станков так, чтобы потери от их простоя были минимальными
Помогите решить. В начале смены мастер обнаружил n неисправных станков. Предварительный их осмотр...

Определить время простоя компьютера
Воникла проблемка, надо узнать время простоя компьютера. Как это узнает Windows/ Поигрался...

2
23.05.2022, 15:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2022, 15:58
Помогаю со студенческими работами здесь

Определить время простоя станка
Всем привет! В задаче имеется входной конвеер, робот, многоканальное устройство и выходной...

Определить время простоя системы на 64 битной системе
Знаю, щас будете перенаправлять меня на поиск и другие темы, но ситуация немного специфическая....

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

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

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

Определить номер столбца прямоугольной матрицы, в котором число элементов, больших М, минимально
Определить номер столбца прямоугольной матрицы, в котором число элементов, больших М, минимально.

время простоя при создании нового пользователя
после создания нового пользователя система ждёт какоето время а токо потом разрешает этому...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru