Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Вниз

Использование программирования в жизненных задачах   Найти похожие ветки 

 
Real ©   (2004-06-14 16:00) [0]

Поделитесь своими примерами из жизни. Хочу сразу объяснить - речь идет об одноразовых (или почти) программах: то есть когда возникала какая-то проблема, которая решалась с использованием языка программирования, причем это решение было эффективней чем любое другое, и в последствии больше не использовалось (и не превращалось в проект).


 
Anatoly Podgoretsky ©   (2004-06-14 16:03) [1]

Ну например конвертор базы из одного формата в другой


 
Profi ©   (2004-06-14 16:06) [2]

Я, например, еще на Pascal"е писал руссификатор WinAMP"а 2.81 и выше, но до 3. Когда WinAMP не правилно отображал название песни на русским языке.


 
jack128 ©   (2004-06-14 16:06) [3]

решение типового по ТОЭ. Нужен был калькулятор с комплексными числами..


 
ИМХО ©   (2004-06-14 16:07) [4]

Написание программки для сдачи лабораторки.

Жизненно важная задача была! (а то без стипендии бы остался)


 
Nous Mellon ©   (2004-06-14 16:10) [5]


>  [4] ИМХО ©   (14.06.04 16:07)

Ты уже в универе? Крут :))))))


 
Real ©   (2004-06-14 16:38) [6]

А что нибудь не из "цифровых" задач, а из обычной жизни? Ну, например, какой-нибудь расчет для быта или что-то в этом роде? То есть какая-либо область, где можно применить свои мозги, а вы смогли помочь им траслятором...


 
Piter ©   (2004-06-14 16:42) [7]

jack128 (14.06.04 16:06) [3]
решение типового по ТОЭ. Нужен был калькулятор с комплексными числами..


я так понимаю для умножения и деления комплексных чисел? Так надо было переводить в показательную форму комплексные числа, то есть через экспоненту писать, через углы. В таком виде умножение в уме делается...


 
DeadMeat ©   (2004-06-14 16:59) [8]

Ну например я писал для себя программку, которая после времени Ч через определённый интервал выдает сообщение, типа "Хозяин... Ты спиш..??" с кнопками "ДА", "НЕТ"... Если в течении минуты я ни начто не нажимаю, или нажимаю на "ДА", то комп вырубается...
Дело в том, что я часто люблю какой-нибудь фильмец на ночь посмотреть, лёжа в кровати... К компу тянуться лень, что бы под конец фильма, его вырубить... А так поставил её, например, после 23:00 через каждые 30 мин. выдавать запрос, и смотри фильмУ...  Исать такую прогу тоже было лень, вот и написал...

---
...Death Is Only The Begining...


 
nikkie ©   (2004-06-14 17:01) [9]

>А что нибудь не из "цифровых" задач, а из обычной жизни?
году в 96-м попалась газетка с разными конкурсами на приз, в том числе была задачка - квадрат 4x4, в каждой клетке возможно разместить один из нескольких фруктов, разных цветов и с разными цифирками. в зависимости от совпадения цветов и фруктов суммы умножались как-то. приз был 1500р - по тем временам очень некислая сумма.

я писал программку для поиска наилучшего варианта. задачка переборная, но чтобы работала осмысленное время, надо было подумать как сократить перебор. в результате работала она на 486DX час-другой. писал я ее дольше... в результате получилось, что возможно 2 принципиально разных решения (не получающихся друг из друга перестановками). понятное дело, что придумать лучший вариант без компьютера невозможно было. для подстраховки отправил туда 4 письма :)) - только выиграл шиш. в газете написали, что получили около 200 писем с таким результатом. то ли столько программистов читало ту газетку, то ли кто-то стеснялся меньше и в одиночку отправил 100 писем ;), то ли кидалово это было...


 
Иксик ©   (2004-06-14 17:02) [10]

То, что сразу вспомнилось - одна дура недавно сестре на мобильный звонила, материлась или просто отбой давала. Достала.
Наваял программку, которая периодически отправляла ей на sms штук 200 сообщений. Отстала. :))


 
DiamondShark ©   (2004-06-14 17:04) [11]

Да сколько угодно!

Вот только самые прикольные примеры.

1.
Была когда-то такая игрушка -- "Братья Пилоты", по мультику "Следствие ведут колобки". И был там в одном месте шкаф (или холодильник? -- ну, что-то типа того), закрытый на хитрый замок -- матрица переключателей 4х4, при повороте одного все переключатели в той же строке и столбце переключались в противоположное состояние (вереключатели двоичные -- вверх и вниз). Дверь открывалась только если все ручки поставить в одно и то же положение. Для прохождения этого уровня была написана програмка. На екселевском васике.

