![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
S-Vanek007 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
Для заданных четырёх матриц X1(N1xN1),X2(N2xN2), X3(N3xN3) и X4(N4xN4) найти и напечатать длины векторов Ya3={s1,s2,s3} и Yb3={s2,s3,s4} где s1,s2,s3,s4 – суммы положительных элементов соответствующих матриц. Следует напомнить, что длина вектора вычисляется как квадратный корень из суммы квадратов координат. (При решении реализовать процедуры ввода и вывода массивов: Vvod2m(A,N,Name), Vivod2m(A,N,Name); а также функции SummPol(A,N):<тип массива> – сумма положительных элементов; и Dlina(p,q,r):real – длина вектора с координатами p,q,r)
Program Lab_6;
Type T2m=array [0..10,0..10] of integer;
Tname=string[5];
Var X1, X2, X3, X4:T2m;
N1,N2,N3,N4:byte;
Ya3, Yb3:real;
S1, S2, S3, S4:integer;
D:real;
Procedure Vvod2m (var A:T2m; var N:byte; const Name:TName);
Var i,j:byte;
begin
writeln ('vvedite massiv', Name, ':');
write ('razmernost massiva N=');
readln (N);
for i:=1 to N do
for J:=1 to N do
begin
write (Name, '[', i, ',',j,']=');
readln (A[i,j]);
end;
end;
Procedure Vivod2m(const A:T2m; const N:byte; const Name:TName);
var i,j:byte;
begin
writeln ('vivodim massiv', Name, ':');
for i:=1 to N do
begin
for j:=1 to N do
write (A[i,j]:5);
writeln;
end;
end;
Function SummPol (A:T2m;N:byte):integer;
Var S:integer;
i,j:byte;
SummaPol:integer;
Begin
S:=0;
for i:=1 to N do
For J:=1 to N do
if A[i,j]>0 then
S:=S+A[i,j];
SummaPol:=S;
End;
Function Dlina (p,q,r:integer):real;
Var i,j:byte;
D:real;
Begin
D:=sqrt(sqr(p)+sqr(q)+sqr(r));
Dlina:=D;
writeln (D);
end;
Begin
Vvod2m (X1, N1,'X1');
Vvod2m (X2, N2,'X2');
Vvod2m (X3, N3,'X3');
Vvod2m (X4, N4,'X4');
Vivod2m (X1, N1,'X1');
Vivod2m (X2, N2,'X2');
Vivod2m (X3, N3,'X3');
Vivod2m (X4, N4,'X4');
S1:=SummPol(X1,N1);
S2:=SummPol(X2,N2);
S3:=SummPol(X3,N3);
S4:=SummPol(X4,N4);
D:=Dlina(s1,s2,s3);
D:=Dlina(s2,s3,s4);
END.
Помоги сделать правильно.... Сообщение отредактировано: S-Vanek007 - 23.04.2009 9:54 |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 13:39 |