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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2012, 00:59   #1
Radio-Man
 
Регистрация: 28.09.2012
Сообщений: 3
Радость Задача на паскале Массивы

Добрый вечер, уважаемые форумчане, помогите с задачкой!!!! Не знаю что делать....
Даны 2 массива действительных чисел А(10) и В(15). Построить упорядоченный массив С из элементов А и В, сначала четных, расположенных в порядке убывания, а затем нечетных, расположенных в порядке возрастания.
Radio-Man вне форума Ответить с цитированием
Старый 28.09.2012, 07:04   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

1) Объявляем массив C[25], Д[13]
2) Копируем в C все четные элементы массивов А и Б
3) Соритруем по убыванию массив С
4) Копируем нечетные массивов А и Б в Д
5) Сортируем Д по возрастанию
6) Сливаем массивы С и Д (добавляем элементы Д в конец С).

Помог?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 28.09.2012 в 07:07.
Sciv вне форума Ответить с цитированием
Старый 28.09.2012, 07:08   #3
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

1. Сформировать массив С
Код:
for i:=1 to 5 do c[i]:=a[2*i];
for i:=1 to 7 do c[5+i]:=b[2*i];
for i:=1 to 5 do c[12+i]:=a[2*i-1];
for i:=1 to 8 do c[17+i]:=b[2*i-1];
2. Отсортировать первые 12 элементов по убыванию, а начиная с 13 по 25 по возрастанию

Но надо выяснить, что подразумевается под словом "четные": значения или номера элементов?
мой кусок кода приведен для случая четных номеров
Есть вопросы, пишите в ЛС.

Последний раз редактировалось rubius2008; 28.09.2012 в 08:40.
rubius2008 вне форума Ответить с цитированием
Старый 28.09.2012, 19:55   #4
Radio-Man
 
Регистрация: 28.09.2012
Сообщений: 3
По умолчанию

Цитата:
Но надо выяснить, что подразумевается под словом "четные": значения или номера элементов?
мой кусок кода приведен для случая четных номеров
Вроде надо именно четные элементы, а не номера.... там типа массивы задаются изначально
Radio-Man вне форума Ответить с цитированием
Старый 29.09.2012, 11:01   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Вроде надо именно четные элементы, а не номера....
нет, понятие чётный/нечётный допустимо только для множества ЦЕЛЫХ чисел (чётным называется число, которое делится на 2 без отстатка). Т.к. массивы у вас действительные (т.е. состоят из вещественных чисел), то, следовательно, речь идёт именно о четных/нечётых номерах (индексах) элементов.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.09.2012, 17:29   #6
Radio-Man
 
Регистрация: 28.09.2012
Сообщений: 3
По умолчанию

А тогда как отсортировать???
Radio-Man вне форума Ответить с цитированием
Старый 29.09.2012, 17:46   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
А тогда как отсортировать???
Да любым удобным для вас способом. Начиная с простейших (метод простых обменов/ метод "пузырька") и заканчивая методом "быстрой сортировки" (quick sort).
в чём проблема, не можете на форуме найти ни одного готового примера сортировки?!

тогда можете взять, например, такой код сортировки:
Код:
   {
    Сортировка методом простого выбора
    Выбирается минимальный (самый "лёгкий"=наименьший) элемент массива
    и меняется местами с первым элементом массива.
    Затем процесс повторяется с оставшимися элементами и т. д.  }

    for i := 1 to cntRecord - 1 do begin
      IndexMin := i; {предварительно считаем, что первый элемент наименьший}
      {ищем индекс минимального элемента}
      for j := i + 1 to cntRecord do
        if c[j] < c[IndexMin] then IndexMin := j;

      {меняем местами элементы массива с индексами i и IndexMin
         (ну, если они не равны, конечно) }
      if i <> IndexMin then begin
        t := c[IndexMin];
        c[IndexMin] := c[i];
        c[i] := t;
      end;
    end;


p.s. мда.. перечитал ещё раз условия задачи. По сути там, конечно, бред написан... Ибо если бы не то, что массивы из действительных чисел, я бы тоже прочитал условие, что нужно брать чётные и нечётные ЗНАЧЕНИЯ, а не номера/индексы..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в паскале на массивы. Фрукт Помощь студентам 3 21.12.2011 20:02
Задача в Паскале на массивы. Диана Таипова Помощь студентам 0 27.05.2011 18:28
Задача на массивы в Паскале Mr.BL@CK Помощь студентам 4 19.11.2010 16:39
Задача в Паскале.Массивы. Deco18 Помощь студентам 6 04.03.2010 08:37
задача на массивы в Паскале=) lotrcorp Помощь студентам 1 30.05.2009 07:49