KMA
Долгожитель
|
Kotenok 17, давай по порядку. Я тебе буду помогать постепенно, поэтому, буду предельно внимателен. Давай объявим тип: Type matrix= array [1..3, 1..3] of integer; Теперь объявлю пока три переменные (массивы) Var a, b, c: matrix; Пока хватит. Поиск минимального элемента осуществим в виде функции. function foundMinInMatrix (x: matrix; n: byte; {количество элементов} ): integer; Var i, j: byte; {счетчики} buf: integer; Begin buf:=x[1, 1]; for i:=1 to n do for j:=1 to n do if x[i, j]< buf then buf:=x[i,j]; foundMinInMatrix:=buf; End; Все, функция готова.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 18 дек. 2006 23:54 | IP
|
|
KMA
Долгожитель
|
Kotenok 17, я все понимаю, но ты по моему слишком много флудишь =) в самой программе, определяешь свои элементы. px:=sqrt (foundMinInMatrix (a, 2)); dx:=foundMinInMatrix (b, 2); cl:=foundMinInMatrix (c, 3) Вот теперь у тебя есть все что надо для решения этого уравнения.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 18 дек. 2006 23:57 | IP
|
|
amigo
Начинающий
|
вот решение твоей задачи: Program work; Uses crt; Type matr1=array[1..2,1..2] of real; matr2=array[1..3,1..3] of real; VAR A,B:matr1; C:matr2; p,d,c1,diskr,x1,x2:real; n:integer; function min( A:matr1; B:matr2;q:integer):real; Var i,j:byte; m:real; Begin if q=2 then begin m:=A[1,1]; for i:=1 to 2 do begin for j:=1 to 2 do begin if A[i,j]<m then m:=A[i,j]; end; end; end; if q=3 then begin m:=B[1,1]; for i:=1 to 3 do begin for j:=1 to 3 do begin if B[i,j]<m then m:=B[i,j]; end; end; end; min:=m; end; BEGIN clrscr; p:=min(A,C,2); d:=min(B,C,2); c1:=min(A,C,3); diskr:=d*d-4*p*c1; if d<0 then begin writeln('Решений нет');goto 1;end; x1:=(-d+sqrt(diskr))/(2*p); x2:=(-d-sqrt(diskr))/(2*p); writeln('X1=',x1); writeln('X2=',x2); 1: readln; END. P.s. Ещё не проверял, но вроде должна запуститься.
|
Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 18 дек. 2006 23:58 | IP
|
|
amigo
Начинающий
|
кое что нужно исправить конечно. Метки завести и d в одном месте на diskr заменить.
|
Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 19 дек. 2006 0:03 | IP
|
|
KMA
Долгожитель
|
amigo, у тебя функция поиска минимального элемента далеко не идеальна. Сам смотри, дав массива заводишь, плюс эти значения. Не знаю, вроде моя как-то компактнее получилась =)
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 19 дек. 2006 0:07 | IP
|
|
Kotenok 17
Удален
|
ребята дело еще в том что мы совсем не проходили оператор buf - что он означает и что дает?
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 19 дек. 2006 0:15 | IP
|
|
KMA
Долгожитель
|
buf это типа моя фишка, переменная обменник =) Это никакой не оператор, просто сокращенно от слова буфер, что значит, временная... Это простая переменная, хочешь, замени ее на m. А вообще можно было бы догадаться, поскольку она объявлена в переменных. =)
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 19 дек. 2006 0:17 | IP
|
|
amigo
Начинающий
|
Цитата: KMA написал 19 дек. 2006 0:07 amigo, у тебя функция поиска минимального элемента далеко не идеальна. Сам смотри, дав массива заводишь, плюс эти значения. Не знаю, вроде моя как-то компактнее получилась =)
Разумеется. Но я и не думал не об какой оптимизации. И пока набирал своё решение, не заметил как ты уже дал ответ. Хотел помочь просто девушки, раз уж она старается что то понять... (Сообщение отредактировал amigo 19 дек. 2006 0:24)
|
Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 19 дек. 2006 0:23 | IP
|
|
Kotenok 17
Удален
|
Цитата: amigo написал 18 дек. 2006 23:58 вот if d<0 then begin writeln('Решений нет');goto 1;end; что означает goto 1 и почему мы рассматриваем только случай когда решений нет?
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 19 дек. 2006 0:23 | IP
|
|
Kotenok 17
Удален
|
спасибо вам огромное за понятные пояснения и помощь...не представляю что бы я без вас делала!!!вы просто умнички!
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 19 дек. 2006 0:29 | IP
|
|
|