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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2013, 20:54   #1
Любава94
Новичок
Джуниор
 
Регистрация: 09.01.2013
Сообщений: 3
По умолчанию Дан массив Х(4,6)

Дан массив Х(4,6) . Определить имеются ли в массиве элементы с
противоположными значениями среди элементов , расположенных выше главной
диагонали матрицы. Выполнить сортировку по убыванию элементов,
расположенных выше главной диагонали матрицы.
помогите пожалуйста
ничего не получается((


program DomRab;
uses crt;
type
strmenu=record
x:integer;
s:string[14];
end;
const
kol=4;
mas:array[1..kol] of strmenu=
((x:6;s:'Ввод данных'),
(x:20; s: 'Сортировка'),
(x:35; s:'Вывод данных'),
(x:50; s:' Выход'));
var
i:integer;
n:integer;
ch:char;
pv:byte; {признак ввода}
M:array [1..4,1..6] of integer;
procedure inputDan;
var
n:byte;{пункт меню}
i,j:byte;
label M1;
begin
clrscr;
writeln ('1.ручной ввод');
writeln ('2.автоматический ввод');
writeln ('3.выход в меню');
M1: writeln ('введите пункт меню');
readln (n);
case n of
1:begin
writeln ('введите элементы массива');
for i:=1 to 4 do
for j:=1 to 6 do
begin
write ('M[',i,',',j,']=');
readln( M [i,j]);
end;
pv:=1;
end;
2: begin
writeln('автоматический ввод элементов массива');
randomize;
for i:=1 to 4 do
for j:=1 to 6 do
M [i,j]:=random (100);
pv:=1;
end;
3:Exit;
else
goto M1
end;
end;

procedure sortDan;
var
x:array[1..4,1..6] of integer;
x1:array[1..14] of integer;
k:byte;
k:=1;
for i:=1 to 4 do;
for j:=1 to 6 do;
begin
if i<j then x1[k]:x[i,j];
k:= k+1;
end;
end;
procedure outputDan;
begin
for i:=1 to 13 do
for j:=i to 13 do
if x1[j]<>0 then
end;
begin
n:=1;
repeat
textattr:=7;
clrscr;
for i:=1 to kol do
begin
gotoxy (mas[i].x,3);
write (mas[i].s);
end;
textattr:=87;
gotoxy (mas[n].x,3);
write (mas[n].s);
ch:=readkey;
case ch of
#13:case n of
1:inputDan;
2:sortDan;
3utputDan;
end;
#0:begin
ch:=readkey;
case ch of
#77:
if n<kol then
n:=n+1
else
n:=1;
#75:
if n>1 then
n:=n-1
else
n:=kol;
end;
end;
end;
until (ch=#13)and (n=4)or(ch=#27);
textattr:=7;
clrscr;
end.
Любава94 вне форума Ответить с цитированием
Старый 09.01.2013, 23:09   #2
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

У неквадратной матрицы нет понятия "главная диагональ"
но если считать главной диаганалью элементы где порядковый номер строки равен порядковому номеру столбца, до стольки, сколько можно то можно сделать так:
в данном случае элементов расположенных выше "главной диаганали" всего 6
создадим одномерный массив. размерностью 6 и накидаем в него значения этих элементов

Код:
var i,j,n:integer;
begin
n:=0;
for i:=0 to 3 do
for j:=0 to 5 do
begin
 if (i<j) then
 begin
  R[n]:=X[i,j];
  n:=n+1;
end;

for i:=0 to 5 do
for j:=0 to 5 do
begin
 if (abs(R[i])=abs(R[j])) and (i<>j) and (R[i]<>R[j]) then
 begin
    Writeln(R[i]);
    Writeln(R[j]);
 end;
end;

end;
не совсем оптимально но зато самый простой способ)
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 09.01.2013 в 23:17.
Лубышев вне форума Ответить с цитированием
Старый 10.01.2013, 00:26   #3
Любава94
Новичок
Джуниор
 
Регистрация: 09.01.2013
Сообщений: 3
По умолчанию

мне сказали взять 14 элементов
и это и сортировка и нахождение отр. элемента?
Любава94 вне форума Ответить с цитированием
Старый 10.01.2013, 09:20   #4
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

нет это только нахождение тех элементов которые отличаются по знаку и находятся выше "псевдоглавной диагонали"
уточните как сортировать элементы. сортировать по вертикали или горизонтали. все ли столбцы и строки двигать или только элементы
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 10.01.2013 в 09:24.
Лубышев вне форума Ответить с цитированием
Старый 10.01.2013, 13:41   #5
Любава94
Новичок
Джуниор
 
Регистрация: 09.01.2013
Сообщений: 3
По умолчанию

сортировать можно любым способом
Любава94 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан одномерный массив, сформировать новый массив по заданному правилу {Delphi} Nickolai47 Помощь студентам 5 16.12.2012 14:51
Дан массив из 9 байт расматривая его как массив 72 бит подсчитать число нулей в этом массиве. noob asm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 16.04.2012 19:04
Дан массив чисел В[0:N]. Записать подряд в массив А элементы массива В, имеющие четные индексы,(язык си++) yury.zanilov Помощь студентам 9 15.03.2012 21:55