Паскаль, Процедурище

Ответить
Omiira
Сообщения: 5
Зарегистрирован: 03 май 2009, 14:53

Помогите мне, пожалуста)) что получиться=*))) (все с процедурами):
7. Если наибольший элемент матрицы А находиться выше главной диагонали, найти сумму элементов матрицы, лежащих ниже главной диагонали.

10.Если разность максимального и минимального элемента матрицы А превышает заданную величину Р, заменить в матрице А все отрицательные элементы нулями, а положительные еденицами.

стр. 46
7. Дана матрица А из n строк и n столбцов. Найти среднее арифметическое элементов матрицы и сумму элементов тех строк матрицы, в которых отрицателен элемент главной диагонали.


1. На заданном отрезке АВ(А = 0,55; В = 1) разбитом на n одинаковых систем n=10, где х меняется по закону арифметической прогрессии. вычислите функцию y заданной по формуле и напечатать цикл ее значений.
sqrt ( 1 / 5 + e x p (1 / 5 * ln ( e x p ( X ) ) ) / a b s ( l n ( s q r ( X ) ) - 1 , 3 )
BHy4ok
Сообщения: 237
Зарегистрирован: 01 май 2007, 09:03
Откуда: г.Находка
Контактная информация:

1 и 4 задачи у вас повторяются, пишите внимательней.
Omiira писал(а): 7. Если наибольший элемент матрицы А находиться выше главной диагонали, найти сумму элементов матрицы, лежащих ниже главной диагонали.

[syntax='Pascal']
uses
Crt;
var
i,j,m,max,sum,x,y,n:integer;
a:array[0..20, 0..20] of integer;
procedure summ();
begin
max:=0;
sum:=0;
for i := 0 to m do
for j := 0 to m do
if max<a[i,j] then // Ищем максимальный элемент в матрице
max:=a[i,j];
for i := 0 to m do
for j := 0 to m do
begin
if i<j then // Ищем максимальный элемент по главной диагонали
if a[i,j]=max then // Если нашли, то ...
begin
for x := 0 to m do
for y := 0 to m do
begin
if x>y then // ... то Суммируем числа ниже главное диагонали
sum:=sum+a[x,y];
end;
end;
end;
end;

begin
ClrScr;
write('Vvedite matricy N*N: ');
readln(n);
writeln;
m:=n-1;
randomize; // Заполняем матрицу случайными числами
for i := 0 to m do
for j := 0 to m do
a[i,j]:=random(30);

for i := 0 to m do
begin
for j := 0 to m do
write(a[i,j]: 5); // Выводим матрицу на экран
writeln;
end;

summ; // Выполянем процедуру
writeln;
write('Max element v matrice: ', max);
writeln;
if sum<>0 then
write('Summa elementov nijnei diagonali: ', sum) else
write('Max nahoditsa ne v verhnei diagonale! ');
writeln;
readln;

end.

[/syntax]
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Omiira писал(а): 10.Если разность максимального и минимального элемента матрицы А превышает заданную величину Р, заменить в матрице А все отрицательные элементы нулями, а положительные еденицами.
[syntax='Pascal']
uses
Crt;
var
i,j,max,min,p,m,rez,n:integer;
a:array[0..20, 0..20] of integer;
t:boolean;
procedure check();
begin
max:=a[0,0];
min:=a[0,0];
t:=false;
for i := 0 to m do
for j := 0 to m do
if max<a[i,j] then
max:=a[i,j];
for i := 0 to m do
for j := 0 to m do
if a[i,j]<min then
min:=a[i,j];
rez:=max-min;
if rez>p then
begin
t:=true;
for I := 0 to m do
for j := 0 to m do
if a[i,j]<0 then
a[i,j]:=0 else
a[i,j]:=1;
end;
end;
begin
ClrScr;
write('Vvedite P: ');
readln(p);
write('Vvedite matrix N*N: ');
readln(n);
writeln;
m:=n-1;
randomize; // Заполняем матрицу случайными числами
for i := 0 to m do
for j := 0 to m do
a[i,j]:=random(30)-10;

Writeln('Ishodnaya matrix');
for i := 0 to m do // выводим исходную матрицу на экран
begin
for j := 0 to m do
write(a[i,j]: 5);
writeln;
end;

check; // Выполянем процедуру
if t then
begin
writeln;
writeln('Polychennaya matrix');
for i := 0 to m do // выводим полученную матрицу на экран
begin
for j := 0 to m do
write(a[i,j]: 5);
writeln;
end;
end;
writeln;
writeln('Min: ', min);
writeln('Max: ', max);
writeln('Max - Min = ', rez);
readln;

end.
[/syntax]
Omiira писал(а): 7. Дана матрица А из n строк и n столбцов. Найти среднее арифметическое элементов матрицы и сумму элементов тех строк матрицы, в которых отрицателен элемент главной диагонали.
[syntax='Pascal']
uses
Crt;
var
i,j,m,x,sum,k,n:integer;
sr:real;
a:array[0..20, 0..20] of integer;

procedure check();
begin
sum:=0;
k:=0;
sr:=0;

for i := 0 to m do
for j := 0 to m do
if i=j then
if a[i,j]<0 then // Если нашли отрицательный элемент, то ...
for x := 0 to m do
begin
inc(k);
sum:=sum+a[i,x]; // ... суммируем
end;
if k<>0 then
sr:=sum/k; // Вычисляем среднее арифмитическое
end;
begin
ClrScr;
write('Vvedite matrix N*N: ');
readln(n);
writeln;
m:=n-1;

randomize; // Заполняем матрицу случайными числами
for i := 0 to m do
for j := 0 to m do
a[i,j]:=random(30)-10;

Writeln('Ishodnaya matrix');
for i := 0 to m do // выводим исходную матрицу на экран
begin
for j := 0 to m do
write(a[i,j]: 5);
writeln;
end;

check;// Выполянем процедуру
writeln;
if k=0 then
writeln('Net otricatelnih elementov po glavnoi diagonale!')
else
begin
writeln('Summa elementov: ',sum);
writeln('Srednee arifmeticheskoe: ', sr:2:1);
end;
readln;

end.
[/syntax]
< L3X. (ICQ: 8721378, Mail - l3x@list.ru)
Omiira
Сообщения: 5
Зарегистрирован: 03 май 2009, 14:53

:D благодарю, вы солнце)))
Ответить