Консультация № 157262
10.01.2009, 22:40
0.00 руб.
0 5 1
Пожалуйста помогите решить задачи
а) Вычислить суммы элементов на главных диагоналях матриц A(n,n) и B(m,m). Вычисление каждой суммы проделать в подпрограмме.
б) Вычислить xmax - ymin ,
Z = 2
где xmax – максимальный элемент массива X(n), ymin – минимальный элемент массива Y(m). В подпрограмме предусмотреть вычисление минимального и максимального значений массивов одновременно.
Зарание благодарна.

Обсуждение

Неизвестный
11.01.2009, 00:23
общий
это ответ
Здравствуйте, Горшкова Ирина Владимировна!
Что касается 2го задания, то не совсем ясно, что такое Z. И как оно используется. Возможно не все условие Вы написали?

Приложение:
program Pascal_157262_1;

const
n=5;
m=3;

type
intptr=^integer;

var
a:array[1..n,1..n]of integer;
b:array[1..m,1..m]of integer;
i,j:integer;

function sum(iptr:intptr;cnt:integer):integer;
var
i,s:integer;
begin
s:=0;
for i := 1 to cnt do begin
s:=s+iptr^;
inc(iptr,cnt+1);
end;
sum:=s;
end;


begin
Randomize;
writeln('a=');
for i := 1 to n do begin
for j := 1 to n do begin
a[i,j]:=random(51)-25;
write(a[i,j]:9,' ');
end;
writeln;
end;
writeln('b=');
for i := 1 to m do begin
for j := 1 to m do begin
b[i,j]:=random(51)-25;
write(b[i,j]:9,' ');
end;
writeln;
end;
writeln('sum(a)=',sum(@a,n));
writeln('sum(b)=',sum(@b,m));
readln;
end.
Неизвестный
11.01.2009, 00:23
общий
Замените n=5 и m=3 на свои значения
давно
Старший Модератор
9
677
11.01.2009, 00:31
общий
2Micren
Уважаемый эксперт, помните, пожалуйста, что для уточняющих вопросов существует мини-форум, а не форма отправки ответа.
Неизвестный
11.01.2009, 07:36
общий
Во втором задании идет формула Z =(xmax - ymin)/ 2
Большое спасибо!
Неизвестный
11.01.2009, 10:27
общий
По поводу 2го задания
Код:

program Pascal_157262_2;

const
n=10;
m=15;

type
dblptr=^double;
itemtype=(min,max);

var
x:array[1..n] of double;
y:array[1..m] of double;

function findItem(arr:dblptr;cnt:integer;iType:itemtype):double;
var
i,t:integer;
res:double;
begin
if iType=max then t:=1 else t:=-1;
res:=arr^;
for i := 2 to cnt do begin
Inc(arr);
if arr^*t>res then res:=arr^;
end;
findItem:=res;
end;

var
i:integer;

begin
Randomize;
WriteLn('X=');
for i := 1 to n do begin
x[i]:=Random*51-25;
Write(x[i]:7:3,' ');
end;
WriteLn;
WriteLn('Y=');
for i := 1 to m do begin
y[i]:=Random*51-25;
Write(y[i]:7:3,' ');
end;
WriteLn;
WriteLn('Z=(xmax-ymin)/2=',(findItem(@x,n,max)-findItem(@y,m,min))/2:7:3);
ReadLn;
end.
Форма ответа