- •Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке 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.*;
Часто встречающиеся ошибки программирования:
1.Использование else без первой ветви:
if (n > m)
else . . .
2. Использование открывающей фигурной скобки{ без закрывающей}и наоборот.
3.Отсутствие точки с запятой перед словомelse:
if (n > m)
a=1
else a=0;
4. Точка с запятой после условия:
if (n > m);
a=1;
else a=0;
Отсутствие точки с запятой перед закрывающей фигурной скобкой }или наличие точки с запятой после нее:
if (c < 2.5)
{
a=Math.sin(c);
b=Math.abs(c);
};
else
{
a=Math.cos(c);
b=1.0/c
}
Пример
Задан график функции f(x)– полуокружность радиусаR=1:
Определить:
Значение функции yпри заданном значении аргументаx.
Площади фигур слева и справа от линии разреза.
По теореме Пифагора:
Площадь фигуры слева от линии разреза определяется суммой площадей прямоугольного треугольника:
s1 = 0,5 x y
и сектора:
s2 = 0,5 R2 (α – sin α),гдеα– центральный угол в радианах,
причем
α = arcsin(y/R).
Площадь всей фигуры (полукруга) определяется выражением:
S = π R2/2.
Программа решения задачи:
package javaapplication2;
// импорт библиотеки графических компонентов Swing
Import javax.Swing.*;
public class JavaApplication2 // описание главного класса
{
public static void main(String[] args)
{
// описание переменных:
double x, y, sLeft, sRight, alfa, sinAlfa, segment;
String input, text;
y=0.0;
sLeft=0.0;
sRight=0.0;
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("Введите значение переменной x:");
// преобразование из строкового значения в вещественное
x=Double.parseDouble(input);
if (x<=1.0) //первый участок
{
y=Math.sqrt(1.0 - (x - 1.0 ) * (x - 1.0 ));
if (x<=0.0)
y=0.0;
}
else
{ //второй участок
y=Math.sqrt(1.0 - (x - Math.floor(x)) * (x - Math.floor(x)));
if (x>=2.0)
y=0.0;
}
if (x==1.0) //двойной знак равенства!
{
sLeft=0.7854;
sRight=0.7854;
}
if (x<1.0) //первый участок
{
sinAlfa=y;
if (sinAlfa!=1.0)
alfa=Math.atan(sinAlfa/Math.sqrt(1.0 - sinAlfa*sinAlfa));
else alfa=Math.PI/2.0;
segment=0.5*(alfa - sinAlfa);
sLeft=segment + 0.5*x*y;
sRight=Math.PI/2.0 - sLeft;
} //x<1.0
if (x>1.0) //второй участок
{
x=2.0-x;
sinAlfa=y;
if (sinAlfa!=1.0)
alfa=Math.atan(sinAlfa/Math.sqrt(1.0 - sinAlfa*sinAlfa));
else alfa=Math.PI/2.0;
segment=0.5*(alfa - sinAlfa);
sLeft=segment + 0.5*x*y;
sRight=Math.PI/2.0 - sLeft;
} //x>1.0
// формирование строки вывода
text="Результат работы программы:\ny=" + y + "\ns_left=" + sLeft + "\ns_right=" + sRight;
// вызов диалогового окна вывода
JOptionPane.showMessageDialog(null, text);
}
}