Назад | Начало урока | Вперед
Содержание

Глава 5

Задача 5.1 "Рулон пленки."

Сотрудники библиотеки обертывают книги пленкой. Они используют рулон шириной 2,2 метра и длиной 100 метров. Размер книг лежит в диапазоне от 20-14 до 21-30 см. Чтобы обернуть книгу, требуется кусок пленки, размер которого составляет два размера книги плюс по 4 см с каждой стороны. Если для поступившей книги не подходит оставшийся кусок, сотрудница отрезает от рулона новую полосу. Выберите произвольные размеры для 20 книг и покажите как можно эффективно использовать рулон указанного размера.

Решение
Воспользуемся Display-окном для ввода размеров книги и размеров рулона. Затем используя введенные пользователем данные, сосчитаем остаток рулона в случае, когда обертываемая книга расположена вертикально по длине рулона, и когда она расположена горизонтально. Интересно, что в зависимости от размеров книги остаток может быть меньше как в первом, так и во втором случае. Компьютер прекрасно справляется с такого рода задачей.
Здесь очень удобно воспользоваться оператором % - остаток от целочисленного деления.

Код программы:


import java.io.*;
import javagently.*;

class RulonOfPaper {

RulonOfPaper() {
Display d = new Display ("Rulon of paper");
d.prompt("WidthBook(cm)",20);
d.prompt("HeightBook(cm)",30);
d.prompt("WidthPaper(cm)",220);
d.prompt("LengthPaper(cm)",10000);
for (; ;) {
d.ready("\nInput size of book and press ready ");
int w = d.getInt("WidthBook(cm)"); //width of book
int h = d.getInt("HeightBook(cm)"); //height of book
int W = d.getInt("WidthPaper(cm)"); //height of book
int H = d.getInt("LengthPaper(cm)"); //height of book

int width = (w*2+8);
int height = (h*2+8);

d.println("Width of book - " + w);
d.println("Height of book - " + h);

// Vertical method
int x = Math.round(W % width);
int y = Math.round(H % height);
int S = (x*H + y*W) - (x*y);
// Horisontal method
int x1 = Math.round(W % height);
int y1 = Math.round(H % width);
int S1 = (x1*H + y1*W) - (x1*y1);

d.println("Remnant rulon to vertical method is " + S + " cm of square");
d.println("Remnant rulon to horisontal method is " + S1 + " cm of square");

//-----------------------------
if(S < S1)
d.println("Vertical method is best ");
else
d.println("Horisontal method is best ");

}//end for
}


public static void main (String[] args) {

new RulonOfPaper();
}
}


Результат :

Подсказка

Вводите необходимые данные в Display-окно и получайте результат!


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz