Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2024, 10:36   #1
sunia_
Пользователь
 
Регистрация: 08.06.2024
Сообщений: 14
Вопрос Дан файл целых чисел. Создать два новых файла, первый из которых содержит четные числа из исходного файла, а второй — нечетные (в том же порядке). Если четные или нечетные числа в исходно

Язык питон

1) Дан файл целых чисел. Создать два новых файла, первый из которых содержит четные числа из исходного файла, а второй — нечетные (в том же порядке). Если четные или нечетные числа в исходном файле отсутствуют, то соответствующий результирующий файл оставить пустым.

Как проверять или переносить двухзначные, трехзначные и прочие числа?

2) Описать рекурсивную функцию DigitSum(K) целого типа, которая находит сумму цифр целого числа K, не используя оператор цикла. С помощью этой функции найти суммы цифр для пяти данных целых чисел.

Здесь я не совсем понимаю что надо делать и когда функция должна остановиться!! Искал ответы в интернете, но ничего не понял. Буду благодарен за ответы.
sunia_ вне форума Ответить с цитированием
Старый 09.06.2024, 11:40   #2
сфинкс
Участник клуба
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 1,027
По умолчанию

Для задачи 1 надеюсь помогут сообщения
про файлы и условия на Питон Python

https://www.programmersforum.ru/show...3&postcount=22

https://www.programmersforum.ru/show...4&postcount=13

По задаче 2 количество символов числа как строки
небось поможет
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 09.06.2024 в 11:43.
сфинкс вне форума Ответить с цитированием
Старый 09.06.2024, 13:14   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

1.
sunia_
Цитата:
Как проверять или переносить двухзначные, трехзначные и прочие числа?
Это вы о чём спрашиваете?

Как проверить чётность числа?
Чётность числа можно проверить методом получения остатка от деления на 2:
Код:
remains = n % 2
Если остаток равен нулю, то число чётное, а иначе - нечётное.

Открываем файл с числами. В нашем случае это может быть текстовый файл (подготовить в Блокноте), в котором строка - это число.
Спрашивает у Сети как работать с файлом на Python.
Файл с числами помещаем рядом со скриптом.
Открываем этот файл на чтение и ещё два на запись, например:
numbers.txt на чтение
odd_numbers.txt и even_numbers.txt на запись.
Читаем число (внимание - это строковое значение) и проверяем на чётность.
По ситуации записываем в один из файлов.
После завершения чтения исходного файла закрываем оба новых.
В независимости от числа записей файлы сохранятся (даже если записи в файл не было).

2.
Цитата:
Здесь я не совсем понимаю что надо делать и когда функция должна остановиться!!
Надо написать рекурсивную функцию. Остановиться можно, если число меньше 10.
Код:
def DigitSum(N):
    if N < 10:
        return N
    else:
        return <Тут сумма: очередная цифра числа + рекурсивный вызов: DigitSum(<оставшаяся часть числа>)
очередная цифра числа - как получить?
оставшаяся часть числа - как получить?
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 09.06.2024, 14:45   #4
sunia_
Пользователь
 
Регистрация: 08.06.2024
Сообщений: 14
Радость

Я спрашиваю про то, как различить числа с более двумя цифрами от отдельного числа. Я писал код, но все числа были разбиты на составляющие!( Допустим было число 21, а его разделило на 2 и 1 и перенесло в разные файлы.
В случае если одно число составляет одну строку, как быть, если числа в файле будут идти все в одной строке? Там 1, 2, 3...

По второму спасибо. Попробую!
sunia_ вне форума Ответить с цитированием
Старый 09.06.2024, 15:30   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

Цитата:
Сообщение от sunia_ Посмотреть сообщение
Я писал код, но все числа были разбиты на составляющие!( Допустим было число 21, а его разделило на 2 и 1 и перенесло в разные файлы.
Зачем? Задание то другое.
p51x вне форума Ответить с цитированием
Старый 09.06.2024, 15:48   #6
sunia_
Пользователь
 
Регистрация: 08.06.2024
Сообщений: 14
Вопрос

Что зачем? Надо же числа из файлов раскинуть по двум другим. Я вот и спрашиваю как определить какое число куда кидать, чтобы оно осталось целым
sunia_ вне форума Ответить с цитированием
Старый 09.06.2024, 16:33   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

sunia_
Цитата:
Я спрашиваю про то, как различить числа с более двумя цифрами от отдельного числа. Я писал код, но все числа были разбиты на составляющие!( Допустим было число 21, а его разделило на 2 и 1 и перенесло в разные файлы.
В случае если одно число составляет одну строку, как быть, если числа в файле будут идти все в одной строке? Там 1, 2, 3...
Если числа представлены в виде строки (1, 2, 3...), то они разделяются каким-то разделителем.
Так, в вашем случае - это запятая, но может быть и пробел.
Читаем строку, и, например, разбиваем её на слова методом split(<разделитель>).
В результате можем получить список из строковых элементов (слов-чисел), который обрабатываем в цикле.
Что-то вроде такого:

Код:
numbers = fh.readline().split(',') # numbers - список вида ['1', '2', '3', ...]
for num in numbers:
    <работаем с num>
Число, в файле, не может занимать две строки (между цифрами числа не должно быть посторонних символов). Поэтому, если файл содержит числа в строках, то читаем по строкам и каждую строку обрабатываем как описано.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 09.06.2024, 20:52   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

Цитата:
Сообщение от sunia_ Посмотреть сообщение
Что зачем?
Зачем делить? Вам надо прочитать число и его по четности записать в один из файлов. Не по цифрам, а все число.

Цитата:
Сообщение от sunia_ Посмотреть сообщение
Я вот и спрашиваю как определить какое число куда кидать, чтобы оно осталось целым
Оно итак целое. 20 - четное, в один файл; 5 - нечетное, в другой
p51x вне форума Ответить с цитированием
Старый 09.06.2024, 21:27   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,730
По умолчанию

У меня создалось впечатление, что ТС путает понятия "число" и "цифра".
digitalis вне форума Ответить с цитированием
Старый 10.06.2024, 12:28   #10
сфинкс
Участник клуба
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 1,027
По умолчанию

Примитивная сумма цифр на языке высочайшего уровня qbasic qb64
Длина строки странно на 1 больше учитывается

Код:
Dim n As Double: n = 1234567890123456
n$ = Str$(n): L = Len(n$) ' sumzifr.bas
s = 0: m = 2: Print n$, L: Print
10 d = Val(Mid$(n$, m, 1))
s = s + d: m = m + 1
Print d; " ";
If m <= L Then 10
Print: Print s
End
Result
1234567890123456 17
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
66

Прошлый Result
7654321 8
7 6 5 4 3 2 1
28

Длина строки странно на 1 больше учитывается

Реализовано на Питон Python в сообщении про Рюкзак
https://www.programmersforum.ru/show...&postcount=100
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 10.06.2024 в 13:42.
сфинкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделить четные и нечетные числа в одном и том же массив NICOLAE12 Паскаль, Turbo Pascal, PascalABC.NET 2 17.12.2017 08:00
Дан массив. Вывести вначале все четные числа в порядке возрастания их индексов, затем - все нечетные в порядке убывания.( Delphi ) simonte Помощь студентам 9 07.12.2013 06:54
assembler. Задан массив А из N чисел. Преобразовать этот массив так, чтобы сначала шли четные числа, а потом – нечетные Transcend Помощь студентам 5 18.03.2013 11:42
Вывести сначала все его четные (нечетные) елементы, а потом- нечетные(четные). tondo Помощь студентам 4 25.04.2012 00:17
LISP.разделить список на 2, в первый поместить четные элементы исходного списка, во второй - нечетные mashik2503 Помощь студентам 1 17.05.2011 19:14