![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 52
|
![]()
А может кто-то подскажет почему не считает соответствующие минимальные значения...в таблице "0" в последних 2-х строках пишет....
вот программа: uses crt; Type mas=array[1..19,1..19] of real; Type mas1=array[1..10] of real; var F:mas; X1,X2,minY,Z:mas1; t1,z2,z1,t,dt,tk,tp,xp1,xp2,xk1,xk2 ,dx1,dx2,minF,minF1,mx,my,minX1,min X2:real; i,n,j,u,grDriver,grMode,y,yy,x,xx,p x,py,px1,py1:integer; grPath,l,s:string; {подпрограмма формирования одномерных массивов} procedure form(xn:mas1;xp,xk:real); var dx,x:real; k:integer; begin k:=10; x:=xp; dx:=(xk-xp)/(k-1); for i:=1 to 10 do begin xn[i]:=x; x:=x+dx; end; end; {-----------------------------------------------------} {подпрограмма-функция сопративления} function te(h:real):real; begin te:=0.273*(sin(3*h+3)/h)/(cos(3*h+3)/h); end; {передаточная ф-я} function r(a,b,te:real):real; begin r:=sqr(sqr(a))-0.9*b+sqr(te)+2*a+ sqr(a)*sqr(a)*sqr(a)*b/3; end; {Подпрограмма формирования двумерного массива} procedure miF(x:mas;k1,k2:mas1;var miF:real;var miX1,miX2:real); begin miF:=F[1,1]; miX1:=k1[1]; miX2:=k2[1]; for u:=1 to 19 do begin for j:=1 to 19 do begin {Модуль1:поиск минимального элемента F(n,n)} if F[u,j]<miF then begin miF:=F[u,j]; miX1:=k1[u];miX2:=k2[j]; end; end; end; end; {ПРОГРАММА} begin clrscr; xp1:=1.2; xp2:=-1.8; xk1:=2.3; xk2:=0.1; tp:=-5; tk:=4; dt:=0.5; t:=tp; {---------формирование массивов х1 и х2-----------} form(x1,xp1,xk1); form(x2,xp2,xk2); {-------------------------------------------------} writeln; writeln(' Начало таблицы'); Writeln(' |-----|---------|--------|--------|------------|----------|'); Writeln(' | i | T | Z | minF | X1min | X2min |'); Write(' |-----|---------|--------|--------|------------|----------|') ; {цикл по времени } for i:=1 to 19 do begin {обращение к подпрограмме-функции а(t)} Z[i]:=te(t);writeln; for u:=1 to 10 do begin for j:=1 to 10 do begin F[u,j]:=r(x1[u],z[i],x2[j]); end; end; {определение минимума двумерного массива F(10,10) и соответствующих значений x1 и x2} miF(F,X1,X2,minF,minX1,minX2); minY[i]:=minF; if i=10 then begin readln; writeln(' Конец таблицы'); end; if ((i>=1)and(i<9)) then begin writeln(' | ',i:2,' | ',T:2:2,' |',z[i]:6:3,' |',minF:1:1,' |' ,minX1:2:0,' | ',minX2:4:2,' |'); write(' |-----|---------|--------|--------|------------|----------|'); end; if i=9 then begin writeln(' | ',i:2,' | ',T:2:2,' |',z[i]:6:3,' |',minF:1:1,' |',minX1:2:2,' | ',minX2:4:2,' |'); write(' |-----|---------|--------|--------|------------|----------|'); end; if i=10 then begin writeln(' |-----|---------|--------|--------|------------|----------|'); writeln(' | ',i:2,' | ',T:2:2,' |',z[i]:6:4,' | ',minF:1:1,' |',minX1:2:2,' | ',minX2:4:2,' |'); write(' |-----|---------|--------|--------|------------|----------|'); end; if ((i>=11)and(i<20)) then begin writeln(' | ',i:2,' | ',T:2:2,' |',z[i]:6:2,' | ',minF:8:3,' |',minX1:4:2,' | ',minX2:4:2,' |'); write(' |----|-------|----------|----------|-------|--------|'); end; if i=19 then begin writeln(' | ',i:2,' | ',T:2:2,' |',z[i]:6:2,' | ',minF:8:3,' |',minX1:4:2,' | ',minX2:4:2,' |'); write(' |----|--------|-----------|----------|-----|--------------|'); end; t:=t+dt; end; Writeln;Writeln;Writeln;Writeln;Wri teln; readln;end. Последний раз редактировалось AndrewPl; 29.05.2010 в 21:44. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 52
|
![]()
помогите пожалуйста,я в недоумении(((
minX1 и minX2 не считает((((( |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 12.11.2009
Сообщений: 20
|
![]() Код:
Код:
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 52
|
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 52
|
![]()
не помогло((((((что ж такое?..((
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 12.11.2009
Сообщений: 20
|
![]()
а да а чему у Вас равно n в
Код:
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 52
|
![]()
там 19,у меня в проге я "n" прописал числом,чтобы меньше путаться(((
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 12.11.2009
Сообщений: 20
|
![]()
а почему у тебя там 19?? если Х1 и Х2 до 10 та и F 10х10??
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 52
|
![]()
n = (tk-tp)/dt+1 ,где t є [-5;4],а dt=0.5
но я менял только что на 10 - не помогло.....как было "0" так и есть( Последний раз редактировалось AndrewPl; 29.05.2010 в 22:00. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 52
|
![]()
Ура))))я нашёл ошибку!))
Orakul89,спасибо за помощь!дело в : {передаточная ф-я} function r(a,b,te:real):real; begin r:=sqr(sqr(a))-0.9*b+sqr(te)+2*a+ sqr(a)*sqr(a)*sqr(a)*b/3; end; вот так: {передаточная ф-я} function r(a,b,er:real):real; begin r:=sqr(sqr(a))-0.9*b+sqr(er)+2*a+ sqr(a)*sqr(a)*sqr(a)*b/3; end; и потом F[u,j]:=r(x1[u],z[i],x2[j]); тоесть я,дурак, написал в одной функции переменной имя другой функции... |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
что неправильно? | helavisa | Общие вопросы C/C++ | 18 | 02.06.2009 17:51 |
Паскаль. Что не так? | Кириллович | Помощь студентам | 7 | 25.05.2009 19:09 |