![]() |
задача по сортировке.помогите
Вложений: 1
доброго времени суток. помогите пожалуйста мне, дурачку, решить задачу. суть: имеется 5-ти ступенчатый карданный вал и картер к нему. между картером и валом 5 пар вкладышей-верхних и нижних. нужно автоматизировать подбор этих вкладышей, чтобы износ был минимальный (грубо говоря-чтобы в размер зазора между картером и валом идеально вписывался вкладыш). [если по рисунку-чтобы (для 1-й опоры вала) 3 и 4 идеально вписывались в зазор]. верхний и нижний - разные массивы. размеры все вводим с клавы. в с++ или паскале. очень прошу,-выручите. обещаю выучить как сдам. чес слово
ps:для того чтобы было понятно-есть куча вкладышей. как подобрать именно тот, чтобы он идеально подходил куда нужно.размеры брать примерные,исходя из чертежа. мне главное понять сам алгоритм сортировки(вводим все данные и программа выбирает именно тот вкладыш, который подходит в зазор).заранее благодарен |
сортировки там и близко нет... короче, лови код (на Java, правда, но перевести в С++ проблем не будет), разбирайся...
Код:
package test; Код:
0. Картер = 100.0, вал = 95.0, лучшая пара (В/Н): 0/2(2.0+3.0), зазор = 0.0 |
BorLase, большое человеческое спасибо. единственный вопрос-если я вкладышей введу не 5, а больше-программа работать будет?
добавлено через 1 минуту а вот еще-когда выдает ответ по лучшей паре, как учесть что один вкладыш можно только один раз использовать, т.е. как исключить повторения? и почему при расчете зазора мы суммируем верхний и нижний вкладыши,один же устанавливается наверх, другой вниз, т.е. если зазор 13 то при установке вкладыша верхнего 7 и ниженего 6,-зазор будет 6 и 7 сответственно? заранее благодарен |
Цитата:
т.е. если количество вкладышей будет произвольным - тогда тебе понадобятся отдельные константы для циклов и таблицы matrix (а не единая t.SIZE). Код:
for (int iV = 0; iV < t.SIZE; iV++) Цитата:
Цитата:
|
проблема в том что установливаем вкладыш вверх и вниз, почему их зазор суммируется как будто они установлены вместе
|
Цитата:
=============== насколько я понимаю - есть картер с дыркой, к примеру, 15; вал - 10. вкладыши устанавливаются вокруг вала - один сверху, другой снизу мы должны подобрать пару вкладышей так, чтобы зазор был нулевым - т.е. толщина верхнего + нижнего должны давать в сумме 5 собственно, именно это задача и делает |
Если сверху и снизу только по одному вкладышу, тогда
void init() тебе вообще ненужен. этот код убери for (int iV = 0; iV < t.SIZE; iV++) ... minV = iV; minN = iN; } заместо него поставь этот : for (int iV = 0; iV < t.SIZE; iV++) if (zazor - t.vtulkaV[iV] >= 0 && zazor - t.vtulkaV[iV] < min) { min = zazor - t.vtulkaV[iV]; minV = iV; } for (int iN = 0; iN < t.SIZE; iN++) if (zazor - t.vtulkaN[iN] >= 0 && zazor - t.vtulkaN[iN] < min2) { min2 = zazor - t.vtulkaN[iN]; minN = iN; } min2 определить также как min. Код не проверял но должно получиться примерно так. Это если суммировать ненужно. |
EvroStandart, ты забыл добавить еще выбор меньшего из min и min2
но, вообще, исходя из рисунка и здравого смысла - должна подбираться пара |
Часовой пояс GMT +4, время: 11:50. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.