Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2009, 15:06   #1
Otre4eHHbIu
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 31
По умолчанию Матрицы, наработок нет (2-ая задача)

Дана матрица А, состоящая из m строк и n столбцов. Известно, что в матрице элемент последнего столбца может иметь лишь значения 0 и 1. Найти среднее арифметическое общей совокупности элементов тех строк, последний элемент которых равен 1.
Otre4eHHbIu вне форума Ответить с цитированием
Старый 13.06.2009, 15:29   #2
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Код:
const
	m = 2;
	n = 2;

type 
	matrix = array[1..m,1..n] of integer;

procedure fill_matrix(var X:matrix);
var
	i,j:byte;
begin
	randomize;
	for i:=1 to m do begin
		for j:=1 to n-1 do
			X[i,j] := random(10);
		X[i,n] := random(2);	
	end;
end;

procedure out_matrix(X:matrix);
var
	i,j:byte;
begin
	for i:=1 to m do begin
		for j:=1 to n do
			write(X[i,j]:3);
		writeln;
	end;
end;

function count_mean(X:matrix):real;
var
	i,j,k:byte;
begin
	count_mean := 0; k := 0;
	for i:=1 to m do
		for j:=1 to n do
			if (X[i,n] = 1) then begin
				count_mean := count_mean + X[i,j];
				inc(k)
			end
			else 
				break;
	count_mean := count_mean / k;
end;

var
	A:matrix;
begin
	fill_matrix(A);
	out_matrix(A);
	writeln('Mean is ',count_mean(A):0:5);
	readln;
end.
***
Естественно там надо еще учесть случай, когда k = 0 (все строки заканчиваются 0). Сами делайте.
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 13.06.2009, 15:30   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
uses crt;
var a:array[1..50,1..50] of integer;
    m,n,i,j,k:byte;
    sr:real;
begin
clrscr;
randomize;
write('Количество строк    m= ');
readln(m);
write('Количество столбцов n=');
readln(n);
writeln('Матрица:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    if j<n then a[i,j]:=random(10)+2
    else a[i,j]:=random(2);
    write(a[i,j]:4);
   end;
  writeln;
 end;
sr:=0;k:=0;
for i:=1 to m do
for j:=1 to n do
if a[i,n]=1 then
  begin
   sr:=sr+a[i,j];
   k:=k+1;
  end;
sr:=sr/k;
write('Среднее по условию=',sr:0:2);
readln
end.
puporev вне форума Ответить с цитированием
Старый 13.06.2009, 16:00   #4
Otre4eHHbIu
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 31
По умолчанию

огромное спасибо!
Otre4eHHbIu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрицы, наработок нет.... Otre4eHHbIu Помощь студентам 4 13.06.2009 22:25
Паскаль, матрицы, наработок нету.(1) Otre4eHHbIu Помощь студентам 2 28.05.2009 06:28
Паскаль, матрицы, наработок нету.(2) Otre4eHHbIu Помощь студентам 6 28.05.2009 06:28