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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2018, 12:02   #1
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 42
По умолчанию Печать книги

Всем привет.
Прошу всех, кто может решить такую задачку, написать код программы. Буду очень признателен.
Условие: Есть текстовый документ, состоящий из N страниц (1 ≤ N ≤ 1000000). Для удобства чтения этот документ нужно распечатать в виде книги (брошюры) таким образом, чтобы при сложении листов и перегибании их пополам вышел правильный порядок нумерации листов и использовалось минимальное количество листов.
Например: Для печати 4 листов в настройках принтера нужно указать следующий порядок (4,1,2,3). Всего потребуется 1 лист для печати.
В некоторых случаях для правильности печати необходимо в конец документа добавить пустые страницы.
Например:для печати 2 страниц нужно добавить пустую страничку и в настройках принтера нужно указать следующий порядок (3,1,2,3).

Искомое: В первой строке - вывести количество листов, необходимых для печати документа,
во второй - номера страниц, которые указываются в настройках принтера через пробел.

Входные данные: 4
Исходные данные:
1
4 1 2 3
Большое спасибо.
Изображения
Тип файла: jpg 4b65c07b20b27892069d4361d75101d7.jpg (6.2 Кб, 92 просмотров)
kim-im вне форума Ответить с цитированием
Старый 12.02.2018, 12:28   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
m:=(n+3) div 4;
writeln('листов для печати', m);
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.02.2018, 10:55   #3
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 42
По умолчанию

Спасибо evg_m. Начало есть. Теперь самое главное. Нужно чтобы программа выводила номера страниц, которые указываются в настройках принтера через пробел. Это для меня пока не в силах. Буду благодарен всем, кто напишет код.(Ведь просить помочь глупо: это значит что у меня есть идея или часть кода. А этим, к сожалению, не могу похвастаться).
kim-im вне форума Ответить с цитированием
Старый 13.02.2018, 17:37   #4
AlexMas
Пользователь
 
Аватар для AlexMas
 
Регистрация: 30.05.2012
Сообщений: 69
По умолчанию

Фриланс, не?
AlexMas вне форума Ответить с цитированием
Старый 13.02.2018, 18:35   #5
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 42
По умолчанию

Цитата:
Сообщение от AlexMas Посмотреть сообщение
Фриланс, не?
Олимпиада. Могу скинуть ссылку.
https://www.e-olymp.com/uk/problems/8301

Последний раз редактировалось kim-im; 14.02.2018 в 10:06.
kim-im вне форума Ответить с цитированием
Старый 23.02.2018, 15:11   #6
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 42
По умолчанию

Отследил небольшую закономерность:
1. Сумма соседних чисел = n+1 (Пример: n=4 =>4 1 2 3 4+1=2+3=4+1(n+1))
2. Числа чередуются - четные-нечетные, при этом ровно до половины (n div 2) четные убывают, нечетные - растут. После половины - наоборот.

Помогите реализовать код на Паскале. Спасибо
kim-im вне форума Ответить с цитированием
Старый 23.02.2018, 15:38   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
for i:=1 to (n+3) div 4 do begin
  n1:=4+(i-1)*4+1;
  n2:=1-3+i*4;  //или аналогично n1(или так после раскрытия скобок)
  n3:=2-3+i*4;
  n4:=3-3+i*4;
end;
ну и конечно "принять меры" для НЕПОЛНЫХ последних листов
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно создать запрос в MS Access 2007. БД "Книги". Вывести название и возраст книги самой старой книги в каждом из залов NikoLotus Microsoft Office Access 1 19.09.2016 06:02
Макрос открытия файлов и вывода на печать определенных листов книги AxE_tmb Microsoft Office Excel 0 22.10.2013 10:01
Запись данных в закрытую/скрытую из UserForm другой открытой книги книги. Dark Victor Microsoft Office Excel 1 12.03.2012 18:37
Print_Book - Печать в документа виде книги Noor Microsoft Office Word 2 14.11.2007 09:26