На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> Массивы , Ввести массив A(N) помощь
    Ввести массив A(N). Упорядочить четные элементы массива по убыванию, а не четные по возрастанию. Вывести на печать исходный и преобразованный массивы.
    Ребят помогите сможете решить эту задачку, понятия не имею, как делать
      Четные/нечетные - not(odd)/odd
      Сортировка -
      Как упорядочить массив по возрастанию?
        ExpandedWrap disabled
          procedure SelectionSort(var arr : array of Real; const N : Integer);
          var
              I   :   Integer;
              J   :   Integer;
              K   :   Integer;
              M   :   Real;
          begin
              for i:=1 to N do
              begin
                  m:=Arr[i-1];
                  k:=i;
                  for j:=i to n do
                  begin
                      if m>Arr[j-1] then
                      begin
                          m:=Arr[j-1];
                          k:=j;
                      end;
                  end;
                  Arr[k-1]:=Arr[i-1];
                  Arr[i-1]:=m;
              end;
          end;

        мммм а как, т.е куда(место чего) нужно ввести значение not(odd)/odd в этой программе?
          ExpandedWrap disabled
            const
               n = 10;
               a : array[1 .. n] of integer = (
                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
               );
             
             
            var
               i, j, T : integer;
               b : boolean;
            begin
               writeln('before:');
               for i := 1 to n do
                  write(a[i]:4);
               writeln;
             
               for i := 1 to n - 1 do
               begin
                  b := odd(a[i]);
                  for j := i + 1 to n do
                     if (odd(a[j]) = b) and (a[j] < a[i] = b) then
                     begin
                        T := a[i]; a[i] := a[j]; a[j] := T;
                     end;
               end;
             
               writeln('after:');
               for i := 1 to n do
                  write(a[i]:4);
               writeln;
            end.


          ExpandedWrap disabled
            before:
               1   2   3   4   5   6   7   8   9  10
            after:
               1  10   3   8   5   6   7   4   9   2
          Четные (2, 4, 6, 8, 10) отсортированы по убыванию, а нечетные (1, 3, 5, 7, 9) - по возрастанию... Идея - в том, что сравниваться (и обмениваться местами, разумеется) 2 элемента должны только тогда, когда они либо оба четные, либо оба - нечетные... Ну, а уж поменять направление сортировки в зависимости от четности/нечетности элементов - это вообще проще простого...
            Сможете решить ее я что ни чего не поняла...... :'(

            Добавлено
            Все спасибо всем большое)))
              Я сдавала, проверяили, и мне сказали что не правильно. Вот что препод сказал: не может присвоить значение константе...
              Помогите пжл кто чем сможет, почему не правильно...(

              Добавлено
              Цитата lena1992 @
              препод сказал

              Какой препод, блин сам паскаль говорит:
              не может присвоить значение константе... O:-)
                Если у тебя не Турбо-Паскаль, то добавь одно слово:

                ExpandedWrap disabled
                  const
                     n = 10;
                  var
                     a : array[1 .. n] of integer = (
                        1, 2, 3, 4, 5, 6, 7, 8, 9, 10
                     );
                  Сейчас запустила пишет: Ошибка: ожидался символ "точка с запятой"- Pascal ABC
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0.0882 ]   [ 15 queries used ]   [ Generated: 27.04.26, 03:20 GMT ]