Форум: "Потрепаться";
Текущий архив: 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