![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Andrewshkovskii |
![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
Задание таково,в двумерной матрице просуммировать элементы ниже гл. диагонали.
Работать с указателями. вот код program test2;
uses crt;
const
n=3;
m=3;
var
a:array [1..n,1..n] of integer;
i,j:integer;
procedure SumEl (pa:pointer;n,m:integer);
type
pint= ^integer;
var
si,i,j,k:integer;
function PR(P:pointer):pint;
begin
PR:=ptr(seg(p^),ofs(p^)+(I*n+j)*SI);
end;
begin
k:=0;
si:=sizeof(integer);
for i:=1 to n do
for j:=1 to m do
begin
if i>j then
k:=k+pr(pa)^;
end;
writeln('Summa elementov nije gl. diagonali = ',k);
end;
begin
clrscr;
writeln('Vvedite massiv');
for i:=1 to n do
for j:=1 to m do
begin
write('A[',i,j,']=');
read(a[i,j]);
end;
writeln('Vash massiv');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j],' ');
writeln;
end;
SumEl(@a,n,m);
readkey;
end.
Вот результаты выполнения : Код Vvedite massiv A[11]=1 A[12]=2 A[13]=3 A[21]=4 A[22]=5 A[23]=6 A[31]=7 A[32]=8 A[33]=9 Vash massiv 1 2 3 4 5 6 7 8 9 Summa elementov nije gl. diagonali = 12 Видимо по памяти слишком далеко шагаю... |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 6:25 |