Программирование на языке Java

Характеристика алфавита языка Java, а также таких его компонентов как литералы, комментарии и переменные. Описание выражений целого, действительного и логического типов. Анализ специфики ввода и вывода данных. Характеристика базовых структур языка.

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык русский
Дата добавления 15.09.2017
Размер файла 930,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Поток in - это экземпляр класса InputStream. Стандартно он назначен на ввод с клавиатуры, который выполняется методами read().

Поток out - это экземпляр класса PrintStream, организующего выходной поток байтов. Он выводит информацию на консоль (монитор) методами print(), println(), printf().

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

Все методы организации потоков собраны в классы пакета java.io.

Помимо консольного ввода/вывода, в Java широко используется ввод/вывод с помощью диалоговых окон.

10.1 Ввод и вывод с помощью диалоговых окон

Графические средства ввода и вывода содержатся в пакете javax.swing, который подключается к программе командой

import javax.swing.*;

Этот пакет содержит класс JOptionPane, позволяющий создавать и отображать диалоговые окна четырех типов:

- для ввода данных showInputDialog(),

- для вывода информационных сообщений showMessageDialog(),

- для получения подтверждения определенных действий,

- для выполнения настроек.

Ввод данных диалоговым окном showInputDialog() осуществляется с помощью переменной-строки:

String input, output; // имя может быть любым

input=JOptionPane.showInputDialog("Введите значение n:”);

При этом на экране появится окно ввода:

В поле ввода нужно напечатать необходимое значение и нажать на кнопку OK:

При этом переменная-строка input (имя может быть любым) примет значение строки 15. Осталось перевести эту строку в нужный тип данных:

int n;

n=Integer.parseInt(input); // перевод строки в данное целого типа

Для вывода данных используется окно вывода:

output="Введенное значение переменной n:\n" + n; // строка вывода

JOptionPane.showMessageDialog(null, output);

При этом на экране появится окно вывода:

Первый аргумент метода null - обязателен, второй аргумент output (имя может быть любым) - выводимая строка, которая может содержать текст, ESC-последовательности (\n) и выводимые данные.

Третьим и четвертым аргументами могут быть заголовок окна и тип значка (рисунка) в окне:

String title=”Входные данные”; // заголовок окна

int type=JOptionPane.ERROR_MESSAGE; // тип значка

output="Введенное значение переменной n:\n" + n;

JOptionPane.showMessageDialog(null, output, title, type);

В данном случае значок сообщает об ошибке (JOptionPane.ERROR_MESSAGE).

Кроме такого значка, могут быть следующие:

информационный (по умолчанию) JOptionPane.INFORMATION_MESSAGE;

знак вопроса JOptionPane.QUESTION_MESSAGE;

предупреждение JOptionPane.WARNING_MESSAGE;

без значка JOptionPane.PLAIN_MESSAGE;

10.2 Консольный вывод

Консольный вывод (вывод на экран терминала) осуществляется методами print(), println(), printf(). Для этого используется статическое поле out класса System:

System.out.println("Лабораторная работа №1");

System.out.println("Вариант №10");

System.out.println("Группа ПИ-12-1");

System.out.println("Студент Пупкин Василий");

System.out.println(); //пропуск пустой строки

В окне вывода появится:

Лабораторная работа №1

Вариант №10

Группа ПИ-12-1

Студент Пупкин Василий

С помощью метода print() (println() - с переходом на новую строку) можно выводить на консоль данные любых типов: символы, строки, целые и действительные числа, логические значения, объекты:

int n=-5;

double x=0.314259265e+1;

System.out.println(n=” + n); // бесформатный вывод

System.out.println(x=” + x);

В окне вывода появится:

n=-5

x=3.14259265 // точность вывода - восемь цифр дробной части

Метод printf() позволяет выполнять форматированный вывод. Он полностью аналогичен функции printf() языка Си:

System.out.printf(“формат”, аргументы);

где аргументы - список вывода - имена переменных, значения которых выводятся,

формат - представляет собой строку, содержащую сообщения, которые должны быть выведены на экран, управляющие символы (ESC-последовательности) и спецификации преобразований выводимых данных (аргументов):

System.out.printf(“\nJava - язык программирования XXI века\n”);

При выполнении этой функции курсор в окне вывода перейдет на новую строку (\n), будет выведено сообщение:

Java - язык программирования XXI века

и курсор снова перейдет на новую строку. Как видно, ESC-последовательности включаются в строку, но сами на экран не выводятся.

Спецификации преобразований задают вид выводимых данных. Они состоят из символа % и спецификаторов:

d - для данных целого типа в десятичной системе счисления,

x - для данных целого типа в шестнадцатеричной системе счисления,

f - для данных действительного типа в форме с фиксированной запятой,

e - для данных действительного типа в форме с плавающей запятой,

g - наиболее короткое представление из f и e,

с - для данных символьного типа,

s - для строк,

b - для логических значений,

t - для даты и времени.

Очередная спецификация в формате относится к очередному аргументу в списке вывода. Спецификации могут быть разделены пробелами, запятыми или идти подряд:

char b='A';

int i=-123;

double x=123.456;

String str=”Студент Пупкин”;

System.out.printf(“\nb=%c”, b);

System.out.printf(“\n%f, %e, %g”, x, x, x);

System.out.printf(“\n%s”, str);

System.out.printf(“\n%d %f %c”, i, x, b);

В окне вывода появится:

b=A

123,456000, 1,234560e+02, 123,456

Студент Пупкин

-123 123,456000 A

Таким образом, при выводе положительных чисел знак + не печатается. Если вещественное число выводится в форме f , то в его дробной части записывается шесть цифр, а если в форме e - то в его целой части остается одна цифра, все остальные записываются в дробную часть. Показатель степени (после буквы e) - две цифры.

В спецификациях после символа % можно указать общее количество позиций, отводимых для вывода данного числа (строки) - длину поля вывода. Если длина выводимого числа (строки) меньше поля вывода, то оно прижимается к правому краю:

System.out.printf(“\n%20c”, b);

System.out.printf(“\n%20s”, str);

System.out.printf(“\n%20d”, i);

В окне вывода появится:

A

Студент Пупкин

-123

При выводе данных действительного типа можно указывать как длину поля вывода, так и количество цифр его дробной части (точность вывода). При этом число округляется до заданной точности, а избыточные позиции слева заполняются нулями. В любом случае определяющей является точность вывода, при этом общую длину поля вывода можно даже не задавать:

System.out.printf(“\n%7.2f”, x);

System.out.printf(“\n%.1f”, x);

System.out.printf(“\n%.4e”, x);

System.out.printf(“\n%15.3f”, x);

В окне вывода появится:

123,46

123,5

1,2346e+02

123,456

При выводе строк можно указывать как общую длину поля вывода, так и количество выводимых символов строки:

System.out.printf(“\n%10.3s”, str);

В окне вывода появится:

Сту

Для удобства вывода в строковую константу метода System.out.printf() можно включать как текст, так и спецификации:

int age=17, rost=178;

double weight=67.5;

String name="Петр";

System.out.printf("\nМеня зовут %s, мне %d лет", name, age);

System.out.printf("\nМой рост %d см, мой вес %f кг\n", rost, weight);

В окне вывода появится:

Меня зовут Петр, мне 17 лет

Мой рост 178 см, мой вес 67,500000 кг

С помощью метода System.out.printf() удобно выводить текущую дату и время. При этом используются следующие спецификации преобразования:

tc - полная дата и время,

tF - дата в формате год-месяц-число,

tY - год четырьмя цифрами,

ty - год двумя последними цифрами,

tB - месяц словами,

tm - месяц двумя цифрами,

te - число месяца,

tA -день недели словами,

tT - время в формате часы:минуты:секунды,

tR - время в формате часы:минуты.

Date nom=new Date(); // создание объекта класса Date()

System.out.printf("Дата - %tс\n", nom);

System.out.printf("Год - %tY\n", nom);

System.out.printf("Месяц - %tB\n", nom);

System.out.printf("Число - %te\n", nom);

System.out.printf("День недели - %tA\n", nom);

System.out.printf("Время - %tT\n", nom);

В окне вывода появится:

Дата - Пн июл 02 14:32:52 IRKST 2012

Год - 2012

Месяц - Июль

Число - 2

День недели - понедельник

Время - 14:32:52

10.3 Консольный ввод с помощью класса Scanner

Консольный ввод данных в языке Java достаточно просто реализован с помощью класса Scanner. Для работы с этим классом необходимо включить в заголовок файла программы инструкцию import.java.util.*, то есть подключить пакет java.util.

Общая схема реализации процесса ввода данных с консоли посредством класса Scanner такова: на основе стандартного потока ввода System.in создается объект класса Scanner, через который и осуществляется консольный ввод. При этом используются следующие методы этого класса:

nextLine() считывание текстовой строки,

nextInt() считывание целого числа типа int,

nextDouble() считывание действительного числа типа double,

nextBoolean() считывание логического значения,

nextLong() считывание целого числа типа long,

nextShort() считывание целого числа типа short,

nextByte() считывание целого числа типа byte,

nextFloat() считывание действительного числа типа float,

next() считывание одного слова.

Пример:

package javaapplicationscanner;

import java.util.*; //импорт пакета

public class JavaApplicationScanner

{

public static void main(String[] args)

{

//создание объекта класса Scanner - имя может быть любым

Scanner input=new Scanner(System.in);

//описание переменных

String gruppa, name;

int age;

double weight;

System.out.print("Ваше имя: "); //запрос имени

name=input.nextLine(); //считывание текстовой строки

// с пробелами

System.out.print("Ваша группа: ");

gruppa=input.next(); //считывание одного слова

System.out.print("Ваш возраст: ");

age=input.nextInt(); //считывание целого числа

System.out.print("Ваш вес: ");

weight=input.nextDouble(); //считывание действительного

// числа

System.out.println("Вы ввели следующие данные:");

System.out.println("Имя: " + name + ", группа: " + gruppa + ", возраст: " + age + ", вес: " + weight);

}

}

В окне вывода появится:

Ваше имя: Пупкин Василий

Ваша группа: ПИ-12

Ваш возраст: 18

Ваш вес: 62,5

Вы ввели следующие данные:

Имя: Пупкин Василий, группа: ПИ-12, возраст: 18, вес: 62.5

Внимание! При вводе действительных чисел целая и дробная части их разделяются запятой!

11. Структура программы

Программа на Java состоит из одного или нескольких взаимосвязанных классов. В одном из классов должен быть метод с именем main(), который называется главным методом программы. Выполнение программы начинается с выполнения этого метода. Как правило, исходный код приложения Java выглядит следующим образом:

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package javaapplication_1;

/**

*

* @author User

*/

import javax.swing.*;

import java.util.*;

public class JavaApplication_1

{

/**

* @param args the command line arguments

*/

public static void main(String[] args)

{

// TODO code application logic here

}

}

Сначала идет многострочный комментарий, который содержит информацию о том, как изменить шаблон (template) создания проекта:

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

Затем объявляется, что созданный класс JavaApplication_1 будет находиться в пакете javaapplication_1.

После этого идет многострочный комментарий, предназначенный для автоматического создания документации по этому классу:

/**

*

* @author User

*/

В нем присутствует инструкция задания метаданных с помощью выражения @author - информация об авторе проекта для утилиты создания документации javadoc.

Метаданные - это информация, которая не относится к работе программы и не включается в нее при компиляции. Она сопровождает программу и может быть использована другими программами для проверки прав доступа к ней или ее распространения, проверки совместимости с другими программами, указания параметров при запуске класса и т.д. В данном месте исходного кода имя User берется средой разработки из операционной системы по имени папки пользователя. Его следует заменить на имя реального автора, например, на “Вася Пупкин”.

Метаданные задаются с помощью аннотации - выражения, начинающегося с символа @, после которого следует идентификатор, а затем могут идти круглые скобки, внутри которых указываются параметры аннотации.

Далее с помощью инструкций import подключаются необходимые пакеты, в данном случае библиотека графических компонентов Swing и библиотека классов консольного ввода/вывода Util.

После этого следует заголовок созданного главного класса программы:

public class JavaApplication_1

Слово public означает, что класс доступен за пределами того пакета, в котором он описан. Слово class свидетельствует о том, что речь идет именно о классе, а не о чем-то другом. После этого указывается имя класса, в данном случае JavaApplication_1.Далее в фигурных скобках описывается программный код класса.

Все классы и объекты приложения вызываются и управляются из метода main(), который объявлен далее и выглядит следующим образом:

public static void main(String[] args)

Это описание называется сигнатурой метода, и каждое слово в ней имеет определенное назначение:

public - метод доступен за пределами класса, он является открытым, так как он вызывается извне (из операционной системы),

static - метод является статическим, то есть его можно вызвать без создания экземпляра класса (объекта),

void - метод не возвращает конкретный результат после завершения работы,

main - наименование главного метода главного класса приложения,

args - аргумент (формальный параметр) метода main типа текстового массива String[].

Далее в фигурных скобках записывается программный код основного метода: создание объектов, описание переменных, ввод и обработка исходных данных. Он помещается вместо комментария:

// TODO code application logic here

(здесь описать логику работы программы)

При написании кода следует придерживаться нескольких простых правил:

- имена классов начинаются с прописной буквы; если имя содержит несколько слов, то каждое слово начинается с прописной буквы без символа подчеркивания: MyNewClass;

- имена переменных и методов начинаются со строчной буквы; если имя содержит несколько слов, то каждое слово начинается с прописной буквы без символа подчеркивания: indexRow;

- имена констант записываются прописными буквами; если имя содержит несколько слов, то между ними ставится символ подчеркивания: MY_CONST.

12. Алгоритм и его свойства

Алгоритм - это последовательность предписаний (команд), точное выполнение которых приводит к решению поставленной задачи.

Правильно построенные алгоритмы должны обладать следующими свойствами:

дискретность - алгоритм разбит на отдельные элементарные этапы (шаги), возможность выполнения которых не вызывает сомнений,

однозначность - команды, входящие в алгоритм, должны быть точными и понятными, порядок их выполнения должен быть единственно возможным, любая неопределенность или двусмысленность недопустима,

детерминированность - повтор результатов при повторе исходных данных,

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

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

12.1 Схемы алгоритмов

Любой алгоритм можно представить или записать тремя способами:

- словесным (вербальным) - с использованием слов и предложений,

- табличным (аналитическим) - с помощью формул и таблиц,

- графическим - с помощью рисунков, геометрических фигур и символов.

Самым наглядным из них является графический способ - представление алгоритма схемой.

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

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

Правила выполнения схем алгоритмов устанавливает Единая система программной документации (ЕСПД), в которую входят:

ГОСТ 19002-80 “Схемы алгоритмов и программ. Правила выполнения”

ГОСТ 19003-80 “Схемы алгоритмов и программ. Обозначения условные графические”

Перечень, наименование, обозначение и размеры наиболее употребляемых символов и отображаемых ими функций:

Размещено на http://www.allbest.ru/

процесс - выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных,

Размещено на http://www.allbest.ru/

решение - выбор направления выполнения программы или алгоритма в зависимости от некоторых переменных условий,

Размещено на http://www.allbest.ru/

модификация - выполнение операций, меняющих команды или группу команд, изменяющих программу,

Размещено на http://www.allbest.ru/

предопределенный процесс - использование ранее созданных или отдельно описанных алгоритмов или программ,

Размещено на http://www.allbest.ru/

данные - преобразование данных в форму, пригодную для обработки (ввод) или регистрации результатов обработки (вывод),

Размещено на http://www.allbest.ru/

дисплей - вывод данных на дисплей (монитор).

Размещено на http://www.allbest.ru/

терминатор - начало, конец, прерывание процесса обработки данных при выполнении программы,

линии потока - линии, связывающие символы схемы: линии, идущие справа налево или снизу вверх, должны иметь стрелки.

Размещено на http://www.allbest.ru/

комментарий- добавление описательных комментариев или пояснительных записей

Пример записи алгоритма:

Размещено на http://www.allbest.ru/

Для построения удобных в работе схем алгоритмов необходимо руководствоваться следующими правилами:

каждая схема должна иметь точку начала и точку конца,

от точки начала блоки располагаются сверху вниз и слева направо,

направление линий потока сверху вниз и слева направо принимается за основное и, если линия потока не имеет излома, то стрелками ее можно не обозначать,

расстояние между параллельными линиями потока должно быть не менее 3 мм, между остальными линями схемы - не менее 5 мм,

количество входящих в блок линий потока не ограничивается, но выходить из него может только одна линия (исключение - блок решения, из которого всегда выходят две линии),

запись в блоках должна быть словесной или математической, а не в виде операторов конкретного алгоритмического языка: нужно показать, что делается в блоке, а не как это делается,

записи внутри блоков должны быть расположены так, чтобы их можно было читать слева направо и сверху вниз независимо от направления линий потока,

схема должна читаться без дополнительных пояснений автора,

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

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

блоки можно объединять в более крупные пунктирными линиями, при этом необходимо описать назначение объединенных блоков,

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

13. Базовые структуры

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

Как всякое автоматическое устройство, компьютер способен выполнять некоторое число элементарных операций: сложение, вычитание, сравнение, запись и чтение данных. Причем он обладает способностью самостоятельно управлять выполнением этих операций во времени. Если попытаться явно выразить возможности этого управления, то можно выделить три основные (базовые) управляющие структуры : цепочка (следование), ветвление, цикл. Эти комбинируемые по желанию структуры дают нам конструктор, позволяющий описать процесс вычислений произвольной сложности и полностью контролировать действия, предписываемые программой.

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

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

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

Для использования методики структурного программирования при словесной записи алгоритмов необходимо, чтобы такая запись располагала специальными средствами, адекватно реализующими базовые структуры. Если таких средств в том или ином алгоритмическом языке нет, то для облегчения последующей работы по переводу алгоритма в программу (кодирования) необходимо отработать языковые шаблоны, эквивалентно представляющие базовые структуры.

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

13.1 Цепочка

Самой простой базовой структурой является цепочка - последовательность операторов присваивания.

Цепочку можно представить следующей схемой:

Размещено на http://www.allbest.ru/

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

Алгоритм циклического обмена в этом случае будет выглядеть следующим образом:

Размещено на http://www.allbest.ru/

Переменные a и b обмениваются своими значениями через переменную x.

По этому алгоритму можно написать последовательность операторов:

x = a;

a = b;

b = x;

13.2 Ветвления

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

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

альтернатива,

переключатель.

Альтернатива

Альтернатива является простейшей формой ветвлений. Она предполагает выбор одного из двух путей решения задачи, причем этот выбор зависит от выполнения заданных условий:

истина (да) ложь (нет)

Размещено на http://www.allbest.ru/

Альтернативу можно описать словесно:

ЕСЛИ (условие)

ТО цепочка-1

ИНАЧЕ цепочка-2

В альтернативе может отсутствовать часть (ветвь) ИНАЧЕ, тогда она приобретает вид усеченной альтернативы:

истина (да) ложь (нет)

Размещено на http://www.allbest.ru/

ЕСЛИ (условие)

ТО цепочка-1

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

Действие альтернативы:

проверяется выполнение условия,

если условие истинно, то выполняется следующая за ним цепочка-1, а цепочка-2, если она имеется, не выполняется,

если условие ложно, то выполняется цепочка-2, если она имеется.

В Java, как и в Си, альтернатива реализуется условным оператором:

if (условие)

оператор-1;

else оператор-2;

где условие - это любое логическое выражение (обязательно ставится в скобки).

В каждой ветке альтернативы может следовать только один оператор языка, причем перед else точка с запятой ставится обязательно.

Примеры:

1. определить значения переменной z после выполнения операторов:

x = 1;

z = 3;

if (x - z > 0) в данном случае условие ложно, поэтому

z = z - 1; будет выполняться ветвь else, и, значит,

else z = z + 1; z = 4

определить наибольшую из двух переменных a и b, присвоив ее значение переменной с:

да нет

Размещено на http://www.allbest.ru/

Словесное описание алгоритма:

ЕСЛИ (a > b)

ТО c = a

ИНАЧЕ c = b;

Реализуем этот алгоритм на Java:

if (a > b)

c = a;

else c = b;

3. решить эту же задачу сокращенной альтернативой:

а) двумя сокращенными альтернативами:

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

if (a > b)

c = a;

if (b > a)

c = b;

Размещено на http://www.allbest.ru/

б) одной сокращенной альтернативой:

c = b;

if (a > b)

c = a;

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

sin c,если c < 2,5

a =

cos c,если c ? 2,5

| c |,если c < 2,5

b =

1/c, если c ? 2,5

Размещено на http://www.allbest.ru/

На Java:

if (c < 2.5) Внимание! Перед служебным словом

{ else ставится точка с запятой!

a=Math.sin(c);

b=Math.abs(c);

}

else

{

a=Math.cos(c);

b=1.0/c;

}

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

В каждой ветви условного оператора if могут в свою очередь стоять новые операторы if , что дает возможность использовать вложение операторов if до любого уровня:

Примеры:

1. определить наибольшую из трех переменных x, y, z и присвоить ее значение переменной s:

а) с использованием полной альтернативы:

ЕСЛИ (x > y) if (x > y)

ТО ЕСЛИ (x > z) if (x > z)

ТО s = x s=x;

ИНАЧЕ s = z else s=z;

ИНАЧЕ ЕСЛИ (y > z) else if (y > z)

ТО s = y s=y;

ИНАЧЕ s = z; else s=z;

Размещено на http://www.allbest.ru/

б) с использованием усеченной альтернативы: вариант 1

Размещено на http://www.allbest.ru/

s = z; s = z;

ЕСЛИ (x > y) if (x > y)

ТО ЕСЛИ (x > z) if (x > z)

ТО s = x; s=x;

ЕСЛИ (y > x) if (y >x)

ТО ЕСЛИ (y > z) if (y > z)

ТО s = y; s=y;

вариант 2 - с использованием операции конъюнкции

s = z; s = z;

ЕСЛИ (x > y) & (x > z) if ((x > y) && (x > z))

ТО s = x; s=x;

ЕСЛИ (y > x) & (y > z) if ((y >x) && (y > z))

ТО s = y; s=y;

Размещено на http://www.allbest.ru/

2. по заданной дате (день, месяц, год) определить день недели, приходящийся на нее:

package javaapplication1;

// Импорт библиотеки графических компонентов Swing

import javax.swing.*;

public class JavaApplication1 // описание главного класса

{

public static void main(String[] args) // описание

// главного метода

// main этого класса

{

// описание переменных:

int c, y1, y2, kl, day, month, year;

String input, text;

// вызов диалогового окна ввода исходных данных

input=JOptionPane.showInputDialog("Введите день:");

// преобразование из строкового значения в целое

day=Integer.parseInt(input);

input=JOptionPane.showInputDialog("Введите месяц:");

month=Integer.parseInt(input);

input=JOptionPane.showInputDialog("Введите год:");

year=Integer.parseInt(input);

// формирование строки вывода

text="Вы ввели:\nдень - " + day + "\nмесяц: " + month + "\nгод - " + year;

// вызов диалогового окна эхо-печати

JOptionPane.showMessageDialog(null, text);

// вычисление значений переменных

kl=0;

c=0;

y1=year/100;

y2=year-y1*100;

if ((y2==0) && (y1%4==0))

c=1;

if ((y2!=0) && (y2%4==0))

c=1;

if ((c==1) && (month==1) || (month==2))

kl=1;

if ((c==0) && (month==1) || (month==2))

kl=2;

c=(int)Math.ceil(365.25*y2) + (int)Math.ceil(30.56*month) + day + kl;

c %= 7;

// формирование строки вывода

if (c==0)

text="Это понедельник";

if (c==1)

text="Это вторник";

if (c==2)

text="Это среда";

if (c==3)

text="Это четверг";

if (c==4)

text="Это пятница";

if (c==5)

text="Это суббота";

if (c==6)

text="Это воскресенье";

// вызов диалогового окна вывода переменных

JOptionPane.showMessageDialog(null, text);

}

}

По принятому в Java соглашению, ветвь else всегда относится к ближайшему предшествующему ему незанятому if:

if (n>0)

if (m % n > 2)

m -= n;

else m += n;

else m %= n;

В данном случае ветвь else m += n относится к if (m % n > 2), а ветвь

else m %= n относится к if (n > 0).

При переходе с Паскаля на Java программисты часто допускают ошибки при формировании условия в операторе if, путая две операции:

= присваивания и

== сравнения:

if (a==b)

System.out.printf(“\nЭти величины равны между собой”);

else System.out.printf(“\nЭти величины не равны между собой”);

Это правильное сравнение значений двух переменных.

Перепишем это сравнение с ошибкой:

if (a=b)

System.out.printf(“\nЭти величины равны между собой”);

else System.out.printf(“\nЭти величины не равны между собой”);


Подобные документы

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Программирование ввода-вывода на основе потоков в Java. Классы для работы с потоками символов. Характеристика базовых классов. Пример чтения сетевого ресурса. Коллекции как расширение возможностей массивов. Работа с ассоциативными массивами HashMap.

    лекция [630,1 K], добавлен 01.05.2014

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.

    курсовая работа [549,2 K], добавлен 23.12.2015

  • Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.

    презентация [46,1 K], добавлен 25.04.2014

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

  • Описание и установка интегрированной среды разработки Eclipse. Описание языка Java. Описание классов и методов, пакетов, использованных в программе, сервера и клиента. Разработка руководства пользователя для клиента и сервера. Пример работы чата.

    курсовая работа [443,5 K], добавлен 18.05.2015

  • Динамическая инициализация объектов в Java с помощью зарезервированного слова new. Порядок вызовов при создании объекта. Порядок выполнения операторов при наличии блоков инициализации. Чтение и запись файлов в программе, иерархия классов ввода/вывода.

    контрольная работа [120,6 K], добавлен 07.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.