Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Всем привет.
Прошу всех, кто может решить такую задачку, написать код программы. Буду очень признателен.
Условие: Есть текстовый документ, состоящий из 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 Кб, 36 просмотров)
kim-im вне форума   Ответить с цитированием
Старый 12.02.2018, 13:28   #2
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,548
Репутация: 2082
По умолчанию

Код:

m:=(n+3) div 4;
writeln('листов для печати', m);

__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Старый 13.02.2018, 11:55   #3
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 20
Репутация: 10
По умолчанию

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

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

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

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

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

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

Код:

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 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно создать запрос в MS Access 2007. БД "Книги". Вывести название и возраст книги самой старой книги в каждом из залов NikoLotus Microsoft Office Access 1 19.09.2016 07: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 10:26




06:16.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
лучший хостинг
Выбираем лучший хостинг: рейтинг ТОП 10
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru