Забор Что можно написать на заборе? Да все, что угодно!
Ответить
Перейти к новому Перейти к новому   Опции темы Опции просмотра
Помогите решить задачу используя Excell | by Grisha_T34
Непрочитано 04.06.2010, 12:18   # 1
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
По умолчанию Помогите решить задачу используя Excell
Суть такая: Нужно посчитать число зубьев на 4 зубчатых колесах исходя из того что мы знаем их передаточное соотношение. Другими словами (извесное число)=(a/b)*(c/d) числа a b c d могут выбираться из ряда данных 23 24 25 30 35 36 37......45.....72.....79.......(если нужно могу написать весь ряд чисел) одно условие a<b и c<d

например известно чило 0,2927 нужно подобрать a b c d (45/72)*(37/79)=0,2927
Цитата
Непрочитано 04.06.2010, 12:59   # 2
 
Аватар для rastayak
 
Регистрация: 24.10.2006
Адрес: Сходня\Зеленоград
Возраст: 35
Сообщений: 2,428
Записей в дневнике: 4
Байк: Echo 8 кг
Отправить сообщение для rastayak с помощью ICQ
rastayak вне форума
Для станка с ПУ что-ли?
Цитата
Непрочитано 04.06.2010, 13:18   # 3
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
нее, станок без ПУ, тетка каждый раз считает вручную и подбирает шестерни что бы дать данные токарю что бы тот все настроил и нарезал зубья на косозубых шестернях... хз точного ответа не дали мне
Цитата
Непрочитано 04.06.2010, 13:28   # 4
 
Аватар для rastayak
 
Регистрация: 24.10.2006
Адрес: Сходня\Зеленоград
Возраст: 35
Сообщений: 2,428
Записей в дневнике: 4
Байк: Echo 8 кг
Отправить сообщение для rastayak с помощью ICQ
rastayak вне форума
В общем там такая тема может быть, что там два вала на станке - один делает за весь цикл один оборот(на нем вешаются разные инструменты и операции(подача, отрезание и так далее)), другой - "много" оборотов, так вот и там есть какой-то редуктор, он передачу понижает или повышает в два раза, я уже не помню точно. В общем с расчетом количества зубцов там не так все просто, как на первый взгляд кажется, ты лучше подробнее узнай на всякий случай.
Не револьверный станок случаем?
Про ПУ - он без компа может быть.
Цитата
Непрочитано 04.06.2010, 13:45   # 5
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
Я же написал что нужно получить. все условия даны остальное не колышит.
нужно подобрать числа чтобы получилось заданное число.

Отбросим то что это будет станок, пусть это просто задачка
Цитата
Непрочитано 04.06.2010, 14:24   # 6
 
Аватар для egblob
 
Регистрация: 31.01.2007
Адрес: Новосибирск
Сообщений: 2,834
Записей в дневнике: 5
egblob вне форума
Могу на сях полным перебором быстренько решить, если весь ряд чисел дашь.
В экселе хз, может быть скрипт писать надо. Ваще, эту задачу легко можно было бы свести к задаче целочисленного программирования, если бы в ряде все числа шли с разницей в 1.
Про целочисленное программирование смотреть симплекс-метод и метод Гомори.
Цитата
Непрочитано 04.06.2010, 14:31   # 7
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
ммм. а то что ты на си сделаешь как потом можно будет использовать??? (извесное число бывает разным)=(a/b)*(c/d)

ну а так нужно что бы с извесным чилом наш подбор совпадал до 5 знака после запятой

вот числа 23 24 25(2шт) 30 35 36 37 40 41 43 45 47 48 50 53 54(2шт) 55 58 59 60 61 62 65 66 67 70 71 72 73 74 75 78 79 80 81 83 84 85 86 89 90 92 94 97 99 100

числа не доджны повторяться в одном выражении за исключением тех которых подписано что 2 шт

ну и a<b c<d больше условий нет
Цитата
Непрочитано 04.06.2010, 14:35   # 8
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
если напряг то не делай
Цитата
Непрочитано 04.06.2010, 15:07   # 9
 
Аватар для egblob
 
Регистрация: 31.01.2007
Адрес: Новосибирск
Сообщений: 2,834
Записей в дневнике: 5
egblob вне форума
Цитата:
Сообщение от Grisha_T34 Посмотреть сообщение
ммм. а то что ты на си сделаешь как потом можно будет использовать??? (извесное число бывает разным)=(a/b)*(c/d)

ну а так нужно что бы с извесным чилом наш подбор совпадал до 5 знака после запятой

вот числа 23 24 25(2шт) 30 35 36 37 40 41 43 45 47 48 50 53 54(2шт) 55 58 59 60 61 62 65 66 67 70 71 72 73 74 75 78 79 80 81 83 84 85 86 89 90 92 94 97 99 100

числа не доджны повторяться в одном выражении за исключением тех которых подписано что 2 шт

ну и a<b c<d больше условий нет
Ну прога будет, задаешь туда число, она тебе лучший вариант. 5-й знак не проблема, если такое сочетание в принципе возможно. Будет выбираться самое близкое значение.
Щас наколбашу.)
Цитата
Непрочитано 04.06.2010, 16:50   # 10
 
Аватар для egblob
 
Регистрация: 31.01.2007
Адрес: Новосибирск
Сообщений: 2,834
Записей в дневнике: 5
egblob вне форума
Вот такой код. Без особых хитростей. Любой компилятор должен собрать.
Gear gears[] = {{23, 1}, {24, 1},...} - это, как можно догадаться, число зубов и количество таких колес. Если захочешь добавить еще элементов, следи, чтобы числа зубов шли по возрастанию, это важно.
Различия с твоим примером в 7 знаке после запятой вылезли из-за ошибок округления похоже, быстро победить не получилось че-то.
Особо не тестил, но вроде как работает.

Код:
#include <conio.h>
#include <math.h>
#include <iostream>

struct Gear
{
    int teeth;
    int amount;
};


int main(int argc, char *argv[])
{
    Gear gears[] =
    {{23, 1}, {24, 1}, {25, 2}, {30, 1}, {35, 1}, {36, 1}, {37, 1}, {40, 1}, {41, 1}, {43, 1},
     {45, 1}, {47, 1}, {48, 1}, {50, 1}, {53, 1}, {54, 2}, {55, 1}, {58, 1}, {59, 1}, {60, 1},
     {61, 1}, {62, 1}, {65, 1}, {66, 1}, {67, 1}, {70, 1}, {71, 1}, {72, 1}, {73, 1}, {74, 1},
     {75, 1}, {78, 1}, {79, 1}, {80, 1}, {81, 1}, {83, 1}, {84, 1}, {85, 1}, {86, 1}, {89, 1},
     {90, 1}, {92, 1}, {94, 1}, {97, 1}, {99, 1}, {100, 1}};

    double dif = 100.0;
    double val;
    int res[4];

    std::cout << "Enter value ";
    std::cin >> val;

    for (int a = 0; a < sizeof(gears)/sizeof(Gear); a++)
    {
        gears[a].amount--;
        for (int b = a + 1; b < sizeof(gears)/sizeof(Gear); b++)
        {
            if(!gears[b].amount)
                continue;
            gears[b].amount--;
            for (int c = 0; c < sizeof(gears)/sizeof(Gear); c++)
            {
                if(!gears[c].amount)
                    continue;
                gears[c].amount--;
                for (int d =  c + 1; d < sizeof(gears)/sizeof(Gear); d++)
                {
                    if(!gears[d].amount)
                        continue;
                    double buf = fabs((double)gears[a].teeth / gears[b].teeth * gears[c].teeth / gears[d].teeth - val);
                    if(dif > buf)
                    {
                        dif = buf;
                        res[0] = gears[a].teeth;
                        res[1] = gears[b].teeth;
                        res[2] = gears[c].teeth;
                        res[3] = gears[d].teeth;
                    }
                }
                gears[c].amount++;
            }
            gears[b].amount++;
        }
        gears[a].amount++;
    }

    std::cout << "a = " << res[0] << "; b = " << res[1] << "; c = " << res[2] << "; d = " << res[3] << "; Ratio = " << (double)res[0]/res[1]*res[2]/res[3] << ".";

    getch();
}
Цитата
Непрочитано 04.06.2010, 18:47   # 11
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
Ну респектище тебе огроменное!!!!
а можно по-подробнее как юзать этот код, а то я ни бум бум даже где компилятор брать
Цитата
Непрочитано 04.06.2010, 19:03   # 12
 
