Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ задачи с процедурами

Автор: me to you 26.05.2007 23:17

Помогите... срочно нужна помощ...
1. Если среднее арифметическое матрицы А положительно, задать элементам С1, С2,...,Ск значения тех элементов матрицы А, которые больше этого среднего арифметического. Для проверки наличия нулевых эл. в произв. строке матрицы использовать процедуру.
2.для матрицы А(4х5) вывести те строки, в которых есть нулевые элементы, или вывести сообщения "нет строк с нулями"
Без процедур она как делать нефиг решается...
Вот что я написала, но не пашет )

program z;
type matr=array[1..5,1..5] of real;
var c,s: real; A:matr;
n,i,j,k:integer;

procedure vvod_matr(n:integer;var A:matr);
var i,j:integer;
begin
writeln ('Vvedite N');
readln (N);
writeln ('Vvedite matrix A razmerom ',n,'*',n);
for i:=1 to n do
for j:=1 to n do
read (a[i,j]);
readln;
end;
function vich(var s:real; n:integer;var A:matr):real;
var i,j:integer;
begin
s:=0;
for i:=1 to n do
begin
for j:=1 to n do
s:=s+a[i,j]/(n*n);
end;
vich:=S
end;
procedure SOOTV(var c,s:real; k:integer; var A:matr);
var i,j: integer;
begin
k:=0;
for i:=1 to n do
for j:=1 to n do
if a[i,j]>s then
begin
k:=k+1;
c:=a[i,j];
writeln('k= ',k:2,'c= ',c:2:2);
readln;
end;
end;

Begin
vvod_matr(n, A);
vich(s,n,A);
if S > 0 then
SOOTV(c,s, k, A)
else
begin
writeln('среднее арифметическое меньше нуля');
readln;
end
End.

2.
program x;
type matr=array[1..4,1..5] of real;

var A,B:matr; i,k,n :integer; f:boolean;
Procedure vvod_matr (n,m:integer; var A:matr);
var i,j: integer;
begin
writeln('input matrix A size of ',n,' x ',m);
for i:=1 to n do
for j:=1 to m do
read (A[i,j]);
readln;
end;

procedure vivod_mas (n,m:integer; var B:matr);
var i,j:integer;
begin
for j:=1 to m do
write(B[i,j]);
writeln
end;
function FLAG(m:integer;var A:matr):boolean;
var j:integer; f:boolean;
begin
f:=false;
for j:=1 to m do
if A[i,j]=0 then f:=true;

FLAG:=f;
end;
Begin
vvod_matr(n,m,A);
k:=0;
for i:=1 to n do
begin
if f=true then
begin
vivod_mas(m,B);
end
else
k:=k+1;
end;
if k=n then
begin
writeln('Het ctpok c Hy/\9lmu');
readln;
end
else
End.

Автор: мисс_граффити 27.05.2007 3:00

me to you, пожалуйста, уважайте собеседников и заключайте код программ в теги code!
отредактируйте сообщение, будьте любезны.