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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2010, 15:17   #1
DanielDefo
 
Регистрация: 01.04.2010
Сообщений: 6
По умолчанию Обработки многомерных массивов с использованием циклов.

Составить программу для обработки многомерных массивов с использованием циклов:
Дана цело-численная квадратная матрица. Определить: а) сумму элементов в тех столбцах, которые не содержат отрицательных элементов, б) минимум среди сумм модулей элементов Диагоналей, параллельных побочной Диагонали матрицы.

Задание сделать эту программу на С++ и на Паскале.

Вот есть листинг этой программы на С++:

Код:
#include <stdio.h>
#include <math.h>
#define N 3
void main()
{
int A[N][N];
int i, j, z, sum, min;
 
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
scanf("%d",&A[i][j]);
 
for (j = 0; j < N; j++)
{
sum = 0;
for (i = 0; i < N; i++) 
{
if(A[i][j] >= 0 )
sum += A[i][j];
else
break;
}
if ( i == N) printf(" %d Suma elementov v stolbce = %d\n",j,sum);
}
sum = 0;
 
for(j = N-2; j > 0; j--,sum = 0)
{
for(i = N-1,z = j; z < N; i--,z++)
sum += abs(A[i][z]);
if ( j == N-2)
min = sum;
else if (sum < min)
min = sum;
}
 
for(j = N-2; j > 0  ; j--,sum = 0)
{
for(i = 0,z = j; z >= 0; i++,z--)
sum += abs(A[i][z]);
if ( j == N-2)
min = sum;
else if (sum < min)
min = sum;
}
printf("Minimum Sum = %d",min);
}

А вот на Паскале не могу написать это же. Помогите решить. Заранее спасибо.

Последний раз редактировалось Stilet; 01.04.2010 в 15:21.
DanielDefo вне форума Ответить с цитированием
Старый 01.04.2010, 15:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что-то вроде такого:
Код:
var q,w,d1,d2:integer;a:array[1..5,1..5] of integer;
 s:array[1..5] of integer;
begin
 for q:=1 to 5 do begin
  for w:=1 to 5 do begin
    a[q,w]:=90-random(100);write(a[q,w]:5);
  end; writeln;
    d1:=d1+abs(a[q,q]);
    d2:=d2+abs(a[6-q,q]);
  for w:=1 to 5 do begin
    if a[q,w]<0 then begin
     s[q]:=-MaxInt;
     break;
    end else    begin
     s[q]:=s[q]+a[q,w];
    end;
  end;
 end;
 writeln;
 for q:=1 to 5 do if s[q]<>-maxint then write(s[q]:5) else write('     ');
 writeln;
 if d1<d2 then write('D1=',d1) else write('D2=',d2);
 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.04.2010, 15:51   #3
DanielDefo
 
Регистрация: 01.04.2010
Сообщений: 6
По умолчанию

Я это в паскале вбил и у меня выбило сразу всю матрицу 5х5. И в столбце где -1 считает сумму. А как сделать чтою именно выдавало что
" сумма элементов в столбце (например) = 10
Минимум сумм =8"
Буду очень благодарен
DanielDefo вне форума Ответить с цитированием
Старый 01.04.2010, 16:18   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Минимум сумм =8"
А вон видишь там Writeln с 'D1'?
Вот в нем и пропиши 'сумма элементов в столбце'
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение многомерных массивов из Фортрана в C++ Скарам Помощь студентам 2 08.09.2009 15:06
с использованием вложенных циклов вкусняшка Помощь студентам 4 31.03.2009 17:22
Программы с использованием операторов ветвления и циклов Vitas1234 Помощь студентам 1 11.06.2008 17:41
Программы с использованием операторов ветвления и циклов Vitas1234 Паскаль, Turbo Pascal, PascalABC.NET 9 11.06.2008 16:18
Сортировка многомерных массивов С++ Perfect.Enemy Общие вопросы C/C++ 5 12.04.2008 16:39