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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2012, 20:12   #1
ВДПУ
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 37
Вопрос как определить наименьший нечетный элемент в двух мерном массиве

Код:
const
    n=5;
    m=5;
    var a: array[1..n, 1..m] of integer;
    i,j: integer;
begin
randomize;
  for i:=1 to n do
   for j:=1 to m do
   a[i,j]:= random(140)-120;
   for i:=1 to n do
begin
 for j:=1 to m do
 write (a[i,j]:5);
 writeln;
 end;
 readln;

Последний раз редактировалось ВДПУ; 26.05.2012 в 20:45.
ВДПУ вне форума Ответить с цитированием
Старый 26.05.2012, 20:31   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А что такое парный элемент?
s-andriano вне форума Ответить с цитированием
Старый 26.05.2012, 20:38   #3
ВДПУ
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 37
По умолчанию

извените ошибся " как определить наименьший нечетный элемент в двух мерном массиве"
ВДПУ вне форума Ответить с цитированием
Старый 26.05.2012, 20:48   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Если это с украинского, то "парный" переводится как "четный", а не "нечетный".
s-andriano вне форума Ответить с цитированием
Старый 26.05.2012, 20:54   #5
ВДПУ
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 37
По умолчанию

Я ошибся в условии всего задания
спасибо за урок русского языка)
А с задачей поможете?
ВДПУ вне форума Ответить с цитированием
Старый 26.05.2012, 21:15   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А что значит "найти" - Вам нужно значение или положение в массиве?
В любом случае нужно завести дополнительную переменную для нахождения минимума.
Инициализируете эту переменную либо первым элементом массива, либо максимальным положительным числом.
Потом - такой же вложенный цикл, каких два Вы уже написали.
Внутри цикла проверить элемент на четность или нечетность (так и не понял, что именно Вам нужно). Для этого служит функция odd.
Если четность/нечетность устраивает, то сравниваете с переменной для минимума. Если меньше - обновляете эту переменную. А если требуется, запоминаете еще и индексы.
В конце - у Вас в переменной значение искомого минимума, а если запоминали индексы, - они тоже.
s-andriano вне форума Ответить с цитированием
Старый 26.05.2012, 21:23   #7
ВДПУ
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 37
По умолчанию

смотрите. Я сделал так.
Код:
for i:=1 to n do
 begin
   for j:=1 to m do
   if a[i,j]>a[i,j+1] then
   begin
    c:=a[i,j];
    a[i,j]:= a[i,j+1];
    a[i,j+1]:=c;
    end
    end;
ВДПУ вне форума Ответить с цитированием
Старый 26.05.2012, 21:33   #8
ВДПУ
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 37
По умолчанию

Я не могу правильно составить условие.
ВДПУ вне форума Ответить с цитированием
Старый 26.05.2012, 22:19   #9
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от ВДПУ Посмотреть сообщение
смотрите. Я сделал так.
Объяснить этот фрагмент кода можете?
s-andriano вне форума Ответить с цитированием
Старый 27.05.2012, 10:35   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ВДПУ Посмотреть сообщение
смотрите. Я сделал так.
Код:
for i:=1 to n do
 begin
   for j:=1 to m do
   if a[i,j]>a[i,j+1] then
   begin
    c:=a[i,j];
    a[i,j]:= a[i,j+1];
    a[i,j+1]:=c;
    end
    end;
Ваш кусочек кода никакого отношения к поискам наименьшего элемента отношения не имеет.
Вы пытаетесь СОРТИРОВАТЬ массив. А оно Вам надо?!

Алгоритм должен быть такой.
В переменную запомнили значение первого НЕЧЁТНОГО элемента массива (или индексы такого элемента, если Вам нужно найти позицию элемента в исходном массиве. а ещё эти индексы можно использовать как признак - "нашёлся ли первый нечётный элемент").
Дальше в двух циклах (по строчкам и по столбцам) перебираете все элементы массива. Если очередной элемент НЕЧЁТНЫЙ и меньше, чем наш запомненный, то его величину сохраняем в переменную.


p.s. мне (как и многим другим) проще написать вам решение, чем "разжёвывать", как это сделать, но, поверьте, если Вы сами напишете код, это даст Вам НАМНОГО больше, чем если бы воспользовались готовым кодом. впрочем, воля ваша, если хотите, я напишу Вам решение...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на зачёт. Поиск элементов в 1-мерном массиве oRik24 Помощь студентам 7 16.06.2011 11:04
Как определить элемент массива парный или не парный ВДПУ Помощь студентам 1 27.02.2011 20:34
Найти наименьший отрицательный элемент выше побочной диагонали и наименьший положительный ниже (Pascal) Tifa Помощь студентам 10 28.01.2011 08:23
Определить пустой ли элемент в массиве NeVerSS Общие вопросы Delphi 4 17.05.2010 13:01
. Среди всех нецелых элементов этого массива найти наименьший и определить его номер в массиве Паскалька^^ Паскаль, Turbo Pascal, PascalABC.NET 3 19.12.2008 14:18