Java 7 - [22]

Шрифт
Интервал

double aMin = a[0], aMax = aMin; for (double x : a){

if (x < aMin) aMin = x; if (x > aMax) aMax = x;

}

double range = aMax - aMin;

Обратите внимание на то, что в цикле for сразу определяется переменная x того же типа, что и элементы массива. Эта переменная принимает последовательно значения всех элементов массива от первого элемента до последнего.

Элементы массива — это обыкновенные переменные своего типа, с ними можно производить все операции, допустимые для этого типа: (a[2] + a[4]) / a[0] и т. д.

Знатокам C/C++

Массив символов в Java не является строкой, даже если он заканчивается нуль-символом

T\u0000 T.

Многомерные массивы

Элементами массивов в Java могут быть массивы. Можно объявить ссылку:

char [][] c;

что эквивалентно

char [] c[];

или char c[] [];

Затем определяем внешний массив и его размерность:

c = new char[3][];

Становится ясно, что с — массив, состоящий из трех элементов-массивов. Теперь определяем его элементы-массивы:

c[0] = new char[2]; c[1] = new char[4]; c[2] = new char[3];

После этих определений переменная c.length равна 3, c[0] .length равна 2, c[1] .length равна 4 и c[2]. length равна 3.

Наконец, задаем начальные значения c[0][0] = Ta% c[0][1] = Tr% c[1][0] = T>r’,

c[1] [1] = TaT, c[1] [2] = TyT и т. д.

Замечание

Двумерный массив в Java не обязан быть прямоугольным.
Описания можно сократить:

int[] [] d = new int[3] [4];

А начальные значения задать так:

int[][] inds = {{1, 2, 3}, {4, 5, 6}};

В листинге 1.6 приведен пример программы, вычисляющей первые 10 строк треугольника Паскаля, заносящей их в треугольный массив и выводящей его элементы на экран. Рисунок 1.4 показывает вывод этой программы.
Листинг 1.6. Треугольник Паскаля

class PascalTriangle{

public static final int LINES = 10; // Так определяются константы

public static void main(String[] args){ int [][] p = new int [LINES] [ ] ; p[0] = new int[1];

System.out.println(p[0][0] = 1); p[1] = new int[2]; p[1] [0] = p[1] [1] = 1;

System.out.println(p[1][0] + " " + p[1][1]); for (int i = 2; i < LINES; i++){ p[i] = new int[i+1];

System.out.print((p[i][0] = 1) + " "); for (int j = 1; j < i; j++)

System.out.print((p[i][j] = p[i-1][j-1] + p[i-1][j]) + " "); System.out.println(p[i][i] = 1);

}

}

\ Command Prompt

10 10 5 115 20 15 6 1 21 35 35 21 7 1 28 56 70 56 28 8 1 36 84 126 126 84 36 9 1

Microsoft Windows [Uersion 5.2.3790]

Copyright 1985-2003 Microsoft Corp.

C:\>cd progs

C:\progs>jauac PascalTriangle.jaua

C:\progs>java PascalTriangle 1

Рис. 1.4. Вывод треугольника Паскаля в окно Command Prompt

Заключение

Уф-ф-ф! Вот вы и одолели базовые конструкции языка. Раз вы добрались до этого места, значит, умеете уже очень много. Вы можете написать программу на Java, отладить ее, устранив ошибки, и выполнить. Вы способны запрограммировать любой не слишком сложный вычислительный алгоритм, обрабатывающий числовые данные.

Теперь можно перейти к вопросам создания сложных производственных программ. Такие программы требуют тщательного планирования. Сделать это помогает объектноориентированное программирование, к которому мы теперь переходим. Но сначала проверьте свои знания и ответьте, пожалуйста, на контрольные вопросы.

Вопросы для самопроверки

1. Из чего состоит программа на языке Java?

2. Как оформляется метод обработки информации в Java?

3. Каков заголовок у метода main() ?

4. Как записать комментарии к программе?

5. Что такое аннотация?

6. В каких системах счисления можно записывать целые константы?

7. Какое количество выражено числом 032?

8. Какое количество выражено числом 0х2С?

9. Как записать символ "наклонная черта"?

10. Как записать символ "обратная наклонная черта"?

11. Каков результат операции 3.45 % 2.4?

12. Что получится в результате операций 12 | 14 & 10?

13. Что даст в результате операция 3 << 4?

14. Можно ли записать циклы внутри условного оператора?

15. Можно ли использовать оператор continue в операторе варианта?

16. Можно ли использовать оператор break с меткой в операторе варианта?

17. Можно ли определить массив нулевой длины?

18. Как можно перебрать все элементы массива в порядке возрастания индексов?

19. Как перебрать все элементы массива в порядке убывания индексов?

20. Что случится, если индекс массива превысит его длину?

ГЛАВА 2

Объектно-ориентированное программирование в Java


Вся полувековая история программирования компьютеров, а может быть, и история всей науки — это попытка совладать со сложностью окружающего мира. Задачи, встающие перед программистами, становятся все более громоздкими, информация, которую надо обработать, растет как снежный ком. Еще недавно обычными единицами измерения информации были килобайты и мегабайты, а сейчас уже говорят только о гигабайтах и терабайтах. Как только программисты предлагают более-менее удовлетворительное решение поставленных задач, тут же возникают новые, еще более сложные задачи. Программисты придумывают новые методики, создают новые языки. За полвека появилось несколько сотен языков, предложено множество методов и стилей программирования. Некоторые методы и стили становятся общепринятыми и образуют на некоторое время так называемую парадигму программирования.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.