2.
Отрубили мне как-то в конторе интернет (наказание, типа), всё-всё позакрыли. Ходят только текстовые сообщения ICQ. А приспичило товарищу отослать фотографию. Я туда-сюда... Ничего не работает. Ни почта, ни ХТТП, ни ФТП -- вообще ничего. Ну я пишу програмку, которая делает HEX-дамп файла, и говорю товарищу, мол, лови, и складывай в текстовый файл. И весь файл таким образом кусками ему отсылаю. А товарищ -- не програмер, естественно, что никаких дельфей или сей с плюсами у него нету. Я его спрашиваю: "Ворд есть?". "Есть" -- говорит. Пишу макрос, отсылаю товарищу вместе с инструкциями по запуску, он грузит HEX-дамп в ворд, пускает макрос -- вуаля!


 
YurikGL ©   (2004-06-14 17:06) [12]

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


 
jack128 ©   (2004-06-14 17:16) [13]


> В таком виде умножение в уме делается...


вычисли в уме результат a * b + c * d, где
a = 14.05653 + i*1.5613135
b = 1.46466386 + i*5.156354686
c = -15.5065676 - i*1.086686
d = 80.4633 + i*1.055346

а вычислений таких там туева хуча.. У многих потом проверки результатов не сходились, потому что считали в ручную(на колькуляторе имеется в виду), записывали только 3 цифры после запятой. Погрешность накапливалась, ну и приходилось пересчитывать заново..  
Мда.. веселые времена были...


 
Alx2 ©   (2004-06-14 17:30) [14]

А мне как-то пришлось написать программку для расчета экономного разрезания бревен разной длины на куски заданных длин. В то время строился, а пиломатериал был разнокалиберный и мало его было. В итоге существенно подсобило сократить отходы :)


 
Piter ©   (2004-06-14 18:05) [15]

jack128 (14.06.04 17:16) [13]

ну переводишь a, b, c, d в показательную степень. Потом умножаешь a*b и результат переводишь в обычный вид. Также с c*d и тоже в обычный вид переводишь. Потом складываешь...

на самом деле, если привыкнуть, то переводить можно очень быстро...


 
jack128 ©   (2004-06-14 18:11) [16]


> Piter ©

я знаю как это делается. ты в уме хотя бы в показательную форму переведи эти числа ;-)


 
Romkin ©   (2004-06-14 18:12) [17]

DiamondShark ©   (14.06.04 17:04) [11]
1. Что, полным перебором? :))) ТАм программы не надо, только уметь считать до 5 и знать, какое число четное, а какое нет... Программист ленивым должен быть
2. Вот это здорово :)

Я в институте часто довольно-таки писал программы, чтобы посчитать что-то. Правда, дело осложнялось малой доступностью компьютеров в то время, так что немного. Хороший пример - решение однородного уравнения с пост. коэффициетами (как же нас доставали этим!) аналитически на MAthCADe, оставалось только решение переписать...
А вообще, вопрос на засыпку, программу бытовую написать, и чтобы больше не применялась?! Для этого задача без нее должна решаться за время больше времени написания и отладки программы, редкость большая :)
jack128 ©   (14.06.04 17:16) [13] Хе! У меня перед дипломом был случай, когда нужно посчитать было, а компьютера под рукой нет. Пришлось парочку матриц 8х8 обращать ручками. Хорошо, калькулятор был :)))


 
GuAV ©   (2004-06-14 18:13) [18]


> решение типового по ТОЭ. Нужен был калькулятор с комплексными
> числами..

Скинуть свой ?


 
Piter ©   (2004-06-14 18:14) [19]

jack128 (14.06.04 18:11) [16]
ты в уме хотя бы в показательную форму переведи эти числа


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


 
jack128 ©   (2004-06-14 18:27) [20]


>  GuAV ©   (14.06.04 18:13)
>
> > решение типового по ТОЭ. Нужен был калькулятор с комплексными
>
> > числами..
>
> Скинуть свой ?
не.. уже не нужен, спасибо.
В этом плане меня прикалывает как нас учат
На младших курсах: туча теории - бешеные формулы.. В общем наука.
А вот на старших курсах начинаются инженерные специальности и выясняется, что вот это мы не учитываем, а это отбрасываем, а это вообще нафиг не нужно.. И из формулы с пол страницы остается маленькое линейное уравнение.. И вообще все формулы, по которым нужно считать утверждены РАО(хотя в Харькове это не актуально, наверно), записаны в "руководящих указаниях", а то что там теория говорит - это не наше дело :-)))

