Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Леднева_программирование_на_JAVA.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

Особенности алгоритмов и программ с накапливанием

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

Сумма вычисляется по формуле

сумма= сумма + слагаемое.

Перед вычислениями начальному значению суммы обычно присваивается ноль.

Пример:

int s=0;

for (i = 0; i < 10; i++) {

s+=i; // или s=s+i;

}

Произведение вычисляется по формуле

произведение = произведение * сомножитель.

Начальное значение произведения обычно равно единице.

Пример:

int pr=1;

for (i = 0; i < 10; i++) {

pr*=5; // или pr=pr*5;

}

Количество вычисляется по формуле

количество = количество + 1.

Начальное значение количества обычно равно нулю.

Пример:

int kol=0;

for (i = 0; i < 10; i++) {

if (i%2==0)

kol++; // или kol=kol+1;

}

Методы класса Math

В коде программ Java часто используются математические методы класса Math. Библиотека классов java.lang.Math содержит константы и методы, нужные для выполнения математических вычислений, такие как число «е» (Math.E), число «пи» (Math.PI), различные тригонометрические функции, генератор случайных чисел, методы позволяющие определять минимальное и максимальное значение из двух чисел, возводить числа в произвольно заданную степень, выполнять округление, определять абсолютное значение, извлекать квадратный корень и так далее.

Так как класс Math статический, для использования его функций не требуется создания объекта: достаточно набрать слово Math и после точки указать нужный метод. Методы класса Math имеют входящие параметры и возвращаемое значение типа double.

Далее в примерах демонстрируются основные приемы работы с объектами класса Math.

Math.random() – генерирует значение от 0.0 до 1.0. Это значение необходимо умножить на максимальное число, которое не должно быть превышено в процессе генерации случайных чисел.

for (int k = 0; k < 15; k++) {

int b=(int)(Math.random()*10);

System.out.print(" "+b);

}

Метод Math.pow(a, b) позволяет возвести число а в степень b.

double a=Math.pow(3.0, 2.0);

Метод Math.abs(a) позволяет получить абсолютную величину числа a.

double c=Math.abs(a);

Метод Math.sqrt(a) позволяет извлечь квадратный корень из числа a.

double c=Math.sqrt(a);

Задания

Все задания тестировать в режиме отладки.

Задание 4.1. Выполнить задачу 4.1 из теоретической части лабораторной работы.

Задание 4.2. Подсчитать количество совершенных чисел в заданном числовом диапазоне, вводимом с клавиатуры, и вывести их на экран.

Совершенное число это такое, у которого сумма делителей равна самому числу. Пример: число 6=1+2+3.

Задачу решить с использованием следующего алгоритма:

1. Ввести границы диапазона (левая, правая);

2. кол_сов=0

3. Для каждого числа из диапазона выполнить:

3.1. Сум.=1;

3.2. Для каждого делителя числа от 2 до (число/2) выполнить:

если число делится без остатка на делитель, тогда

Сум=Сум+делитель;

3.3. Если сумма делителей равна числу:

вывести число;

кол_сов=кол_сов+1

4. Вывести количество совершенных чисел.

5. Закончить.

Задание 4.3. Определить все счастливые четырехзначные числа:

а) вывести их на экран и подсчитать их общее количество;

б) построить гистограмму (количество счастливых чисел в каждой тысяче).

Пункт а) выполнить с использованием следующего алгоритма.

k

// t – тысячи

// s – сотни

// d – десятки

// ed – единицы

ol=0;

Для t от 0 до 9

Для s от 0 до 9

Для d от 0 до 9

Для ed от 0 до 9

Если t+s=d+ed то

а) вывести t,s,d,ed,” ”

б) kol++;

Вывести kol.

Задание 4.4. Подсчитать факториал числа Num, введенного с клавиатуры, и вывести его на экран в виде 1*2*3…*num=Rezult.

Факториал числа n (обозначается n!) – произведение всех натуральных чисел от 1 до n включительно: n!=1*2*…*n.

Например: 5!=1*2*3*4*5=120.

Задание 4.5. Ввести число num с клавиатуры, найти и вывести на экран все трехзначные числа, сумма цифр которых равна num.

Задание 4.6. Вывести на экран первые 11 членов последовательности Фибоначчи.

Последовательность Фибоначчи формируется так: первый и второй члены последовательности равны единицам, а каждый следующий – сумме двух предыдущих.

Задание 4.7. Самостоятельно исследовать методы класса Math, придумав и выполнив простейшие задачи с методами, описанными в теоретической части лабораторной работы.

Задание 4.8. Определить и вывести на экран все четырехзначные счастливые числа, методом выделения цифр из числа операциями / и %. Подсчитать их количество.

Алгоритм:

1. кол=0;

2 Для числа num от 1000 до 9999 выполнить:

2.1. раб.число=число num;

2.2. сумма1=0;

2.3. для i от 0 до 1 выполнить

а) сумма1=(раб.число % 10) + сумма1;

б) раб.число=(int) раб.число /10

2.4. сумма2=0;

2.5. для i от 0 до 1 выполнить

а) сумма2=(раб.число %10) + сумма2;

б) раб.число= раб.число /10

если сумма1= сумма2, тогда:

а) кол=кол + 1;

б) вывести число num.

3. Вывести количество счастливых чисел.

4. Закончить.