- •Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке java
- •Иркутск
- •Содержание
- •Предисловие
- •Алфавит языка
- •Ключевые слова
- •Типы данных
- •Литералы (константы)
- •Комментарии
- •Переменные
- •Математические функции
- •Выражения
- •Выражения целого типа
- •Примеры записи выражений целого типа:
- •Примеры вычислений выражений целого типа:
- •Выражения действительного типа
- •Примеры записи выражений действительного типа
- •Примеры вычислений выражений действительного типа:
- •Выражения логического типа
- •Операторы присваивания
- •Variable имяПеременной might not have been initialized
- •Примеры записи операторов присваивания:
- •Ввод и вывод данных
- •Ввод и вывод с помощью диалоговых окон
- •Import javax.Swing.*;
- •Консольный вывод
- •Консольный ввод с помощью класса Scanner
- •Import java.Util.*; //импорт пакета
- •Структура программы
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Пример записи алгоритма:
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкции
- •Import javax.Swing.*;
- •Int c, y1, y2, kl, day, month, year;
- •Часто встречающиеся ошибки программирования:
- •Import javax.Swing.*;
- •Переключатель
- •Int month;
- •Часто встречающиеся ошибки программирования:
- •Бесконечные циклы
- •Циклы с предусловием
- •Программа
- •Программа
- •Часто встречающиеся ошибки программирования:
- •Циклы с постусловием
- •Программа
- •Int month;
- •Циклы с параметром
- •Действия цикла:
- •Операторы прерывания break, continue, return, System.Exit
- •Структуры данных
- •Массивы
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, m, matrMin, matrMax;
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, vectorMin, vectorMax, temp;
- •VectorMin, vectorMax, n);
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, vectorMin, vectorMax, temp;
- •VectorMin, vectorMax, n);
- •Методы для работы с массивами
- •Класс String
- •Методы для работы со строками класса String
- •Класс StringBuffer
- •Методы для работы со строками класса StringBuffer
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Обработка исключительных ситуаций
- •If (переменная name вышла за диапазон)
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Import java.Io.*;
- •Import javax.Swing.*;
Ввод и вывод с помощью диалоговых окон
Графические средства ввода и вывода содержатся в пакете 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;
Консольный вывод
Консольный вывод (вывод на экран терминала) осуществляется методами 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