> я не говорю, что в уме перевожу


>  В таком виде умножение в уме делается...
:-P

> Но это легко делается с помощью стандартного калькулятора,
> который вовсе не обязан считать комплексные числа...
но легче программку написать..Заодно и практика, какая - никакая..В то время у мя программисткой практики почти не было..


 
nikkie ©   (2004-06-14 18:31) [21]

>Piter
тебе не кажется, что просто перемножить проще будет?? :))

>Romkin
ТАм программы не надо, только уметь считать до 5

либо ты знаешь какой-то супер-метод, либо ты не знаешь той головоломки. не совсем легко она складывается. не знаю вот только, что проще -самому ее решить или написать программу, которая найдет решение.


 
Romkin ©   (2004-06-14 18:35) [22]

jack128 ©   (14.06.04 18:27) [20]
>На младших курсах: туча теории - бешеные формулы.. В общем наука.
>А вот на старших курсах начинаются инженерные специальности и выясняется, что вот это мы не учитываем, а это отбрасываем, а это вообще нафиг не нужно..

А вот с этим - поаккуратнее :) Эмпирические формулы? Так они годятся, в отличие от теоретических, только здесь и сейчас, для данного случая, да еще и только с энтими ограничениями. Другой случай - другая формула. Это чисто инженерная заморочка :)))
Вот только теорию дают, для того, чтобы ты не совал эту эмпирику куда не нать :)))
А вот утвержденные формулы, без указания условий - кошмар :(( Но реальность, к сожалению.


 
GuAV ©   (2004-06-14 18:37) [23]


> В этом плане меня прикалывает как нас учат
> На младших курсах: туча теории - бешеные формулы.. В общем
> наука.
> А вот на старших курсах начинаются инженерные специальности
> и выясняется, что вот это мы не учитываем, а это отбрасываем,
> а это вообще нафиг не нужно.. И из формулы с пол страницы
> остается маленькое линейное уравнение.. И вообще все формулы,
> по которым нужно считать утверждены РАО(хотя в Харькове
> это не актуально, наверно), записаны в "руководящих указаниях",
> а то что там теория говорит - это не наше дело :-)))

У нас не так, всё начинается сразу - теория и допущения идут по ходу.
Моя Комплексулятор представляет чисто теоретический интерес. Хороший хелловорлд, я считаю. Поэтому и храню, хотя им уже не пользуюсь - считаю в ескелях-маткадах.


 
Piter ©   (2004-06-14 18:37) [24]

jack128 (14.06.04 18:27) [20]
> я не говорю, что в уме перевожу
>  В таком виде умножение в уме делается...


мне твоя ирония непонятна. Зачем ты меня хочешь выставить дураком?
Я все верно сказал - УМНОЖЕНИЕ в уме делается, а вот перевести в уме - это сложно.
То есть, когда у тебя есть два переведенных в показательный вид комплексных числа - то их умножение плевое дело.
Да и перевод тоже плевое дело, только вот arctg я в уме не умею считать, поэтому нужен калькулятор.

nikkie (14.06.04 18:31) [21]
тебе не кажется, что просто перемножить проще будет??


а если разделить надо?


 
Real ©   (2004-06-14 18:38) [25]


> Romkin


> Для этого задача без нее должна решаться за время больше
> времени написания и отладки программы, редкость большая
> :)


Вот в этом, можно сказать и суть моего вопроса... Можно ли использовать программирование как искусство (в том числе и удивлять) или это просто наука автоматизации?


> DiamondShark > Да сколько угодно!
> Была когда-то такая игрушка -- "Братья Пилоты"...


Кстати, об игрушке... Недавно вот наткнулся в Tomb Raider IV (уровень The Lost Library) то место где змеи с факелами в вершинах 7-конечной звезды сидят.

(если кто не в курсе - по кругу расположенно 7 змей с факелом, каждая змея - имеет 2 связи [нарисуйте 7 точек по кругу, пронумеруйте по часовой стрелке (начиная с любой) и соедините линиями по схеме: : 1 -> 5,4; 2 -> 5,6; 3 -> 6,7; 4 -> 1,7; 5 -> 1,2; 6 -> 2,3; 7 -> 3,4 ] у каждой змеи - рычаг, который делает змее инверсию: если факел потушен - он загорается и наоборот - если горел - тухнет. Помимо самой змеи - аналогичное происходит и со связанными с ней змеями (состояние тоже инвертируется). Изначально - все факелы потушены (false) нужно все их зажечь (true).

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

а). как это можно было вычислить
б). на каком шаге это произошло и почему.

(просьба не обсуждать мои познания математики, а высказываться по существу, если есть желание).


 
DiamondShark ©   (2004-06-14 18:40) [26]


> Romkin ©   (14.06.04 18:12) [17]
> DiamondShark ©   (14.06.04 17:04) [11]
> 1. Что, полным перебором? :))) ТАм программы не надо, только
> уметь считать до 5 и знать, какое число четное, а какое
> нет... Программист ленивым должен быть

Да оно достало просто всех. Играли толпой, и все же как один -- советчики. Чуть не передрались.
А так -- написал, позицию ввели, пошли курить, пришли -- прочитали последовательность ходов.


> А вообще, вопрос на засыпку, программу бытовую написать,
> и чтобы больше не применялась?! Для этого задача без нее
> должна решаться за время больше времени написания и отладки
> программы, редкость большая :)

Экий вы рациональный! ;)
Не обязательно. Задача может быть просто намного скучнее, чем написание программы.
"Лучше день потерять, но за пять минут долететь!"
(ц)


 
Prohodil Mimo ©   (2004-06-14 18:42) [27]

A mne len" bilo matrici umnozhat" delit" i t.p. sdelal neskol"ko shablonov na excele, a potom tol"ko spisival :o)

Brat na paskale pisal progi dlja kazhdoj novoj temi po matematike. programma vidavala vsjo tak, kak dolzhno bit" v tetradke. ostavalos" tol"ko spisat".


 
Romkin ©   (2004-06-14 18:42) [28]

nikkie ©   (14.06.04 18:31) [21] Комбинаторика. Четные-нечетные перестановки. Если не ошибаюсь, нажимать надо на ту ручку, в ряду и столбце которой нечетное количество вертушек.
В инете найти мона.
А рассуждение простое:
имеем матрицу 5х5 ключей с положениями on/off, их все нужно включить (on) следующим действием: при нажатии на один выключатель он и все в этом ряду и столбце меняют свое состояние.
Теперь рассуждение:
1. Когда все ключи в on, то количество состояний (on) в каждой строке и столбце нечетно
2. НАжатие одного выключателя меняет количество (on) в данной строк и столбце с четного на нечетное и наоборот.
ДУмаю, остальное - можно догадаться :)))


 
Romkin ©   (2004-06-14 18:54) [29]

Ой, сорри, 4х4 конечно же :))


 
jack128 ©   (2004-06-14 19:22) [30]


> мне твоя ирония непонятна. Зачем ты меня хочешь выставить
> дураком?
 
 Я этого не хочу. там вообще был смайлик..  

> Я все верно сказал - УМНОЖЕНИЕ в уме делается, а вот перевести
> в уме - это сложно.
> То есть, когда у тебя есть два переведенных в показательный
> вид комплексных числа - то их умножение плевое дело.
> Да и перевод тоже плевое дело, только вот arctg я в уме
> не умею считать, поэтому нужен калькулятор.


Ладно, давай  серьезно.

Ты абсолютно уверен, что посчитать (Re(a)^2 + Im(a)^2)^ (1/2) * (Re(b)^2 + Im(b)^2)^ (1/2) и atan(Im(a)/Re(a)) + atan(Im(b)/Re(b)),  вот все это ЛЕГЧЕ посчитать на калькуляторе (а половине случаев результат нужно будет перевести обратно в алгебраическую(так кажись называется) форму, потому дальше идет сложение), чем на на запрос программы ввести 4 числа: Re(a), Im(a), Re(b) и Im(b)  ???    

Еще раз подумай, прежде чем положительно отвечать на этот вопрос ;-)) (и, пожалуйста, обрати внимание на выделенное слово)

2 Romkin(c)

> Пришлось парочку матриц 8х8 обращать ручками
Монстр!! :-)


 
nikkie ©   (2004-06-14 19:35) [31]

>Piter
>а если разделить надо?

1/(a+bi) = (a-bi)/(a^2+b^2)
по-моему, это проще, чем
a + bi = r*exp(i*phi)
r = sqrt(a^2+b^2)
phi = atan(b/a)
1/(a+bi) = 1/r*exp(-i*phi) = 1/sqrt(a^2+b^2)*[cos(-atan(b/a)) + i*sin(-atan(b/a))]


 
GuAV ©   (2004-06-14 19:38) [32]

Народ! Вы о комплексных числах и практических задачах?
Тогда что вы делаете? есть же unit VarCmplx!


 
nikkie ©   (2004-06-14 19:38) [33]

>[28] Romkin
ага, вспомнил, что видел такое правило. правда кажется, что ты кое-что пропустил - есть ведь ситуации, когда во всех строках и столбцах четное количество off. я методом ненаучного тыка открывал. с четностью это круто, конечно, но только если ты сам это придумал ;p


 
jack128 ©   (2004-06-14 19:48) [34]


> Народ! Вы о комплексных числах и практических задачах?
> Тогда что вы делаете? есть же unit VarCmplx

я сам писал.. на паскале еще..


 
Romkin ©   (2004-06-14 19:48) [35]

nikkie ©   (14.06.04 19:38) [33] Нет таких ситуаций вроде :)) при четном размере может быть только один случай - когда сейф открыт.
Придумал не сам, увы :( По фразе "соблюдайте четность"
И вспомнил давнюю ковбойскую игру в Ним... Я еще в школе прикалывался:
Заходит ковбой в бар, ну и играет с барменом: бармен выкладывает 7 долларов, двумя кучками по 3 и 4 монеты, ковбой добавляет одну кучку из 5 монет. Итого три стопки по 3,4,5 монет. Можно брать любое количество монет, но только из одной стопки. Кто взял последнюю монету - забирает все. Начинает ковбой. Как ни странно, по слухам, ковбои всегда проигрывали :)))


 
GuAV ©   (2004-06-14 20:10) [36]


> я сам писал.. на паскале еще..

Даже на паскале:
type
 PCpx=^TCpx;
 TCpx=ojbect; {ojbect<> object(TObject) ! }
 x, y: Double;
 procedure DefineInExp(A,F: Double);
 ...
 function Mod: Double
 ...
end;
procdeure Sum(..)
...

var A,B,C: Tcpx; {консруктор не нужен}

{ И в твоё время дельфи уже был ;) }  

по сабжу: решил в школе на паскале задачу, как расставить 8 ферзей, чтоб друг друга не били. около 72 вариантов.


 
jack128 ©   (2004-06-14 20:28) [37]


> type
>  PCpx=^TCpx;
>  TCpx=ojbect;

не..не объектный паскаль..Я вообще не спец в паскалях, помню только, что меня взбесило невозможность возвращать из функции записи..

> { И в твоё время дельфи уже был ;) }  
// угу. Я её в школе в первый раз увидел


 
Fenik   (2004-06-14 20:29) [38]

Помню в школе, как поставили новые компы, постоянно резались в Quake2, а учительница регулярно вытирала с компов его, и нам приходилось заново копировать игру с диска. Я написал на Паскале программку, которая переименовывала все файлы в каталоге и подкаталогах случайным образом, давая расширения dll, sys, vdx, drv и т.п., и создавала файл отката (с реальными именами). Таким образом, папочка с квакой помещалась в Windows\System (чтобы расширения не вызывали подозрений и защищали от необдуманного удаления). Поиграли - запустили программу - ищи ветра в поле. Пришли - запустили программу - мясорубка продолжается. :)


 
GuAV ©   (2004-06-14 20:37) [39]


> меня взбесило невозможность возвращать из функции записи..

Да, фигня получается: или через указатели или через процедуру.

Ещё вспомнил: HIEW+Delphi - и я нашел шрифты в прошвке мобилки. (там их было десять формат похожий на ДОС, но немного не так) хотя искал руссике строки :-(


 
Игорь Шевченко ©   (2004-06-14 20:38) [40]

А я расчет трансформатора писал для себя :) Первая программа была...



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.037 c
14-1087448627
R
2004-06-17 09:03
2004.07.04
Регистрация псевдонима автора


14-1087371407
Sergey(RD)
2004-06-16 11:36
2004.07.04
Delphi vs Asm


6-1084079050
Ozone
2004-05-09 09:04
2004.07.04
Две сетевые карты


1-1087755757
terra0
2004-06-20 22:22
2004.07.04
передача глобальной переменной в DLL


3-1086238940
Dark Man
2004-06-03 09:02
2004.07.04
Изменение данных из SQL запроса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский