Алгоритм сортировки Barebones - PullRequest
0 голосов
/ 16 апреля 2010

Меня попросили сделать простой сортировку аглоритом, чтобы отсортировать случайную серию из 6 чисел в числовом порядке. Однако меня попросили сделать это, используя Barebones - теоретический язык, предложенный в книге Computer Science, an Overview.

Некоторую информацию о языке можно найти здесь .

Просто чтобы уточнить, я учитель-студент и занимаюсь анализом "языков мини-программирования" и их использования в учебной среде. Я предложил своему преподавателю взглянуть на barebones (язык) и спросил, какую именно программу я должен написать. Он предложил простой алгоритм сортировки. Теперь, глядя на язык, я не могу понять, как я могу это сделать без использования массивов и if операторов.

Код для замены значений переменных будет

while a not 0 do;
    incr Aux1;
    decr a;
end;
while b not 0 do;
    incr Aux2
    decr b
end;
while Aux1 not 0 do;
    incr a;
    decr Aux1;
end;
while Aux2 not 0 do;
    incr b;
    decr Aux2;
end;

Однако язык не предоставляет операторов <или>.

Что можно использовать в качестве обходного пути?

Ответы [ 2 ]

4 голосов
/ 16 апреля 2010

О, давай, начни думать о проблеме!

Что такое массив? Список переменных.

Значит, Barebones не имеет оператора if? У него есть пока петли.

Продолжай домашнее задание.

2 голосов
/ 16 апреля 2010

Интересное упражнение.

Я бы предложил вам сначала реализовать следующее:

  • Поменять значения двух переменных
  • Установить переменную (скажем, z) равной нулю, если значение переменной x> = значение переменной y.

Поскольку программа должна сортировать ровно 6 целых чисел, я полагаю, вы можете предположить, что они находятся в переменных x1, x2, .., x6.

В конце нам понадобится: x1 <= x2 <= ... <= x6. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...