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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2009, 21:40   #1
Sexy girl*
 
Регистрация: 12.10.2009
Сообщений: 7
Вопрос Обработка двухмерных массивов.

Здрасте всем, кто здесь!! Не могли бы помочь с некоторыми задачами...пжл :*
Задание:
Написать программу на языке программирования..Pascal
Задачи:
1) В матрице переставить в обратном порядке элементы тех столбцов, которые начинаются нулевыми элементами.

2) Для элементов побочной диагонали, меньших нуля, найти сумму элементов строки, где этот элемент расположен.
Sexy girl* вне форума Ответить с цитированием
Старый 15.10.2009, 21:48   #2
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Ваши наработки или в раздел "Фриланс". Вот могу только подсказать по второй задаче, дальше сами:

Код:
sum:=0;
for i:=1 to n do
begin
   if matr[i,n-i+1] < 0 then
    for k:=1 to n do
     sum:=sum+matr[i,k];
   sum:=0;
end;

Последний раз редактировалось profi; 15.10.2009 в 21:57.
profi вне форума Ответить с цитированием
Старый 18.10.2009, 01:55   #3
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

Вот держи
Код:
Const MaxArraySize=10;
Var A:Array[1..MaxArraySize,1..MaxArraySize] of Integer;
Var Temp:Integer;

Var mSize:Integer;
Var i,j:Integer;
Var Sum:Integer;
Begin
  Repeat
    Write('Введите размерность матрицы:'); ReadLN(mSize);
    if (mSize<1) then WriteLN('Размерность матрицы не может быть меньше 1');
    if (mSize>MaxArraySize) then WriteLN('Размерность матрицы не может быть больше ',MaxArraySize);
  until ((mSize>=1) and (mSize<=MaxArraySize));
  for i:=1 to mSize do
  Begin
    for j:=1 to mSize do
    Begin
      Write('A[',i,',',j,']='); ReadLN(A[i,j]);
    End;
  End;

  WriteLN;
  WriteLN;
  WriteLN('Исходная матрица');
  for i:=1 to mSize do
  Begin
    for j:=1 to mSize do
    Begin
      Write(A[i,j]:5)
    End;
    WriteLN;
  End;



{Переставляем элементы столбцов начинающиеся с 0}
  for j:=1 to mSize do
  Begin
    if (A[1,j]=0) then Begin
      for i:=1 to (mSize div 2) do
      Begin
        Temp := A[i,j];
        A[i,j] := A[mSize-i+1,j];
        A[mSize-i+1,j] := Temp;
      End;
    End;
  End;

  WriteLN;
  WriteLN;
  WriteLN('Матрица после перестановки');
  for i:=1 to mSize do
  Begin
    for j:=1 to mSize do
    Begin
      Write(A[i,j]:5)
    End;
    WriteLN;
  End;


  WriteLN;
  WriteLN;
{Ищем элементы на побочной диагонали}
  for i:= 1 to mSize do
  Begin
    if (A[i,mSize-i+1]<0) then Begin
      {Итак мы нашли ствоку, теперь просумируем все элементы в ней}
      Sum := 0;
      for j:= 1 to mSize do
      Begin
        Sum := Sum+A[i,j];
      End;
      WriteLN('В строке №',i,' на побочной диагонали элемент A[',i,',',(mSize-i+1),
              ']=',A[i,mSize-i+1],'<0  и сумма элементов строки A[',i,',',1,']..A[',i,',',mSize,']=',Sum);
    End;
  End;
  ReadLN;
End.
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."
val_nnm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка динамических массивов funky Помощь студентам 0 11.05.2009 17:53
Обработка массивов данных ALEX_АНДр Помощь студентам 6 06.04.2009 18:59
Обработка массивов. C++ for DOS. slog Помощь студентам 0 09.12.2008 17:34