Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Java.doc
Скачиваний:
836
Добавлен:
04.06.2015
Размер:
5.55 Mб
Скачать

Часто встречающиеся ошибки программирования:

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;

  1. Отсутствие точки с запятой перед закрывающей фигурной скобкой }или наличие точки с запятой после нее:

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:

Определить:

  1. Значение функции yпри заданном значении аргументаx.

  2. Площади фигур слева и справа от линии разреза.

По теореме Пифагора:

Площадь фигуры слева от линии разреза определяется суммой площадей прямоугольного треугольника:

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);

}

}