Текущий архив: 2004.07.04;
Скачать: CL | DM;
Вниз
Использование программирования в жизненных задачах Найти похожие ветки
← →
Игорь Шевченко © (2004-06-14 20:38) [40]А я расчет трансформатора писал для себя :) Первая программа была...
← →
Piter © (2004-06-14 20:42) [41]jack128 (14.06.04 19:22) [30]
Еще раз подумай, прежде чем положительно отвечать на этот вопрос
подожди... если у тебя есть калькулятор, считающий комплексные числа - то проще, конечно, на нем считать!
Но если его нету - то ничего такого, можно и так посчитать...
nikkie (14.06.04 19:35) [31]
>а если разделить надо?
1/(a+bi) = (a-bi)/(a^2+b^2)
а почему ты единицу делишь?! А если одно комплексное число поделить на другое?
← →
GuAV © (2004-06-14 20:44) [42]А ещё один рассказывал, что набирал и печатал документы в Борланд Паскале.
← →
Fenik (2004-06-14 20:47) [43]А последнее, что делал, это расчет энтальпии, энтропии, энергии Гиббса при разных температурах и всякой остальной термохимической фигни - по физ.химии типа курсовика. За 20 минут почти всей группе просчитал.. :))) (программу я дольше писал) А то вручную это очень долго вышло бы.
← →
GuAV © (2004-06-14 20:49) [44]
> 1/(a+bi) = (a-bi)/(a^2+b^2)
>
> а почему ты единицу делишь?! А если одно комплексное число
> поделить на другое?
Для этого надо домножить на сопряженное - это будет именно так.
Или делать в показательной форме.
ЗЫ: Не электрики - не надо ля-ля ;-P
← →
jack128 © (2004-06-14 20:58) [45]
> 1/(a+bi) = (a-bi)/(a^2+b^2)
>
> а почему ты единицу делишь?! А если одно комплексное число
> поделить на другое?
ну, дык, умножай на делимое - вот и результат..
← →
GuAV © (2004-06-14 21:02) [46]GuAV © (14.06.04 20:49) [44]
jack128 © (14.06.04 20:58) [45]
А вот и подтверждение из VarCmplx:procedure TComplexData.DoDivide(const AReal, AImaginary: Double);
var
LDenominator: Double;
begin
LDenominator := (AReal * AReal) + (AImaginary * AImaginary);
if Math.IsZero(LDenominator) then
raise EZeroDivide.Create(SDivByZero);
SetValue(((Real * AReal) + (Imaginary * AImaginary)) / LDenominator,
((Imaginary * AReal) - (Real * AImaginary)) / LDenominator);
end;
← →
Igorek © (2004-06-14 22:07) [47]У меня поменялся номер мобильного; взял все номера из телефонной книги и написал прогу, которая составила строку для почтовика для рассылки СМС про новый номер.
← →
able © (2004-06-14 22:08) [48]На какой-то математической олимпиаде написал код на паскале. Всё было правильно, но не защитали :(
← →
Aldor © (2004-06-15 01:41) [49]Помню перед экзаменом по дифурам была идея (но жаль не довершена) для сотки с Java-приложениями написать программку для нахождения точек покоя системы ОДУ.
Ну а если олимпиадные задачки считать одноразовыми :)))
P.S. nikkie © (14.06.04 18:31) [21]
Помню рассказывали прикольный способ решить эту задачу:
1. Запомнить все ручки, который on на _текущий_ момент.
2. Последовательно переключить их.
3. Повторить :)
Утверждали, что после второго прохождения задача решается. Не проверено.
← →
Романов Р.В. © (2004-06-15 07:50) [50]Курсовой по сопромату на Basic ZX Spectrum. Сначала сделал себе, потом товарищу за ящик пива.
← →
blackman © (2004-06-15 09:28) [51]Вот в каком виде надо сдавать преподам программы :))))
http://www.uic.nnov.ru/~nik/humor/
=============================================================================
#include
#include
#define m(x)(x<0?-1:!!x)
#define g tj()-J
#define a(x)(x<0?-x:x)
#define h(x)((x)<=K?x:N-(x))
#define f 9999
#define A return
#define H printf(
#define R double
#define U int
#define V for
#define b else
#define u while
#define B if
U v,w,Y= -1,W,J,p,F,o=f,M,N,K,X,YY,_,P[f],s(); typedef U(*L)(); L q[f]; tj(){
U S=m(v)+(m(w)<
v?a(v)>1||w-Y||!q[J]:(w-Y&&(w-Y*2||q[W+Y*(N+1)]|| (J>>K)-K+(Y-1)/
v?a(v)>2))||q[J];
} z(){ _=5; A v*w||g; } e(){ _= -2;
A(v*v*v-v||w*w*w-w)&&(J-W-2||(W&N)-4||(W>>K!=(Y-1?N:0))||
q[W+1]||q[W+2]||q[W+K]!=z||P[W+K]*Y<0); } R VR(){ int PZ=0x7fff;
A(R)(rand()&PZ)/(R)PZ; } l(){ _=K+1; A(v*w&&a(v)-a(w))||g; } R UC(){ R i=0,d;
u((i+=d=VR())<1.0); A d; } c(){ _= -11; A a(v)-a(w)||g; } I(ur,n,x){ W=ur;
J=n; B(P[W]!=Y||P[J]==Y)A J+1; v=(J&N)-(W&N); w=(J>>K)-(W>>K); A
q[W]()||(x&&QL(W,J,s)); } TT(W){ v=w=0; A q[W]()+K; } s(){ U j= -1,i; Y= -Y;
V(i=0; i
B(j>=0&&!I(i,j,0))A Y= -Y; } A!(Y= -Y); } bb(){ _=1; A a(v*w)-2; } uv(){
V(v=0; v>K)==0){ U S=h(v&N);
q[v]=!S?z:(S==1?bb:(S==2?c:(v&N>K?l:e))); } b B(h(v>>K)==1)q[v]=k; b q[v]=0;
P[v]=!!q[v]*(28-v); } } y(){ U G=Y,i; J=0; V(i=0; i i%8||H"\n%4o ",i); B((Y=P[i]=m(P[i]))&& TT(i))H"%c ",_+93+Y*16); b H"- "); }
H"\n "); do H"%2d",i++&N); u(i&N); Y=G; H"\n"); } O(W,J){
B((q[J]=q[W])==k&&h(J>>K)==0)q[J]=l; B(q[W]==e)B(J-W==2)O(J+1,J-1); b
B(W-J==2)O(W-1,W+1); P[J]=P[W]; q[W]=0; P[W]=0; } QL(W,J,D)L D; { U
HQ=P[J],YX; L AJ=q[J],XY=q[W]; O(W,J); YX=D(); O(J,W); q[J]=AJ; q[W]=XY;
P[J]=HQ; A YX; } C(){ U i,j,BZ=0; V(i=0; i
r=h(i>>K)+h(i&N),G=Y, S=Z==z?88:(Z==k?11 +r+(P[i]<0?N-(i>>K):(i>>K)):
(Z==l?124-((YY<8&&((i&N)!=K|| (i>>K)!=(P[i]>0?0:N)))?M:0):
(Z==c?41+r:(Z==e?f-r-r:36+r+r)))); Y=P[i]; V(j=0; j ++j)B(!I(i,j,0))S+=(P[j]?5:1); BZ+=G==Y?S:-S; Y=G; } }
B(!(++X&M-1))write(1,".",1); A BZ; } PX(){ U i,Q=0,XP=0,JZ=M*M,E= -f,t,S=o;
B(!F--)A++F+C(); V(i=0; i>K+K,i&M-1,1)){ Y= -Y; o= -E; t=
-QL(i>>K+K,i&M-1,PX); Y= -Y; B(t>E){ ++XP; Q=i; E=t; B(E>=S) A++F,E; } }
B(!XP)E=s()?-f+1:0; p=Q; A++F,E; } RZ(){ U i,j,T=0; V(; ; ){ y(); o=f; do{
H"\n%d %d %d %s ",X,T,C(),s()?"!":">"); fflush(stdout); }
u(scanf("%o%o",&i,&j)!=2||I(i,j,1)); O(i,j); y(); X=0; ++YY; Y= -Y; T=PX();
i=p>>(K<<1); j=p&(M-1); B(I(i,j,1)){ H"Rats!\n"); A; } O(i,j); Y= -Y;
B(T>M*M)H"\nHar har.\n"); } } main(ac,av)char**av; { long
B(T>time(),j=time(&j);
R i=0; srand((U)j); V(M=0; M<=f; ++M)i+=UC(); M=i/100; B(M&3)++M; B(M&1)--M;
V(N=1; N*N1?atoi(av[1]):2; uv(); RZ(); }
Кстати, полностью рабочий код. =))
← →
Piter © (2004-06-15 15:19) [52]GuAV (14.06.04 20:49) [44]
Для этого надо домножить на сопряженное
вот именно. А это уже не так просто, в числителе придется приводить к подобным... в общем, лучше делать в показательной форме, как я и говорил
jack128 (14.06.04 20:58) [45]
ну, дык, умножай на делимое - вот и результат..
ага, так это еще одна операция... опять же, легче в показательной тогда делать...
← →
Григорьев Антон © (2004-06-15 15:55) [53]Я писал для себя такие программы:
1. Кучу всяких разных программулек для расчёта лабораторных по физике в институте.
2. Программу для интерактивного разгадывания японских кросвордов. На бумажке если при их разгадывании делаешь ошибку, это трудно исправить.
3. Minesweeper для ZX Spectrum"а. Причём для самообразования решил писать её на ассемблере (до этого ассемблер не знал). Так как компилятор для ассемблера я не нашёл, сначала пришлось на бейсике его написать. А вот до компоновщика не додумался, линоквал вручную. Вот только генератор случайных чисел нормальный создать не смог, комбинации легко угадывались :(
4. Резидентный minesweeper для игры в школе. Подходит учитель - быстро переключаешься обратно в Turbo Pascal. Отошёл - снова переключаешься и продолжаешь игру.
А с холодильником в Братьях-пилотах у нас в МИФИ ребята поступили просто: пошли к преподавателям на кафедру математики с этой задачей, те заинтересовались и выдали решение: если переключить все ручки, находящиеся на одной вертикали и одной горизонтали (всего семь ручек), то ручка, находящаяся на пересечении этой горизонтали и вертикали, изменит своё положение, а остальные останутся без изменений.
← →
TUser © (2004-06-15 16:49) [54]Недавно писал на VBA для вставления в Ёксель формул в определенном порядке. Это оказалось проще, чем неск. тысяч формул ручками выписывать. :)
← →
GuAV © (2004-06-15 16:55) [55]
> 1. Кучу всяких разных программулек для расчёта лабораторных
> по физике в институте.
Лист Ексель и всё, зачем програмы?
> 2. Программу для интерактивного разгадывания японских кросвордов.
> На бумажке если при их разгадывании делаешь ошибку, это
> трудно исправить.
Это разгадывает кто: ты или комп?
← →
Григорьев Антон © (2004-06-15 17:14) [56]
> GuAV © (15.06.04 16:55) [55]
>
> > 1. Кучу всяких разных программулек для расчёта лабораторных
>
> > по физике в институте.
>
> Лист Ексель и всё, зачем програмы?
Там расчёты иногда очень серьёзные были, Эксель под такие не заточен. Можно было бы и на нём, но геморнее.
> Это разгадывает кто: ты или комп?
Я, компьютер совсем не помогает.
← →
GuAV © (2004-06-15 17:26) [57]Piter © (15.06.04 15:19) [52]
> вот именно. А это уже не так просто, в числителе придется
> приводить к подобным... в общем, лучше делать в показательной
> форме, как я и говорил
Прочитай внимательно unit VarCmplx, там делается через алгебраическую.
Короче,
> Не электрики - не надо ля-ля ;-P
← →
Piter © (2004-06-15 17:55) [58]GuAV (15.06.04 17:26) [57]
я чего то не понимаю... Ты себя что ли считаешь очень продвинутым электриком? Да пожалуйста, мне это как-то пофигу.
Ты хочешь показать свою крутизну? Да пожалуйста, это мне тоже абсолютно по фигу.
Или ты хочешь поговорить? Тогда никак не пойму - почему ты проводишь параллели между тем как лучше считать компьютеру и как лучше считать человеку?
← →
nikkie © (2004-06-15 18:09) [59]>Piter
>а почему ты единицу делишь?! А если одно комплексное число поделить на другое?
см. [45] jack128:
(c+di)/(a+bi) = (c+di)*(a-bi)/(a^2+b^2)
>А это уже не так просто, в числителе придется приводить к подобным... в общем, лучше делать в показательной форме, как я и говорил
у меня создается впечатление, что ты совершенно не задумываешься ни над своими постами, ни над тем, что тебе отвечают. приведи, пожалуйста, пример (формулу или программу) деления комплексных чисел с переводом в показательную форму.
← →
GuAV © (2004-06-15 20:13) [60]Если кучу чисел множить-делить - то показательная рулит. В степень возводить - показательная однозначно. Но два числа - если даны в алгебраической и ответ нужен в ней - то нефиг переводить.
> Ты хочешь показать свою крутизну?
Я же смайлик поставил, а не видел - вот тебе второй 8-) !
Я просто прикалуюсь.
> Тогда никак не пойму - почему ты проводишь параллели между
> тем как лучше считать компьютеру и как лучше считать человеку?
Мы в своих задачках часто считали в показательной, т.к. требовалось с нас так (для ВД например).
> Или ты хочешь поговорить?
см. Название конференции.
← →
- - - (2004-06-15 22:51) [61]по сабжу: писались несколько раз программки друзьям-непрограммистам: температура пара в зависимости от каких-то условий, еще что-то в этом роде... Вручную невозможно посчитать, т.к. необходимо округление до 12 знаков после запятой. То есть не невозможно, а очень трудно (пояснение, чтобы не нападали с претензиями)
Страницы: 1 2 вся ветка
Текущий архив: 2004.07.04;
Скачать: CL | DM;
Память: 0.6 MB
Время: 0.024 c