Важная информация
Показано с 1 по 8 из 8

Тема: Сортировка столбца матрицы пузырьком.

  1. #1 Сортировка столбца матрицы пузырьком. 
    Новичок
    Регистрация
    02.12.2011
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    АЛГОРИТМ СОРТИРОВКИ
    Столбец матрицы, в котором количество четных и нечетных элементов одинакова.
    Ответить с цитированием  
     

  2. #2  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Просто отсортировать один из столбцов матрицы? По возрастанию, по убыванию? Подробнее, пожалуйста.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  3. #3  
    Новичок
    Регистрация
    02.12.2011
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от Абадябер Посмотреть сообщение
    Просто отсортировать один из столбцов матрицы? По возрастанию, по убыванию? Подробнее, пожалуйста.
    ээ, да, извиняюсь, забыл уточнить)
    Пузырьковым методом по убыванию
    Последний раз редактировалось OBVI; 09.12.2011 в 15:14.
    Ответить с цитированием  
     

  4. #4  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    А теперь давайте все сложим в одно целое. Условие задачи я понимаю так:
    Нам дана матрица, которая генерируется случайным образом. Нужно найти в ней столбец, в котором количество четных и нечетных элементов одинаково,и если такой столбец есть, то отсортировать его элементы пузырьком, так?
    Или можно взять любой столбец, и отсортировать его?
    Дружба-магия-радость!
    Ответить с цитированием  
     

  5. #5  
    Новичок
    Регистрация
    02.12.2011
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Нам дана матрица, которая генерируется случайным образом. Нужно найти в ней столбец, в котором количество четных и нечетных элементов одинаково,и если такой столбец есть, то отсортировать его элементы пузырьком

    да, вот так)
    Ответить с цитированием  
     

  6. #6  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Сейчас с вашей задачкой разберемся. Сколько у вас еще времени?
    Также такой вопрос. Можно устроить сортировку только самого первого столбца в которым колво чет и нечет элементов одинаково, и отсортировать только его. А можно отсортировать все такие. Как быть?
    Функции не использовать?
    Дружба-магия-радость!
    Ответить с цитированием  
     

  7. #7  
    Новичок
    Регистрация
    02.12.2011
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    ну, времени еще минут 40)
    нет, отсортировать нужно любой столбец в котором кол-во четных и нечетных одинаково
    и отсорт. нужно только один столбец
    функции не исп.
    Ответить с цитированием  
     

  8. #8  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Вот. Проверил программу в Pascal ABC - работает. Для наглядности выводит исходную матрицу, номер сортируемого столбца (если есть такой) а также результирующую матрицу, с отсортированным столбцом. Чуть что, если вывод не нужен, его можно убрать :P
    Матрица забивается случайными числами от 1 до 9 - для гармоничности
    Также, если нужно изменить размерность матрицы, то меняйте константы MatrXSize и MatrYSize - программа составлена так, что сразу учтет эти изменения, и больше ничего править не придется.

    Код pascal:
    Const 
        MatrXSize = 8; MatrYSize = 8;
    Var
        Arr: Array [1..MatrXSize, 1..MatrYSize] Of Word;
        I, J, OddCount: Word;
        SortBool: Boolean;
    Begin
        Randomize;
        WriteLn('Исходная матрица:');
        For J:= 1 To MatrYSize Do Begin
            For I:= 1 To MatrXSize Do Begin
                Arr[I, J]:= Random(9) + 1;
                Write(Arr[I, J], ' ');
            End;
            WriteLn;
        End;
        
        {Ищем столбец,имеющий одинаковое количество нечетных и четных элементов}
        For I:= 1 To MatrXSize Do Begin
            OddCount:= 0;
            For J:= 1 To MatrYSize Do Begin
                If Odd(Arr[I, J]) Then
                    Inc(OddCount)
                Else  
                    Dec(OddCount)
            End;
            If OddCount = 0 Then Break;   
        End;
        If OddCount <> 0 Then Begin
            WriteLn('Столбцов, удовлетворяющих условию не найдено.');
            Halt; {Если не нашли такого столбца, то выйти}
        End;    
        WriteLn('Номер сортируемого столбца: ', I);
        {После цикла I будет равна позиции столбца, который имеет равное количество нечетных и
        четных элементов матрицы}
        {Сортируем столбец пузырьком}
        SortBool:= True;
        While SortBool Do Begin
            SortBool:= False;
            For J:= 1 To MatrYSize - 1 Do Begin
                If Arr[I, J] > Arr[I, J + 1] Then Begin
                    OddCount:= Arr[I, J];
                    Arr[I, J]:= Arr[I, J + 1];
                    Arr[I, J + 1]:= OddCount;
                    SortBool:= True;
                End;
            End;       
        End;
     
        WriteLn('Результирующая матрица:');
        For J:= 1 To MatrYSize Do Begin
            For I:= 1 To MatrXSize Do Begin
                Write(Arr[I, J], ' ');
            End;
            WriteLn;
        End;
    End.
    Дружба-магия-радость!
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 06.10.2012, 19:21
  2. Ответов: 4
    Последнее сообщение: 01.04.2012, 10:08
  3. Ответов: 3
    Последнее сообщение: 28.05.2011, 11:52
  4. Ответов: 3
    Последнее сообщение: 11.05.2011, 12:17
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •