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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.06.2012, 02:32   #1
Влад735
Новичок
Джуниор
 
Регистрация: 07.06.2012
Сообщений: 4
По умолчанию задача

Дана матрица А(5,5) заменить все четные элементы ниже побочной диагонали на 0. помогите решить пожайлуста.

Последний раз редактировалось Влад735; 07.06.2012 в 02:44.
Влад735 вне форума
Старый 07.06.2012, 03:27   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

вот вам теория...

а сейчас непосредственно к задаче...
Побочная диагональ:
Побочная диагональ также определяется только у квадратных матриц и задается следующей формулой:
Цитата:
A[N,MAX-N+1], где N-число от 1 до максимального значения в данной матрице; MAX - размерность матрицы
Как определить, находится ли элемент ниже\на\выше главной диагонали:
Для этого мы воспользуемся формулой главной диагонали - A[N,N].

Цитата:
Если X>Y Тогда элемент выше главной диагонали.
Если X=Y Тогда элемент на главной диагонали.
Eckb X<Y Тогда элемент ниже главной диагонали.
Аналогично для побочной диагонали, только условие изменяется согласно формуле главной диагонали:

Цитата:
Если X>Y-MAX+1 Тогда выше
Если X=Y-MAX+1 Тогда на
Если X<Y-MAX+1 Тогда ниже
и тут 2 способа решения...
первый... примитив из примитивов...
Код:
for y := 1 to n do
for x := 1 to n do
if ( (x < y - n + 1) and ( not ord(a[x,y]) ) ) then
 a[x,y] := 0;

  For Y:=1 to n do
  Begin 
    For X:=1 to n do
     Write(a[X,Y] : 3);
    Writeln;
  End;
и второй немного изощреннее...
Код:
for i:=1 to n do
for j := n - i + 1 to n do
   if (not ord(a[i,j])) then
     a[i,j] := 0;

for i:=1 to n do
begin
  for j:=1 to n do
    write(a[i,j]:3);
  writeln;
end;
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 07.06.2012 в 03:33.
VIK_aka_TOR вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на структуру(struct)/задача на работу с файлом SevenArth Помощь студентам 0 26.04.2012 19:06
Задача о стрелках (задача Майхелла) Silly Student Помощь студентам 0 14.12.2011 22:20
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51