IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Подпрограммы
S-Vanek007
сообщение 22.04.2009 22:45
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Для заданных четырёх матриц 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®);
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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 8:35
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"