- •Часть 1
- •Часть 1
- •Введение
- •Лабораторная работа № 1 разработка схем алгоритмов
- •Краткая теория Этапы решения задач на эвм
- •Определение алгоритма и способы его описания
- •Правила оформления схем алгоритмов
- •Типы алгоритмов
- •Задания
- •Построение схем алгоритмов с помощью текстового редактора word
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 2 работа в среде netbeans. Создание простейших программ с линейным алгоритмом
- •Краткая теория Установка ide NetBeans
- •Общие правила создания приложений
- •Работа с проектом NetBeans
- •Пример создания простейшего приложения
- •Общие правила построения класса
- •Типы данных
- •Объявление переменных
- •Оператор присваивания
- •Приведение типов
- •Организация ввода данных
- •Организация вывода данных
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 3 разработка простейших приложений на базе разветвляющихся алгоритмов
- •Краткая теория Средства переименования в среде NetBeans
- •Отладка кода в среде NetBeans
- •Условный оператор if-else
- •Условный оператор switch
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 4 разработка программ с циклами со счетчиком
- •Краткая теория Циклы со счетчиком
- •Особенности алгоритмов и программ с накапливанием
- •Методы класса Math
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 5 работа с итерационными циклами. Одномерные массивы
- •Краткая теория Итерационные циклы
- •Цикл while
- •Цикл do-while
- •Одномерные массивы
- •Подсчет суммы, количества и среднего значения в одномерных массивах
- •Нахождение минимума и максимума
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 6 алгоритмы сортировки и разбиения одномерных массивов
- •Краткая теория Сортировка одномерных массивов
- •Разбиение одномерных массивов
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 7 обработка двумерных массивов
- •Краткая теория Понятие многомерных массивов. Ввод и вывод матриц
- •Типовые алгоритмы обработки матриц
- •Алгоритмы обработки матриц в целом
- •Алгоритмы обработки матриц по строкам и столбцам
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 8 диагонали матрицы, умножение матриц
- •Краткая теория Обработка главной и побочной диагоналей матриц
- •Работа с диагоналями матриц выше и ниже главной/побочной
- •Умножение матриц
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 9 обработка строк класса string
- •Краткая теория Создание объектов класса String
- •Методы класса String
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 10 алгоритмы и программы обработки фрагментов строк класса string
- •Краткая теория Сравнение символов строк класса String
- •Типовые задачи обработки массивов строк (слов из текста)
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 11 разработка алгоритмов и программ с использованием классов StringBuffer/StringBuilder
- •Краткая теория Создание и обработка объектов классов stringbuffer и stringbuilder
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 12 разработка собственных методов
- •Краткая теория Общие правила создания методов класса
- •Описание методов класса
- •Вызов методов класса
- •Передача параметров
- •Содержание
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Библиографический список
- •Программирование на Java
- •443100, Г. Самара, ул. Молодогвардейская, 244. Главный корпус
- •443100, Г. Самара, ул. Молодогвардейская, 244. Корпус № 8
Особенности алгоритмов и программ с накапливанием
Довольно часто вычисление суммы и произведения нескольких чисел, а также подсчет количества выполняется постепенно, путем накапливания. Чаще всего данные операции производятся в циклах.
Сумма вычисляется по формуле
сумма= сумма + слагаемое.
Перед вычислениями начальному значению суммы обычно присваивается ноль.
Пример:
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 –
единицы
Для 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. Закончить.
