Двумерный массив в Делфи(СРОЧНО)

Ответить
jackass92
Сообщения: 1
Зарегистрирован: 10 янв 2017, 21:36

10 янв 2017, 21:38

Ребята, помогите, пожалуйста. Пропустил лекцию по двумерным массивам и теперь вообще не пойму, как это делается. Алгоритмы писать умею, а вот с программами - беда. Иду на автомат, а две проги всё портят. Вот два задания, буду очень признателен.
а) Для массива L(N,M) найти кол-во положительных, отрицательных и нулевых элементов;
б) Из массива M(4,5) сформировать массив B(5), каждый элемент которого равен произведению ненулевых элементов соответствующего столбца массива M.
Аватара пользователя
AiK
Сообщения: 2273
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

10 янв 2017, 21:49

Так, а в чём проблема? Обходят двумерный массив, например, двумя вложенными циклами. Во внутреннем цикле меняешь одну координату, во внешнем - другую.

Код: Выделить всё

for j:=1 to N do
    for j:=1 to M do
  begin
   //сравнение элемента L[i,j] на ноль, на положительное и отрицательное значение
   //инкрементирование соответствующего счётчика
  end;
Даже самый дурацкий замысел можно воплотить мастерски
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

10 янв 2017, 22:36

jackass92 писал(а): б) Из массива M(4,5) сформировать массив B(5), каждый элемент которого равен произведению ненулевых элементов соответствующего столбца массива M.
Вот Вам под "б":

Код: Выделить всё

var
	M: array[1..4, 1..5] of Integer;
	B: array[1..5] of Integer;
	i, j: Integer;
begin
	for j := 1 to 5 do
		B[j] := 1;
	
	Randomize;
	for i := 1 to 4 do
	begin
		for j := 1 to 5 do
		begin
			M[i, j] := Random(10);
			Write(M[i, j]:5);
		
			if M[i, j] <> 0 then
				B[j] := B[j] * M[i, j];
		end;
		WriteLn;
	end;
	
	WriteLn;
	
	for j := 1 to 5 do
		Write(B[j]:5);
	
	ReadLn;
end.
Нет религии выше истины
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

10 янв 2017, 22:42

AiK писал(а):Так, а в чём проблема?...
jackass92 писал(а):...а) Для массива L(N,M)...
ТС, Вам динамический массив надо? Если нет, то для "автомата" такая задача вообще должна быть на раз-два )
Нет религии выше истины
Ответить