Глава 3
Задача 3.13 "Гистограмма."
Проверьте, сможете ли вы создать класс на основе примера 3.4, который включает методы, рисующие линию из звездочек и ось, и может быть вызван для вывода гистограммы, базирующейся на разных данных. Протестируйте его на следующих примерах:
а) генерирование случайных чисел, которые соответствуют значениям температур для данного месяца (от 10 до 30 градусов Цельсия).
б) установка соответствия между значениями функции sin x и значениями температур от 0 до 90 градусов Цельсия.
Решение
Здесь сразу задано три задания.
Вверх
Задание 1
Создадим класс HistGraf и поместим методы bar() и axis() внутрь класса. Кроме того объявим в классе две переменные и инициируем их в конструкторе класса.
class
HistGraf
{
// constructor
void
axis
() {
Теперь можно будет в главной программе вызывать эти оба метода как методы класса HistGraf и передавать им в параметры переменные, которые были объявлены при создании экземпляра класса.
HistGraf Hist = new HistGraf (5, 30);
// Display a bar for each year and then the final axis
Код программы:
class Histogram {
Histogram() {
HistGraf Hist = new HistGraf (5, 30);
// Display a bar for each year and then the final axis
class
HistGraf
{
// constructor
System.out.print(label+"\t|");
void
axis
() {
int ticks = 5;
// Print the line
//Print the ticks
// Label the whole axis
Результат :
Назад |
Начало урока |
Вверх |
Вперед
int h;
HistGraf (int l, int c) {
h = c;
void
bar
(int label, double h) {
for (int year = 1; year <= Hist.label; year++) {
Hist.axis ();
for (int year = 1; year <= Hist.label; year++) {
Hist.axis ();
public static void main (String [] args) {
int h;
HistGraf (int l, int c) {
h = c;
void
bar
(int label, double h) {
// with the years and consisting of the given
// number of stars
int stop = (int) Math.round(h);
for (int star = 0; star < stop; star++)
// labelled in steps of 10. Each division is 10
// characters wide.
System.out.print('\t');
for (int line = 0; line < ticks*10; line++)
System.out.print("=");
System.out.println("=");
System.out.print('\t');
for (int n = 0; n < ticks; n++)
System.out.print("+ ");
System.out.println('+');
// Label the ticks, including the last one
System.out.print('\t');
for (int n = 0; n <= ticks; n++)
System.out.print(n*10 + " ");
System.out.println();
System.out.println("\t\t\t\tcm");
Содержание