Аватар для egblob
 
Регистрация: 31.01.2007
Адрес: Новосибирск
Сообщений: 2,834
Записей в дневнике: 5
egblob вне форума
Ну я вечером скомпилю для винды и экзешник выложу где-нибудь. Там все просто, введешь с клавы нужное число, нажмешь энтер, она тебе выдаст количество зубов и передаточное число, которое с ними получится.
Цитата
Непрочитано 04.06.2010, 20:12   # 13
3.2%
 
Аватар для Kефир
 
Регистрация: 01.08.2005
Адрес: Ленинград
Возраст: 38
Сообщений: 7,935
Записей в дневнике: 1
Байк: Старый Притон
Отправить сообщение для Kефир с помощью ICQ
Kефир вне форума
Надо было на жаваскрипте писать - самый универсальный вариант был бы, где угодно юзать чтобы.
Цитата
Непрочитано 04.06.2010, 20:45   # 14
 
Аватар для egblob
 
Регистрация: 31.01.2007
Адрес: Новосибирск
Сообщений: 2,834
Записей в дневнике: 5
egblob вне форума
Да вспоминать надо, с ходу не напишу. Мож кто возьмется тут переделать.

Вот. Попробуй запусти, оно может еще каких-нить дллок попросить, но вроде и так должно работать.
Вложения
Тип файла: zip release.zip (184.6 Кб, 116 просмотров)
Цитата
Непрочитано 05.06.2010, 21:19   # 15
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
заработало...
только вот похоже ты меня не правильно понял.
например известно чило 0,2927 нужно подобрать a b c d (45/72)*(37/79)=0,2927

чило 0,2927 назовем его Х меняется, это входное условие задачи, а у тебя оно в

Enter value 0,2927 (я ввел)
a = 23; b = 99; c = 24; d = 100; Ratio = 0.0557576. (a/b)*(c/d) = 0.0557576 а должно равняться 0,2927
Цитата
Непрочитано 05.06.2010, 22:53   # 16
 
Аватар для egblob
 
Регистрация: 31.01.2007
Адрес: Новосибирск
Сообщений: 2,834
Записей в дневнике: 5
egblob вне форума
Очень странно, у меня выдает 35, 83, 59, 85. Может ты в качестве десятичного разделителя запятую используешь? Попробуй точку. С запятой вводится 0, а остальное считается как другое число.
Цитата
Непрочитано 06.06.2010, 03:29   # 17
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
Цитата:
Сообщение от egblob Посмотреть сообщение
Очень странно, у меня выдает 35, 83, 59, 85. Может ты в качестве десятичного разделителя запятую используешь? Попробуй точку. С запятой вводится 0, а остальное считается как другое число.
да, точняк мой косяк, с точкой все супер!!!!

Мэн реально тебе респект!!!
даже не знаю как благодарить
Цитата
Непрочитано 06.06.2010, 04:20   # 18
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
еще просьба. можешь добавить копирайт в программу свою
мол
программа написано твое ФИО по просьбе Киптикова Григория Владимировича
Цитата
Непрочитано 06.06.2010, 10:36   # 19
 
Аватар для egblob
 
Регистрация: 31.01.2007
Адрес: Новосибирск
Сообщений: 2,834
Записей в дневнике: 5
egblob вне форума
Цитата:
Сообщение от Grisha_T34 Посмотреть сообщение
еще просьба. можешь добавить копирайт в программу свою
мол
программа написано твое ФИО по просьбе Киптикова Григория Владимировича
Не вопрос.) Вечером сделаю тебе такую версию.
Цитата
Непрочитано 06.06.2010, 22:25   # 20
Shlisselburg Style
 
Аватар для Grisha_T34
 
Регистрация: 10.01.2003
Адрес: Шлиссельбург> Санкт-Петербург> Нарва
Возраст: 37
Сообщений: 4,394
Записей в дневнике: 22
Байк: Adamant A1 2006 Short\Chris King Pink\XTR\Middleburn
Отправить сообщение для Grisha_T34 с помощью ICQ
Grisha_T34 вне форума
ну ваще будет суперско!!!
Цитата
Помогите решить задачу используя Excell | by Grisha_T34
Ответить


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 04:22.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot