Питон помогите программу написать с функцией - Компьютерные вопросы

Вопрос Питон помогите программу написать с функцией

Регистрация
6 Июл 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Программа на питоне использовав функцию с двумя аргументами среди четырех чисел отсортировать их в порядке возрастания(нельзя ипользовать внутри функции другие по типу max min нужно через условных операторов)помогите пожалуйста
 
Регистрация
4 Сен 2013
Сообщения
73
Репутация
1
Спасибо
0
Монет
0
Для того чтобы отсортировать четыре числа в порядке возрастания с использованием функции и без применения встроенных функций, таких как `max()` и `min()`, можно воспользоваться условными операторами для сравнения чисел и перестановки их местами. Вот пример программы, которая выполняет эту задачу:

```python
def sort_numbers(a, b, c, d):
# Используем условные операторы для сортировки
if a > b:
a, b = b, a
if a > c:
a, c = c, a
if a > d:
a, d = d, a
if b > c:
b, c = c, b
if b > d:
b, d = d, b
if c > d:
c, d = d, c
return a, b, c, d

# Ввод чисел
a = int(input("Введите первое число: "))
b = int(input("Введите второе число: "))
c = int(input("Введите третье число: "))
d = int(input("Введите четвёртое число: "))

# Вызов функции для сортировки
sorted_numbers = sort_numbers(a, b, c, d)

# Вывод отсортированных чисел
print("Отсортированные числа:", sorted_numbers)
```

### Объяснение:
1. В функции `sort_numbers` мы сравниваем и меняем местами числа с помощью условных операторов `if`. Каждый раз, когда одно число больше другого, мы меняем их местами.
2. Алгоритм использует сравнительный метод, чтобы минимальное значение оказалось первым, второе минимальное — вторым, и так далее. Это похоже на сортировку пузырьком, но реализовано вручную через несколько условных операторов.
3. После сортировки возвращаются отсортированные числа, которые выводятся в конце программы.

### Пример работы программы:
```
Введите первое число: 3
Введите второе число: 1
Введите третье число: 4
Введите четвёртое число: 2
Отсортированные числа: (1, 2, 3, 4)
```

Таким образом, программа отсортирует четыре числа в порядке возрастания, используя только условные операторы.
 
Регистрация
17 Июл 2013
Сообщения
76
Репутация
0
Спасибо
0
Монет
0
Конечно, давайте напишем функцию на Python, которая принимает два числа и возвращает их в порядке возрастания, а затем используем эту функцию для сортировки четырёх чисел. Мы будем использовать условные операторы для сравнения чисел.

Вот код программы:

```python
def sort_two_numbers(a, b):
"""Возвращает два числа в порядке возрастания."""
if a > b:
return b, a
else:
return a, b

def sort_four_numbers(a, b, c, d):
"""Сортирует четыре числа в порядке возрастания."""
# Сначала сортируем пары чисел
a, b = sort_two_numbers(a, b)
c, d = sort_two_numbers(c, d)

# Теперь сортируем две пары
a, c = sort_two_numbers(a, c)
b, d = sort_two_numbers(b, d)

# Финальная проверка
b, c = sort_two_numbers(b, c)

return a, b, c, d

# Пример использования
numbers = (4, 1, 3, 2)
sorted_numbers = sort_four_numbers(*numbers)
print(sorted_numbers)
```

В этой программе функция `sort_two_numbers` принимает два числа и возвращает их в порядке возрастания. Затем функция `sort_four_numbers` использует эту функцию для сортировки четырёх чисел. Мы сначала сортируем пары чисел, затем каждую пару между собой, и в конце проверяем средние элементы, чтобы гарантировать правильный порядок.
 
Регистрация
5 Июн 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
def sort_two(a, b):
if a > b:
return b, a
else:
return a, b

def sort_four_numbers(n1, n2, n3, n4):
n1, n2 = sort_two(n1, n2)
n3, n4 = sort_two(n3, n4)
n1, n3 = sort_two(n1, n3)
n2, n4 = sort_two(n2, n4)
n2, n3 = sort_two(n2, n3)

return n1, n2, n3, n4

numbers = sort_four_numbers(4, 2, 9, 1)
print(numbers)
 
Регистрация
27 Июл 2013
Сообщения
100
Репутация
0
Спасибо
0
Монет
0
Ну... в задании нет указаний какие именно два аргумента должны быть у функции. Список/кортеж/множество - это вполне себе один аргумент.. В связи с чем достаточно немного модернизированного "пузырька", умеющего сортировать в две стороны: def bubble_sort(nums:list,reverse=False):
N = len(nums)
for i in range(N-1):
for j in range(N-1-i):
if [nums[j] > nums[j+1],nums[j] < nums[j+1]][reverse]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums

nums = [4,2,5,1]

print(bubble_sort(nums))
 
Сверху Снизу