![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Yurka |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 143 Пол: Мужской Репутация: ![]() ![]() ![]() |
мне нужно найти минимальные елементы строк матрицы
я написал процедуру, но метод по моему ужасный. А упростить чё то не выходит... вообщем вот эта процедура Procedure Vector(var a:mas; var x:mas1); и её нужно упростить... Сообщение отредактировано: volvo - 8.12.2005 11:42 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
А что такое mas и mas1, мы должны догадаться? Названия типов сами за себя не говорят, будь добр привести определения...
P.S. Есть кнопка CODE P.P.S. Так проще? Procedure Vector(var a:mas; var x:mas1); Сообщение отредактировано: volvo - 8.12.2005 11:48 |
FreeMan |
![]()
Сообщение
#3
|
|||
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
Procedure Vector(var a:mas; var x:mas1);
Не заметил к сразу. -------------------- бб
|
|||
Yurka |
![]()
Сообщение
#4
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 143 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата А что такое mas и mas1, мы должны догадаться? Названия типов сами за себя не говорят, будь добр привести определения... вот полный текст програми Условие а) вычислить элементы квадратной матрицы i=1..5, j=1..5 (за заданой формулой, формулу не пишу она есть в программе, да и это не так важно), при этом нужно использовать процедуру б) используя элементы матрицы вычислить элементы вектора x=|x|(i=1..5), они должны быть равны минимальным элементам строк матрицы (использовать процедуру) в)найти за формулой значение функции (использовать функцию) Код Program nomer28; uses crt; Type mas=array [1..5,1..5] of real; mas1=array [1..5] of real; Procedure Matrix( var a:mas); var i,j,y:integer; Begin for i:=1 to 5 do begin for j:=1 to 5 do begin y:=i-j; a[i,j]:=exp((-i)*ln(2))*(j-4.3)+(5*i+sin(i*j))/(exp(y*ln(2.71))); write('a[',i,',',j,']=',a[i,j]:2:2,' '); end; writeln; end; End; Procedure Vector(var a:mas; var x:mas1); var i,j,k,y,z:integer; min1,min2,min3,min4,min5:real; Begin min1:=a[1,1]; for j:=1 to 5 do begin if (min1>a[1,j]) then min1:=a[1,j]; x[1]:=min1; end; min2:=a[2,1]; for j:=1 to 5 do begin if min2>a[2,j] then min2:=a[2,j]; x[2]:=min2; end; min3:=a[3,1]; for j:=1 to 5 do begin if min3>a[3,j] then min3:=a[3,j]; x[3]:=min3; end; min4:=a[4,1]; for j:=1 to 5 do begin if min4>a[4,j] then min4:=a[4,j]; x[4]:=min4; end; min5:=a[5,1]; for j:=1 to 5 do begin if min5>a[5,j] then min5:=a[5,j]; x[5]:=min5; end; for k:=1 to 5 do writeln('x[',k,']=',x[k]:2:2); End; Function G (x:mas1):real; var i,k:integer; S,d:real; Begin d:=1; S:=0; for i:=1 to 5 do begin begin for k:=1 to i do d:=d*(sqr(k)-x[k]); end; S:=S+d/(2.3*i+x[i]); end; G:=S; End; VAR b:mas; x1:mas1; i,j:integer; BEGIN clrscr; matrix(b); writeln; vector(b,x1); writeln; writeln('G=',G(x1):2:4); readkey; END. |
Yurka |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 143 Пол: Мужской Репутация: ![]() ![]() ![]() |
всё работает,
![]() VOLVO я вставил твой алгоритм Код Program nomer28; uses crt; Type mas=array [1..5,1..5] of real; mas1=array [1..5] of real; Procedure Matrix( var a:mas); var i,j,y:integer; Begin for i:=1 to 5 do begin for j:=1 to 5 do begin y:=i-j; a[i,j]:=exp((-i)*ln(2))*(j-4.3)+(5*i+sin(i*j))/(exp(y*ln(2.71))); write('a[',i,',',j,']=',a[i,j]:2:2,' '); end; writeln; end; End; Procedure Vector(var a:mas; var x:mas1); var i, j: integer; min: real; begin for i:=1 to 5 do begin min:=a[i, 1]; for j:=2 to 5 do if min>a[i,j] then min:=a[i,j]; x[i]:=min; end; for i := 1 to 5 do writeln('x[',i,']=',x[i]:2:2); end; Function G (x:mas1):real; var i,k:integer; S,d:real; Begin d:=1; S:=0; for i:=1 to 5 do begin begin for k:=1 to i do d:=d*(sqr(k)-x[k]); end; S:=S+d/(2.3*i+x[i]); end; G:=S; End; VAR b:mas; x1:mas1; i,j:integer; BEGIN clrscr; matrix(b); writeln; vector(b,x1); writeln; writeln('G=',G(x1):2:4); readkey; END. |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Yurka,
![]() Цитата a[i,j]:=exp((-i)*ln(2))*(j-4.3)+(5*i+sin(i*j))/(exp(y*ln(2.71))); ? оно же равно 1... |
Yurka |
![]()
Сообщение
#7
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 143 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Yurka, Не понял, в чем смысл выражения: а там в формуле число е в степени i-j ![]() |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Ну, тогда должно быть просто:
a[i,j]:=exp((-i)*ln(2))*(j-4.3)+(5*i+sin(i*j))/exp(i-j);Зачем же лишние переменные и вычисления? Exp(x) это и есть e^x |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 18:19 |