Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
3 / 2 / 1
Регистрация: 14.06.2014
Сообщений: 60

Составить рекурсивную программу, которая печатает сначала отрицательные числа, а затем - положительные

14.02.2020, 21:34. Показов 4489. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Входные данные: считываются из файла “input.txt”
Выходные данные: выводятся в файл “output.txt”
Дана последовательность ненулевых целых чисел, за которой следует 0 (0 – признак конца строки). Составить рекурсивную программу, которая печатает сначала все отрицательные числа этой последовательности, а затем
- все положительные (в любом порядке).
Входные данные
В файле входных данных записана непустая последовательность
ненулевых целых чисел, за которой следует 0.


Помогите решить задачу.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2020, 21:34
Ответы с готовыми решениями:

Написать рекурсивную функцию, которая вначале печатает все отрицательные числа, а затем все положительные числа
Дана последовательность ненулевых чисел, в конце которой следует 0. Написать рекурсивную функцию, которая вначале печатает все...

Используя рекурсивную процедуру без параметров выдать сначала все отрицательные числа, затем все положительные
Помогите решить задачу в Pascal. Ввводится последовательность ненулевых целых чисел за которыми следует 0. Используя рекурсивную...

Отсортировать сначала отрицательные числа, затем положительные и затем ноль
Помогите, пожалуйста, составить программу сортировки массива, так, чтобы она сортировала сначала отрицательные числа, затем положительные и...

5
 Аватар для __ALPHA__
302 / 160 / 87
Регистрация: 16.04.2018
Сообщений: 239
14.02.2020, 22:43
Как вариант:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def load_file(path):
    result = []
    with open(path) as f:
        for line in f:
            for number in line.split():
                if number.isdigit() or (number[0] == '-' and number[1:].isdigit()):
                    if number == '0': break
                    result.append(int(number))
    return result
 
def save_file(lst, path):
    lst = map(str, lst)
    data = ' '.join(lst)
    with open(path, 'w') as f:
        f.write(data)
 
def f_recursion(lst, element = 0):
    global result
 
    if element == len(lst): return
        
    if lst[element] < 0:
        result.insert(0, lst[element])
    else:
        result.append(lst[element])
 
    f_recursion(lst, element+1)
    
 
result = []
lst = load_file('input.txt')
print(lst, 'load from ../input.txt')
f_recursion(lst)
save_file(result, 'output.txt')
print(result, 'save in ../output.txt')
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
15.02.2020, 10:36
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def f(a):
    if a[0] == 0:
        return
    else:
        if a[0] < 0:
            print(a[0])
            f(a[1:])
        else:
            f(a[1:])
            print(a[0])
 
 
lst = [1, -2, 3, -4, -5, -6, 7, 0, 8, 9]
f(lst)
0
3 / 2 / 1
Регистрация: 14.06.2014
Сообщений: 60
19.04.2021, 21:07  [ТС]
Разобрался сам и сделал так:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import os
 
def function1(f):
    spisok = ''
    lines = int(f.readline())
    if lines == 0:
        return ('')
    else:
        if lines > 0:
            return (str(function1(f)) + ' ' + str(lines))
        else:
            return (str(lines) + ' ' + str(function1(f)))
 
fr = open('input.txt',)
fw = open('output.txt','w')
fw.write(function1(fr))
fr.close()
fw.close()
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
19.04.2021, 21:21
За год с лишним можно разобраться
2
3 / 2 / 1
Регистрация: 14.06.2014
Сообщений: 60
20.04.2021, 16:16  [ТС]
За год с лишним, можно вспомнить про форум и зайти что бы закинуть ответ. Решал то я тогда, не поняв предложенные варианты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.04.2021, 16:16
Помогаю со студенческими работами здесь

Получить новый массив, где сначала идут положительные числа, затем нулевые, затем отрицательные
Дан массив X. Получить новый массив Y такой, что в нем сначала идут положительные числа, затем нулевые, затем отрицательные массива X....

Записать сначала положительные, затем нули, затем отрицательные числа, сохраняя порядок их следования в массиве
Дан массив целых чисел, содержащий 10 элементов. Записать этот же массив сначала все положительные числа, затем нули, затем отрицательные...

Получить новый массив, в котором сначала идут положительные числа, затем нулевые, затем отрицательные исходного
дан массив X(N). получить новый массив Y(N), такой, что в нем сначала идут положительные числа, затем нулевые, и затем отрицательные из Х....

Получить новый массив Y такой, что в нем сначала идут положительные числа, затем нулевые, затем отрицательные массива X.
Задача1. Дан массив X. Получить новый массив Y такой, что в нем сначала идут положительные числа, затем нулевые, затем отрицательные...

Переписать числа в файл: сначала положительные, затем отрицательные
Дан файл целых чисел (несколько строк). Переписать числа в этот же файл следующим порядком: сначала положител Добавлено через 1 час 0...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru