Вход в папку с исходным Java-кодом




БИЛЕТ №1

История языка Java

История Java восходит к 1991 году, когда группа инженеров из компании Sun под руководством Патрика Нотона (Patrick Naughton) и члена Совета директоров (и разностороннего компьютерного волшебника) Джеймса Гослинга (James Gosling) занялась разработкой небольшого языка, который можно было бы использовать для программирования бытовых устройств, например, контроллеров для переключения каналов кабельного телевидения (cable TV switchboxes).

Поскольку такие устройства не потребляют много энергии и не имеют больших микросхем памяти, я должен был быть маленьким и генерировать очень компактные программы. Кроме того, поскольку разные производители могут выбирать разные центральные процессоры (Central Processor Unit— CPU), было важно не завязнуть в какой-то одной архитектуре компьютеров. Проект получил кодовое название "Green".

Стремясь изобрести небольшой, компактный и машинонезависимый код, разработчики возродили модель, использованную при реализации первых версий языка Pascal заре эры персональных компьютеров.
Этот промежуточный код можно выполнять на любой машине, имеющей соответствующий интерпретатор. Инженеры, работавшие над проектом "Green", также использовали виртуальную машину, что решило их основную проблему.

Однако большинство сотрудников компании Sun имели опыт работы с операционной системой UNIX, поэтому в основу разрабатываемого ими языка бь л положен язык C++, а не Pascal. В частности, они сделали язык объектно-, а не процедурно-ориентированным.

Весь 1993 год и половину 1994 года продолжались безрезультатные поиски покупателей продукции, разработанной в рамках проекта "Green" (под новым названием "First Person, Inc."). (Патрик Нотон, один из основателей группы, впоследствии в основном занимавшийся маркетингом, налетал в общей сложности более 300 тысяч миль, пытаясь продать разработанную технологию.) Проект "First Person, Inc." был прекращен в 1994 году.

На самом деле броузер был разработан Патриком Нотоном и Джонатаном Пэйном (Johnatan Payne). Позднее он превратился в современный броузер HotJava. Этот броузер был написан на языке Java, чтобы продемонстрировать всю его мощь. Однако разработчики не забывали о мощных средствах, которые теперь называются апплетами, наделив свой броузер способностью выполнять код внутри Web-страниц. "Демонстрация технологии" была представлена на выставке Sun World '95 23 мая 1995 года и вызвала всеобщее помешательство на почве язака Java, продолжающееся и поныне.

Компания Sun выпустила первую версию языка Java в начале 1996 года. Через несколько месяцев после нее появилась версия Java 1.02. Люди быстро поняли, что версия Java 1.02 не подходит для разработки серьезных приложений. Конечно, эту версию можно применять для разработки Web-страниц с пляшущими человечками, однако в версии Java 1.02 ничего нельзя даже напечатать.

2. Java строго типизированный язык программирования. Это означает, что типы всех выражений и переменных определяется на этапе компиляции. Тип определяет ограничения для значений переменных, результатов подсчёта выражений, количество поддерживаемых операций и определяет суть самих операций.

Типы в Java распределены на две категории: простые (примитивные) и [ссылочные (объектные)]. Простыми являются тип boolean и все числовые типы. Числовые типы распределяются на две категории целочисленные byte, short, int, long, char и числа с плавоющей точкой float и double.

Простые типы в Java предопределены заранее и проименованы зарезервированными словами (keywords). Названия придётся запомнить к счастью их всего 8 штук. Размер и возможные значения всегда легко найти поэтому важнее понимать в какой ситуации стоит использовать конкретный тип.

 

Автоматическое преобразование типа иногда может оказаться причиной неожиданных сообщений транслятора об ошибках. Например, показанный ниже код, хотя и выглядит вполне корректным, приводит к сообщению об ошибке на фазе трансляции. В нем мы пытаемся записать значение 50* 2, которое должно прекрасно уместиться в тип byte, в байтовую переменную. Но из-за автоматического преобразования типа результата в int мы получаем сообщение об ошибке от транслятора — ведь при занесении int в byte может произойти потеря точности.

Если в выражении используются переменные типов byte, short и int, то во избежание переполнения тип всего выражения автоматически повышается до int. Если же в выражении тип хотя бы одной переменной —long, то и тип всего выражения тоже повышается до long. He забывайте, что все целые литералы, в конце которых не стоит символ L (или 1), имеют тип int.

Если выражение содержит операнды типа float, то и тип всего выражения автоматически повышается доfloat. Если же хотя бы один из операндов имеет тип double, то тип всего выражения повышается до double.По умолчанию Java рассматривает все литералы с плавающей точкой, как имеющие тип double.Приведенная ниже программа показывает, как повышается тип каждой величины в выражении для достижения соответствия со вторым операндом каждого бинарного оператора.

Задача:

class Complex {

private static final double EPS = 1e-12; // Точность вычислений

 

private double re, im; // Действительная и мнимая часть

 

// Четыре конструктора *******************************

Complex(double re, double im) {

this.re = re; this.im = im;

};

 

Complex(double re) {

this(re, 0.0);

};

 

Complex() {

this(0.0, 0.0);

};

 

Complex(Complex z) {

this(z.re, z.im);

};

 

// Методы доступа ***********************************

public double getRe() { return re;}

public double getIm() { return im;}

public Complex getZ() { return new Complex(re, im); }

public void setRe(double re) { this.re = re; }

public void setIm(double im) { this.im = im; }

public void setZ (Complex z) { re = z.re; im = z.im; }

 

// Модуль и аргумент комплексного числа **************

public double mod() { return Math.sqrt(re * re + im * im); }

public double arg() { return Math.atan2(re, im); }

 

// Проверка: действительное число? ************************

public boolean isReal() { return Math.abs(im) < EPS; }

 

// Вывод на экран *******************************************

public void pr() {

System.out.println(re + (im < 0.0? "": "+") + im + "i");

}

 

// Переопределение методов класса Object **********************

public boolean equals(Complex z) {

return Math.abs(re - z.re) < EPS &&

Math.abs(im - z.im) < EPS;

}

public String toString() {

return "Complex: " + re + " " + im;

}

 

// Методы, реализующие операции +=, -=, *=, /=

public void add(Complex z) {re += z.re; im += z.im; }

public void sub(Complex z) {re -= z.re; im -= z.im; }

public void mul(Complex z) {

double t = re * z.re - im * z.im;

im = re * z.im + im * z.re;

re = t;

}

public void div(Complex z) {

double m = z.mod();

double t = re * z.re - im * z.im;

im = (im * z.re - re * z.im) / m;

re = t / m;

}

 

// Методы, реализующие операции +, -, *, /

public Complex plus(Complex z) {

return new Complex(re + z.re, im + z.im);

}

public Complex minus(Complex z) {

return new Complex(re - z.re, im - z.im);

}

public Complex asterisk(Complex z) {

return new Complex(

re * z.re - im * z.im,

re * z.im + im * z.re);

}

public Complex slash(Complex z) {

double m = z.mod();

return new Complex(

(re * z.re - im * z.im) / m,

(im * z.re - re * z.im) / m);

}

}

 

 

// Проверим работу класса Complex

public class ComplexTest{

public static void main(String[] args) {

Complex zl = new Complex(),

z2 = new Complex(1.5),

z3 = new Complex(3.6, -2.2),

z4 = new Complex(z3);

System.out.println(); // Оставляем пустую строку

System.out.print("z1 = "); zl.pr();

System.out.print("z2 = "); z2.pr();

System.out.print("z3 = "); z3.pr();

System.out.print("z4 = "); z4.pr();

System.out.println(z4); // Работает метод toString()

 

z2.add(z3);

System.out.print("z2 + z3 = "); z2.pr();

z2.div(z3);

System.out.print("z2 / z3 = "); z2.pr();

z2 = z2.plus(z2);

System.out.print("z2 + z2 = "); z2.pr();

z3 = z2.slash(zl);

System.out.print("z2 / z1 = "); z3.pr();

}

}

 

БИЛЕТ №2

1. Мобильность программного обеспечения - способность программного обеспечения работать на различныхаппаратных платформах или под управлением различных операционных систем.

Мобильность программного обеспечения обычно определяется как возможность переноса

программного обеспечения (ПО) на широкий диапазон систем. Наиболее распространенными

контекстами рассмотрения мобильности ПО являются следующие:

− переносимость ПО между различными аппаратными платформами (в первую очередь

характеризуемыми архитектурой процессора);

− переносимость ПО между различными операционными системами (ОС);

− комбинация вышеперечисленных вариантов.

Реже мобильность ПО рассматривается в контексте переносимости между различными

версиями одной операционной системы и в контексте переносимости между программными

окружениями промежуточного уровня. В настоящей статье основное внимание будет уделено

первым двум контекстам.

Начнем с проблемы переносимости приложения между различными аппаратными платформами с одной ОС. Наиболее часто эта проблема решается на уровне исходных кодов приложения. Если приложение написано на интерпретируемых языках или языках программирования высокого уровня (Java, C#) приложение практически автоматически переносится на любую систему, где реализована соответствующая среда исполнения. При использовании промежуточного представления, такого как, Java байт-код, это можно делать даже без доступа к исходному коду.

Если приложение написано на языке программирования более низкого уровня (Си, С++), то для обеспечения переносимости простой перекомпиляцией разработчик должен аккуратно учитывать возможные отличия между платформами, такие как, размеры базовых типов данных, их представление, неявные преобразования между типами и так далее. Это не является чрезмерно сложной задачей при достаточной культуре программирования, хотя и требует дополнительных усилий на проведение тестирования на целевой платформе.

Break

В языке Java отсутствует оператор goto. Для того, чтобы в некоторых случаях заменять goto, в Java предусмотрен оператор break. Этот оператор сообщает исполняющей среде, что следует прекратить выполнение именованного блока и пере­дать управление оператору, следующему за данным блоком. Для имено­вания блоков в языке Java используются метки. Оператор break при работе с циклами и в операторах switch может использоваться без метки. В таком случае подразумевается выход из текущего блока.

На месте любого из операторов может сто­ять составной оператор, заключенный в фигурные скобки.

Оператор запятая

Иногда возникают ситуации, когда разделы инициализации или ите­рации цикла for требуют нескольких операторов. Поскольку составной оператор в фигурных скобках в заголовок цикла for вставлять нельзя, Java предоставляет альтернативный путь. Применение запятой (,) для разделения нескольких операторов допускается только внутри круглых скобок оператора for. Ниже приведен тривиальный пример цикла for, в котором в разделах инициализации и итерации стоит несколько операторов.

Задача:

class Complex {

private static final double EPS = 1e-12; // Точность вычислений

 

private double re, im; // Действительная и мнимая часть

 

// Четыре конструктора *******************************

Complex(double re, double im) {

this.re = re; this.im = im;

};

 

Complex(double re) {

this(re, 0.0);

};

 

Complex() {

this(0.0, 0.0);

};

 

Complex(Complex z) {

this(z.re, z.im);

};

 

// Методы доступа ***********************************

public double getRe() { return re;}

public double getIm() { return im;}

public Complex getZ() { return new Complex(re, im); }

public void setRe(double re) { this.re = re; }

public void setIm(double im) { this.im = im; }

public void setZ (Complex z) { re = z.re; im = z.im; }

 

// Модуль и аргумент комплексного числа **************

public double mod() { return Math.sqrt(re * re + im * im); }

public double arg() { return Math.atan2(re, im); }

 

// Проверка: действительное число? ************************

public boolean isReal() { return Math.abs(im) < EPS; }

 

// Вывод на экран *******************************************

public void pr() {

System.out.println(re + (im < 0.0? "": "+") + im + "i");

}

 

// Переопределение методов класса Object **********************

public boolean equals(Complex z) {

return Math.abs(re - z.re) < EPS &&

Math.abs(im - z.im) < EPS;

}

public String toString() {

return "Complex: " + re + " " + im;

}

 

// Методы, реализующие операции +=, -=, *=, /=

public void add(Complex z) {re += z.re; im += z.im; }

public void sub(Complex z) {re -= z.re; im -= z.im; }

public void mul(Complex z) {

double t = re * z.re - im * z.im;

im = re * z.im + im * z.re;

re = t;

}

public void div(Complex z) {

double m = z.mod();

double t = re * z.re - im * z.im;

im = (im * z.re - re * z.im) / m;

re = t / m;

}

 

// Методы, реализующие операции +, -, *, /

public Complex plus(Complex z) {

return new Complex(re + z.re, im + z.im);

}

public Complex minus(Complex z) {

return new Complex(re - z.re, im - z.im);

}

public Complex asterisk(Complex z) {

return new Complex(

re * z.re - im * z.im,

re * z.im + im * z.re);

}

public Complex slash(Complex z) {

double m = z.mod();

return new Complex(

(re * z.re - im * z.im) / m,

(im * z.re - re * z.im) / m);

}

}

 

 

// Проверим работу класса Complex

public class ComplexTest{

public static void main(String[] args) {

Complex zl = new Complex(),

z2 = new Complex(1.5),

z3 = new Complex(3.6, -2.2),

z4 = new Complex(z3);

System.out.println(); // Оставляем пустую строку

System.out.print("z1 = "); zl.pr();

System.out.print("z2 = "); z2.pr();

System.out.print("z3 = "); z3.pr();

System.out.print("z4 = "); z4.pr();

System.out.println(z4); // Работает метод toString()

 

z2.add(z3);

System.out.print("z2 + z3 = "); z2.pr();

z2.div(z3);

System.out.print("z2 / z3 = "); z2.pr();

z2 = z2.plus(z2);

System.out.print("z2 + z2 = "); z2.pr();

z3 = z2.slash(zl);

System.out.print("z2 / z1 = "); z3.pr();

}

}

БИЛЕТ №3

 

1. Виртуальная машина (ВМ, от англ. virtual machine) — программная и/или аппаратная система, эмулирующаяаппаратное обеспечение некоторой платформы (target — целевая, или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (host — хост-платформа, платформа-хозяин) иливиртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы (см.: песочница); также спецификация некоторой вычислительной среды (например: «виртуальная машина языка программирования Си»).

Виртуальная машина исполняет некоторый машинно-независимый код (например, байт-код, шитый код, p-код) илимашинный код реального процессора. Помимо процессора, ВМ может эмулировать работу как отдельных компонентов аппаратного обеспечения, так и целого реального компьютера (включая BIOS, оперативную память, жёсткий диск и другие периферийные устройства). В последнем случае в ВМ, как и на реальный компьютер, можно устанавливатьоперационные системы (например, Windows можно запускать в виртуальной машине под Linux или наоборот). На одном компьютере может функционировать несколько виртуальных машин (это может использоваться для имитации нескольких серверов на одном реальном сервере с целью оптимизации использования ресурсов сервера).

Виртуальные машины могут использоваться для:

 

защиты информации и ограничения возможностей программ (см.: песочница);

исследования производительности ПО или новой компьютерной архитектуры;

эмуляции различных архитектур (например, эмулятор игровой приставки);

оптимизации использования ресурсов мейнфреймов и прочих мощных компьютеров (см., например: IBM eServer);

вредоносного кода для управления инфицированной системой: вирус PMBS, обнаруженный в 1993 году, а также руткит SubVirt, созданный в 2006 году в Microsoft Research, создавали виртуальную систему, которой ограничивался пользователь и все защитные программы (антивирусы и прочие).[2]

моделирования информационных систем с клиент-серверной архитектурой на одной ЭВМ (эмуляция компьютерной сети с помощью нескольких виртуальных машин).

упрощения управления кластерами — виртуальные машины могут просто мигрировать с одной физической машины на другую во время работы.

тестирования и отладки системного программного обеспечения;

 

Break

В языке Java отсутствует оператор goto. Для того, чтобы в некоторых случаях заменять goto, в Java предусмотрен оператор break. Этот оператор сообщает исполняющей среде, что следует прекратить выполнение именованного блока и пере­дать управление оператору, следующему за данным блоком. Для имено­вания блоков в языке Java используются метки. Оператор break при работе с циклами и в операторах switch может использоваться без метки. В таком случае подразумевается выход из текущего блока.

Операторы условного перехода следует применять так, чтобы нормальный ход выполнения программы был очевиден. После if следует располагать код, удовлетворяющий нормальной работе алгоритма, после else побочные и исключительные варианты.

Оператор выбора if имеет следующий синтаксис:

if (boolexp) { /*операторы*/} //1

else { /*операторы*/ } //2

Если выражение boolexp принимает значение true, то выполняется группа операторов 1, иначе – группа операторов 2. При отсутствии оператора else операторы, расположенные после окончания оператора if (строка 2), выполняются вне зависимости от значения булевского выражения оператора if. Допустимо также использование конструкции-лесенки if {} else if {}.

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

Задача:

class Complex {

private static final double EPS = 1e-12; // Точность вычислений

private double re, im; // Действительная и мнимая часть

// Четыре конструктора *******************************

Complex(double re, double im) {

this.re = re; this.im = im;

};

Complex(double re) {

this(re, 0.0);

};

Complex() {

this(0.0, 0.0);

};

Complex(Complex z) {

this(z.re, z.im);

};

// Методы доступа ***********************************

public double getRe() { return re;}

public double getIm() { return im;}

public Complex getZ() { return new Complex(re, im); }

public void setRe(double re) { this.re = re; }

public void setIm(double im) { this.im = im; }

public void setZ (Complex z) { re = z.re; im = z.im; }

// Модуль и аргумент комплексного числа **************

public double mod() { return Math.sqrt(re * re + im * im); }

public double arg() { return Math.atan2(re, im); }

// Проверка: действительное число? ************************

public boolean isReal() { return Math.abs(im) < EPS; }

// Вывод на экран *******************************************

public void pr() {

System.out.println(re + (im < 0.0? "": "+") + im + "i");

}

// Переопределение методов класса Object **********************

public boolean equals(Complex z) {

return Math.abs(re - z.re) < EPS &&

Math.abs(im - z.im) < EPS;

}

public String toString() {

return "Complex: " + re + " " + im;

}

// Методы, реализующие операции +=, -=, *=, /=

public void add(Complex z) {re += z.re; im += z.im; }

public void sub(Complex z) {re -= z.re; im -= z.im; }

public void mul(Complex z) {

double t = re * z.re - im * z.im;

im = re * z.im + im * z.re;

re = t;

}

public void div(Complex z) {

double m = z.mod();

double t = re * z.re - im * z.im;

im = (im * z.re - re * z.im) / m;

re = t / m;

}

// Методы, реализующие операции +, -, *, /

public Complex plus(Complex z) {

return new Complex(re + z.re, im + z.im);

}

public Complex minus(Complex z) {

return new Complex(re - z.re, im - z.im);

}

public Complex asterisk(Complex z) {

return new Complex(

re * z.re - im * z.im,

re * z.im + im * z.re);

}

public Complex slash(Complex z) {

double m = z.mod();

return new Complex(

(re * z.re - im * z.im) / m,

(im * z.re - re * z.im) / m);

}

}

// Проверим работу класса Complex

public class ComplexTest{

public static void main(String[] args) {

Complex zl = new Complex(),

z2 = new Complex(1.5),

z3 = new Complex(3.6, -2.2),

z4 = new Complex(z3);

System.out.println(); // Оставляем пустую строку

System.out.print("z1 = "); zl.pr();

System.out.print("z2 = "); z2.pr();

System.out.print("z3 = "); z3.pr();

System.out.print("z4 = "); z4.pr();

System.out.println(z4); // Работает метод toString()

z2.add(z3);

System.out.print("z2 + z3 = "); z2.pr();

z2.div(z3);

System.out.print("z2 / z3 = "); z2.pr();

z2 = z2.plus(z2);

System.out.print("z2 + z2 = "); z2.pr();

z3 = z2.slash(zl);

System.out.print("z2 / z1 = "); z3.pr();

}

}

 

БИЛЕТ №4

1. Основные особенности (характеристики) языка Java, отличающие его от других языков программирования:

1) Кросс-платформенность – это главное свойство языка Java, которым объясняются все остальные особенности данного языка: с технической точки зрения, Java — это язык, который работает на виртуальной маши­не.

2) Java не дает возможность написать код, который напрямую обращается к адресам в памяти компьютера, как в некоторых языках, таких как С и C++ (путем использования указателей). Эта характеристика языка Java поддерживает безопасность программ.

3) Java — это объектно-ориентированный язык программирования. Он создан для того, чтобы разрабатывать графические при­ложения с управлением событиями (т.е. для создания графического пользовательского интерфейса, который поддерживает действия по типу "укажи и щелкни" (point and click). Такие приложения могут быть самостоятельными программами (Application) или апплетами (Applet), за­гружаемыми из Интернета. Java обладает основными синтаксиче­скими особенностями структурированных языков программиро­вания: последовательным (линейным), условным (ветвление) и повторяющимся (циклы) выполнением блоков кода.

В программировании, байт-код или байтко́д (англ. bytecode или p-code от portable code) — это промежуточное представление[en], в которое может быть переведенакомпьютерная программа. По сравнению с исходным кодом, удобным для создания и чтения человеком, байт-код — это компактное представление программы, уже прошедшей синтаксический и семантический анализ. В нём в явном виде закодированы типы, области видимости и т. п. С технической точки зрения, байт-код представляет собой машинно-независимый код низкого уровня, генерируемый транслятором из исходного кода.

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

После создания простого приложения, которое выводит что-то на экран, вы должны компилировать ваш код и запустить его.

Независимо от того, какую операционную систему вы используете, Linux, Mac или Windows, если на вашем компьютере установлен JDK (Java Development Kit), вы можете в консоли набрать следующие команды чтобы скомпилировать и запустить программу:

javac (или javac.exe) java (или java.exe)

В первом случае будет вызван компилятор javac.exe, а во втором случае — запускалка java.exe, которая стартует нашу программу. Эти файлы лежат в папке bin вашего JDK.

2. Иногда требуется, чтобы повторение цикла начиналось с более раннего оператора его тела. В циклах while и do-while операторcontinue вызывает передачу управления непосредственно управляющему условному выражению цикла. В цикле for управление передаётся вначале итерационной части цикла for, а потом условному выражению. При этом во всех циклах промежуточный код пропускается.

Как и оператор break, оператор continue может содержать метку содержащего его цикла, который нужно продолжить. Создадим пример вывода треугольной таблицы умножения чисел от 0 до 9.

Циклы

Любой цикл можно разделить на 4 части — инициализацию, тело, итерацию и условие завершения. В Java есть три циклические конструкции: while (с пред-условием), do-while (с пост-условием) и for (с параметровм).

while

Этот цикл многократно выполняется до тех пор, пока значение логического выражения равно true. Ниже приведена общая форма оператора while:

[ инициализация; ]

while (завершение) {

тело;

[итерация;] }

Инициализация и итерация необязательны. Ниже приведен пример цикла while для печати десяти строк «tick».

class WhileDemo {

public static void main(String args[]) {

int n = 10;

while (n > 0) {

System.out.println("tick " + n);

n--;

}

} }

do-while

Иногда возникает потребность выполнить тело цикла по крайней мере один раз — даже в том случае, когда логическое выражение с самого на­чала принимает значение false. Для таких случаев в Java используется цикли­ческая конструкция do-while. Ее общая форма записи такова:

[ инициализация; ] do { тело; [итерация;] } while (завершение);

В следующем примере тело цикла выполняется до первой проверки условия завершения. Это позволяет совместить код итерации с условием завершения:

class DoWhile {

public static void main(String args[]) {

int n = 10;

do {

System.out.println("tick " + n);

} while (--n > 0);

} }

 

For

В этом операторе предусмотрены места для всех четырех частей цикла. Ниже приведена общая форма оператора записи for.

for (инициализация; завершение; итерация) тело;

Любой цикл, записанный с помо­щью оператора for, можно записать в виде цикла while, и наоборот. Если начальные условия таковы, что при входе в цикл условие за­вершения не выполнено, то операторы тела и итерации не выполняются ни одного раза. В каноническая форме цикла for происходит увеличение целого значения счетчика с минимального значения до определенного предела.

class ForDemo {

public static void main(String args[]) {

for (int i = 1; i <= 10; i++)

System.out.println("i = " + i);

} }

Следующий пример — вариант программы, ведущей обратный отсчет.

class ForTick {

public static void main(String args[]) {

for (int n = 10; n > 0; n--)

System.out.println("tick " + n);

} }

Задача:

(такая же как и в билете 3, только без показательной формы) только с этим методом:

void CalculateExp()

{

modulus_ = sqrt(pow(a_, 2) + pow(b_, 2));

angle_ = atan(b_ / a_);

if(a_ < 0)

angle_ += pi;

}

void Calculate()

{

a_ = modulus_ * cos(angle_);

b_ = modulus_ * sin(angle_);

}

};

 

БИЛЕТ №5

1. Java Development Kit (сокращенно JDK) — бесплатно распространяемый компанией Oracle Corporation (ранее Sun Microsystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE). В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки.

Компиляция:

Вход в папку с исходным Java-кодом

- Зайдите в папку с исходными кодами, для этого введите системную команду перехода к другому подкаталогу CD с указанием пути к подкаталогу с файлом исходного кода, например:

cd c:\Documents and Settings\2\Мои документы\Java\HelloWorld



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: