|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
26.12.2016, 23:23 | #1 (permalink) |
Новичок
Регистрация: 26.12.2016
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Проблема с задачами по Паскалю
|
26.12.2016, 23:23 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Эти обсуждения очень схожи с вашей темой Помогите с задачами на С++ Помощь с задачами, Pascal |
26.12.2016, 23:46 | #2 (permalink) |
Member
Регистрация: 04.12.2016
Сообщений: 131
Сказал(а) спасибо: 25
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3445
|
Ну и в чём проблема? Если "с записью в оперативную память", то, очевидно, потребуется одномерный массив размерностью M для хранения суммы. Пройтись по матрице от 1 до M, для каждой строки перебрать все элементы от 1 до N и если он положительный и чётный, то в сумму для этой строки его добавить.
|
27.12.2016, 12:38 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ох, боюсь тут не так просто. Скорее всего, "с записью в оперативную память" означает использование динамических переменных и указателей. Вообще-то я в этом не очень, но ладно, после обеда, если будет время, попробую.
|
27.12.2016, 15:43 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Как-то так:
Код:
{$r-} Const M=10; N=12; Type T=Array[1..1] of Integer; Var A,V:^T; D:^Integer; i,j:Integer; Begin GetMem(A, SizeOf(Integer)*M*N); GetMem(V, SizeOf(Integer)*M); GetMem(D, SizeOf(Integer)); Randomize; WriteLn('Matrix A:'); for i:=1 to M do for j:=1 to N do A^[N*(i-1)+j]:=-10+Random(20); for i:=1 to M do begin for j:=1 to N do Write(A^[N*(i-1)+j]:5); WriteLn; end; WriteLn; Writeln; for i:=1 to M do begin New(D); D^:=0; for j:=1 to N do if (A^[N*(i-1)+j]>0) and ((A^[N*(i-1)+j] mod 2)=0) then D^:=D^+A^[N*(i-1)+j]; V^[i]:=D^; Dispose(D); end; Writeln('Sums:'); for i:=1 to M do Write(V^[i]:5); FreeMem(A, SizeOf(Integer)*M*N); FreeMem(V, SizeOf(Integer)*M); ReadLn; END. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|