Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 4

Как изменить код что бы параметр W и n в водился с руки?

29.03.2016, 01:25. Показов 551. Ответов 0

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
    #include <ctime>
    #include <clocale>
    #include <iomanip>
    #include <cmath>
    using namespace std;
    //грузоподъемность судна (W>0)
    #define W 60
    //количество наименований груза (n>0)
    #define n 20
    //находит сумму произведений попарных элементов двух векторов
    unsigned short sumProizv(unsigned short a[n], unsigned short b[n]) {
    unsigned short res = 0;//для хранения результата
    for (int i=0; i<n; i++) res += a[i]*b[i];
    return res;
    }
    int main() {
    if (W<1) {
     cout << "Ошибка: W<1" << endl;
     system("pause");
    return 1;
     }
     clock_t jobTime;//время работы программы
     jobTime = clock();
     setlocale(LC_ALL,"Russian_Russia.1251");
     cout << endl << "грузоподъемность судна=" << W << endl;
     srand((unsigned int)time(0));//привязка генерации псевдослучайных величин ко времени
    unsigned short w[n]={0};//инициализируем нуями вектор для хранения веса груза
    unsigned short c[n]={0};//... цены груза
    unsigned short m[n]={0};// ... количества груза к погрузке по каждому наименованию
    unsigned short bestM[n]={0};// ... ответа
    unsigned short maxC = 0;// максимально возможная прибыль
    unsigned short maxW = 0;// вес взятый к погрузке
    unsigned long int numVariants = 1;//число вариантов погрузки
    //заполняем случайными числами w и c
    for (int i=0;i<n;i++) {
     w[i]=rand()/1000+10; c[i]=rand()/1000+10;
     }
    //определяем число вариантов погрузки
    for (int i=0;i<n;i++) numVariants*=(W/w[i]+1);
     cout << "число вариантов " << numVariants << endl; 
     unsigned long int step = 0;//счетчик итераций
double progress = numVariants*0.01;//1% от количества вариантов
while (m[0]<=W/w[0]) {//выполняем расчет для всех возможных вариантов
 step++;// наращиваем счетчик
unsigned short price = 0, weight = 0;//цена и вес груза
 price = sumProizv(c, m);
 weight = sumProizv(w, m);
//если найдено новое оптимальное решение, то перезаписываем ответ
if (((price==maxC)&&(maxW>weight))||((price>maxC)&&(weight<=W))) {
 maxC = price;//запоминаем новое максимальное значение прибыли
 maxW = weight;//запоминаем новый вес товара к погрузке
for (int i=0; i<n; i++) bestM[i] = m[i];// копируем вектор с новым решением
 }
//здесь реализован перебор всех возможных вариантов загрузки судна
if ((m[n-1]<W/w[n-1])||(n==1)) m[n-1]++;
else {
for (short i=0; i<n-1;i++) {
bool flag = true; //логическая переменная флаг
for (short k=i+1;k<n;k++) if (m[k]!=W/w[k]) flag=false;
if (flag) {
 m[i]++;
for (short k=i+1;k<n;k++) m[k]=0;
break;
 }
 }
 }
if (step%(unsigned long int)progress==0) cout << "\r" << 100*step/numVariants << "%";
 }
 cout << endl;
for (int i=0;i<n;i++) {//вывод массивов на экран
 cout << setw(3+(short)log10((double)n)-(short)log10((double)i)) //форматируем вывод, выравниваем столбцы
 << "w[" << i << "]= " << w[i] << " " //выводим w
 << setw(3+(short)log10((double)n)-(short)log10((double)i)) //форматируем вывод, выравниваем столбцы
 << "c[" << i << "]= " << c[i] << " "//выводим c
 << "m[" << i << "]= " << bestM[i] << endl;//выводим m
 }
//вывод остальных результатов
 cout << endl << "максимальная прибыль=" << maxC << endl;
 cout << endl << "вес товара к погрузке=" << maxW << endl;
 jobTime = clock() - jobTime;//время в тактах микропроцессора
 cout << "время работы программы: " << (double)jobTime/CLOCKS_PER_SEC << " с" << endl;
 system("pause");
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2016, 01:25
Ответы с готовыми решениями:

Как изменить код так, что бы путь к файлу задавался с клавиатуры?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

Как изменить код что бы можно было вручную писать числа самому!
Как изменить код что бы можно было вручную писать числа самому! import java.util.Arrays; public class Returnnnn { public...

Нужно изменить код, что бы полукожа выглядела как кожа, тоесть создать отражение
void DrawPk(TPaintBox *PaintBox1, int i) //метод прорисовки { PaintBox1-&gt;Refresh(); Ox = iPosX, Oy =...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2016, 01:25
Помогаю со студенческими работами здесь

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

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

Мышь Bloody V7. Как возможно изменить время мигания "руки"?
Всем доброго времени суток! Есть, собственно, вышеназванная мышь и идея. Если не знакомы с этой мышью, поясню: на ней есть изображение...

Как изменить параметр процедуры?
Вот такая примерно программа и процедура в ней Program test(input,output); procedure test1(var a1); begin asm ...

Как изменить не отображаемый параметр?
Всем снова привет. Помогите пожалуйста, объясните пожалуйста как мне у объекта (Rectangle) изменить внутренний параметр &quot;Left&quot;?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru