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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2011, 21:25   #1
Tifa
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 30
По умолчанию Найти наименьший отрицательный элемент выше побочной диагонали и наименьший положительный ниже (Pascal)

3)Дан двухмерный массив.Найти наименьший отрицательный элемент выше побочной диагонали и наименьший положительный элемент ниже побочной диагонали с указанием их индексов.Создать новый массив,в котором найденные элементы поменяюца местами.
Код:
program progr3;
uses crt;
var
c,d,e,f,i,j,m,n,buf,min1,min2:integer;
a:array [1..40,1..40] of integer;
b:array [1..40,1..40] of integer;
s:real;
Begin
clrscr;
writeln('Vvedite razmernost');read(n);
for i:=1 to n do
for j:=1 to n do
begin
writeln('Vvedite a[',i,',',j,']');
read(a[i,j]);
b[i,j]:=a[i,j];
end;
min1:=a[1,1];
c:=1;
d:=1;
for i:=2 to n-1 do
for j:=1 to n-i do
begin
if (a[i,j]<min1) and (a[i,j]<0) then begin
                                min1:=a[i,j];
                                c:=i;
                                d:=j;
                                end;
end;
min2:=a[2,n];
e:=2;
f:=n;
for i:=2 to n do
for j:=n-i+2 to n do
begin
if (a[i,j]<min2) and (a[i,j]<0) then begin
                                min2:=a[i,j];
                                e:=i;
                                f:=j;
                                end;

end;
buf:=b[c,d];
b[c,d]:=b[e,f];
b[e,f]:=buf;
if min1>=0 then writeln('Nad diagonaliu net otricatelnix elementov');
if min2>=0 then writeln('Pod diagonaliu net otricatelnix elementov');
if (min1<0) and (min2<0) then begin
                              for i:=1 to n do
                              for j:=1 to n do
                              write(a[i,j]);
                              end;
readln;
End.
...незнаю в чем ошибка...я ваше запуталась помоему она в корне не правельная....помогите разобраца..!



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 27.01.2011 в 22:57.
Tifa вне форума Ответить с цитированием
Старый 27.01.2011, 21:28   #2
x_proof
 
Регистрация: 18.01.2011
Сообщений: 7
По умолчанию

Называй темы нормально, тогда их не закроют...
x_proof вне форума Ответить с цитированием
Старый 27.01.2011, 21:32   #3
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Сходу вижу две ошибки
Код:
min1:=a[1,1];
c:=1;
d:=1;
for i:=2 to n-1 do
for j:=1 to n-i do
i должно с 1 начинаться
Код:
min2:=a[2,n];
e:=2;
f:=n;
for i:=2 to n do
for j:=n-i+2 to n do
begin
if (a[i,j]<min2) and (a[i,j]<0) then begin
a[i,j] > 0 - положительные же элементы ищем
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 27.01.2011, 21:49   #4
Tifa
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 30
По умолчанию

а можно поточнее!(пожалуста!
Tifa вне форума Ответить с цитированием
Старый 27.01.2011, 21:54   #5
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Куда точнее-то?
Код:
for i:=1 to n-1 do
Код:
if (a[i,j]<min2) and (a[i,j]>0) then begin
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 27.01.2011, 22:02   #6
Tifa
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 30
Подмигивание

несоставило бы тебе труда взять мою програму и исправить где есть ошибка!!!!...плиз!
Tifa вне форума Ответить с цитированием
Старый 27.01.2011, 22:18   #7
x_proof
 
Регистрация: 18.01.2011
Сообщений: 7
По умолчанию

у меня вот что получилось. протестируй...
Код:
program Project1;
 
const
  {Количество строк и столбцов.}
  M = 4;
var
  Arr,B : array[1..M, 1..M] of Integer;
  i, j : Integer;
  Min1, Min2 : Integer;
  S : String;
begin


  repeat
	{Инициализируем генератор случайных чисел.}
    Randomize;
	{Заполняем массив значениями и распечатываем его.}
    for i := 1 to M do 
      for j := 1 to M do 
		begin
			Arr[i, j] :=-10 + Random(20);
			B[i, j]:=Arr[i, j]
	end;
	
	if j > 1 then Write(', ');
	Write(Arr[i, j]:3);
      end;
      Writeln;
    end;

    {Ищем наименьшее значение, расположенное выше побочной диагонали
    и наименьшее значение, расположенное ниже побочной диагонали.}
    for i := 1 to M do 
      for j := 1 to M do		
	if (i + j > M + 1) and (Arr[i, j]>0) then Min2:=Arr[i, j];
		
				
    Min1 := Arr[1, 1];
    for i := 1 to M do begin
      for j := 1 to M do begin
	if i + j < M + 1 then begin
	  if (Arr[i, j] < Min1) and (Arr[i, j]<0)then Min1 := Arr[i, j]
	end else if i + j > M + 1 then begin
	  if (Arr[i, j] < Min2) and (Arr[i, j]>0) then Min2 := Arr[i, j]
        end;
      end;
    end;
 
 
    Writeln('Минимальное отрицательное значение выше побочной диагонали: ', Min1);
    Writeln('Минимальное положительное значение ниже побочной диагонали: ', Min2);
 
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
 
end.
x_proof вне форума Ответить с цитированием
Старый 27.01.2011, 22:48   #8
Tifa
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 30
По умолчанию

а можно что бы самому цифры водить !?..пожалуста....!)
Tifa вне форума Ответить с цитированием
Старый 27.01.2011, 22:59   #9
x_proof
 
Регистрация: 18.01.2011
Сообщений: 7
По умолчанию

ну замени мой код, где генерируется случайное число, на свой. у тебя же сделано. и можно сделать проверку на наличие отриц и положит над и под диагональю, прежде чем искать минимум и максимум. Ну это ты уже само доделай...
x_proof вне форума Ответить с цитированием
Старый 27.01.2011, 23:12   #10
Tifa
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 30
По умолчанию

блин чет не получпеца у меня это соединить ......ошибки постояные немог бы ты написать...
Tifa вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] найти сумму элементов лежащих ниже побочной диагонали Рамик Помощь студентам 12 28.03.2011 22:53
Надо найти наименьший по МОДУлю Элемент Kembell13 Помощь студентам 1 29.12.2010 20:54
Дан двумерный массив.Найти наибольший отрицательный элемент выше побочной диагонали и наименьший положите red-white Помощь студентам 1 05.11.2010 09:51
найти наибольший и наименьший элемент матрицы B(N x M) и поменять их местами поЛотЕнчик_просТо Общие вопросы C/C++ 2 13.05.2009 12:17
найти наименьший элемент и его номер в заданной таблице tim777777 Помощь студентам 1 02.03.2009 15:12