IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> сумма элементов из области матрицы, отмеченной символом *
valerosha
сообщение 15.10.2009 18:40
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Здравствуйте,
подскажите, пожалуйста, решение или укажите нужное направление

Var A: array [1..n, 1..n] of real; (n-нечетно).
Найти сумму элементов из области матрицы A, отмеченной символом ‘*’:
0 0 0 * 0 0 0
0 0 * * * 0 0
0 * * * * * 0
* * * * * * *
0 * * * * * 0
0 0 * * * 0 0
0 0 0 * 0 0 0
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 2.03.2010 11:48
Сообщение #2


Гость






Цитата
тут походу точно должно быть две матрицы, или я ошибаюсь?
И здесь все делается теми же двумя циклами:
  for i := 1 to n div 2 + n mod 2 do
for j := i to n - i + 1 do
begin
s := s + a[i, j];
if i <> n div 2 + n mod 2 then { Чтобы центральный элемент не посчитать дважды }
s := s + a[n - i + 1, j];
end;
 К началу страницы 
+ Ответить 
koda
сообщение 3.03.2010 16:22
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Николай

Репутация: -  0  +


Почему то не получается, не могу разобраться, помогите. И в массив забивать можно любые числа или нет? К примеру:
1 2 3 4 5 6 7
2 3 4 5 6 7 8
3 4 5 6 7 8 9
4 5 6 7 8 9 0
5 6 7 8 9 0 1
6 7 8 9 0 1 2
7 8 9 0 1 2 3

или же как по условию, с нулями где и должны стоять.

Program Massivzv;
const
n=7;
var
a:array[1..n, 1..n] of real;
i, j, s: integer;
begin
assign(input, 'massivzv.in'); reset(input);
assign(output, 'massivzv.out'); rewrite(output)
for i := 1 to n div 2 + n mod 2 do
for j := i to n - i + 1 do
begin
s := s + a[i, j];
if i <> n div 2 + n mod 2 then { Чтобы центральный элемент не посчитать дважды }
s := s + a[n - i + 1, j];
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 19:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"