- Задачи. Цикл for, введение — 05 #
- 2. На 3 без остатка #
- 3. Последовательность (100) #
- 4. Последовательность (1000) #
- 5. 4 Буквы в строке #
- 6. Ряд Фибоначчи #
- 7. Числовой палиндром #
- 8. Сумма разрядов #
- 9. Делится на 11 #
- 10. Степень числа #
- 11. Чёт/нечет разрядов #
- 12. Повторяка номер n #
- 13. Обратный отсчёт #
- 14. Обратный отсчёт — start #
- 15. Буква ‘я’ #
- 16. Палиндром #
- 17. Шифрование Цезаря #
- 18. Дешифратор Цезаря #
- 19. Генератор паролей #
- Java упражнения для циклов
- Задачи на циклы
- Задача №1
- Задача №2
- Задача №3
Задачи. Цикл for, введение — 05 #
Существует такая традиция: при приготовлении пельменей в один из них кладут монетку на счастье. Считается, что тому, кому попадется пельмень с монеткой, улыбнется удача.
- Представим, что у нас есть кастрюля, в которой лежит 10 пельменей.
- Один из них счастливый — а именно пятый пельмень.
- Давайте напишем программу, которая ищет счастливый пельмень.
- Программа перебирает пельмени в кастрюле по одному,
- и когда доходит до пятого пельменя — напишет “Вот счастливый пельмень!” и выходит из цикла.
2. На 3 без остатка #
Вывести на экран все числа от 1 до 100, которые делятся на 3 без остатка.
3. Последовательность (100) #
Необходимо, чтоб программа выводила на экран вот такую последовательность:
myLine(100) -> 7 14 21 28 35 42 49 56 63 70 77 84 91 98
4. Последовательность (1000) #
Необходимо вывести на консоль такую последовательность чисел:
mySecondLine(1000) -> 1 2 4 8 16 32 64 128 256 512
5. 4 Буквы в строке #
Вывести каждую букву американского алфавита от A-Z по 4 буквы в строке.
6. Ряд Фибоначчи #
Выведите на экран первые 11 членов последовательности Фибоначчи.
- первый и второй члены последовательности равны единицам
- а каждый следующий — сумме двух предыдущих
- То есть числа Фибоначчи — это 1 1 2 3 5 8 13 21 34 55 89 и т.д.
7. Числовой палиндром #
Дано целое трехзначное число. Написать метод, который возвращает число, записанное в обратном порядке, например:
8. Сумма разрядов #
Дано целое трехзначное число. Написать метод, который возвращает сумму разрядов этого числа, например:
9. Делится на 11 #
Найдите в заданном диапазоне хотя бы одно натуральное число, которое делится на 11, а при делении на 2, 3, 4, …, 10 дает в остатке 1.
findDigits(99999, 11) -> 25201, 52921, 80641
10. Степень числа #
Возведите число n во вторую степень. Не используя арифмитический оператор умножения.
digitPowTwo(5) -> 25 digitPowTwo(10) -> 100 digitPowTwo(4) -> 16
11. Чёт/нечет разрядов #
Дано целое трехзначное число. Написать метод, который определит чётность/ нечётность разрядов этого числа, например: 123 -> 1 – нечет. 2- чёт. 3-нечет. 768 -> 1 – нечет. 2- чёт. 3-чет.
12. Повторяка номер n #
реализовать метод, который выводит на экран заданную строку N раз. printLineNtimes(“hello”,3) -> hello hello hello
13. Обратный отсчёт #
Реализовать метод “ Обратный отсчёт ” который выводит на экран цифры от n до 1, затем выводит строку „start“. countdown(5) -> 5 4 3 2 1 start
14. Обратный отсчёт — start #
реализовать метод “Обратный отсчёт” который выводит на экран цифры от 5 до 1 текстом, затем выводит строку “start”. countdownStart() -> five four tree two one start
15. Буква ‘я’ #
Буква “Я” воистину великая буква. И все слова в которых есть это буква являются великими. Напишите метод, который находит великие слова.
16. Палиндром #
Написать свой метод проверки строки на палиндром.
Учесть, что палиндром может быть предложением с пробелами.
При решении задачи используйте цикл.
Нельзя использовать методы replace(), reverse() и конструкции, которые вы не учили.
checkPalindrom( "А роза упала на лапу Азора") -> true checkPalindrom( "поп") -> true checkPalindrom( "школа") -> false
17. Шифрование Цезаря #
Разработайте шифровальную машину для нового клиента фирмы — Гая Юлия Цезаря.
Клиент придумал шифровальный алгоритм и хочет, что бы мы реализовали его в методе.
Пример выполнения метода:
enigmaCaesar("Съешь же ещё этих мягких французских булок, да выпей чаю.") -> "Фэзыя йз зьи ахлш пвёнлш чугрщцкфнлш дцосн, жг еютзм ъгб."
О самом методе шифрования(шифр подстановки) написана подробная документация, которая доступна по ссылке.
18. Дешифратор Цезаря #
Написать программу, которая производит дешифровку сообщений, зашифрованных предыдущим методом enigmaCaesar
19. Генератор паролей #
Давайте напишем генератор паролей. Методу передаётся длина пароля. И метод генерирует пароль используя латиницу, цифры и некоторые спецсимволы(на ваш выбор). Подсказка — использовать только те знания, которые были уже изучены. Существует как минимум два(на самом деле 222) разных подхода к решению этой проблемы. Не бойтесь пробовать.
Java упражнения для циклов
В стране XYZ население равно 10 миллионов человек. Рождаемость составляет 14 человек на 1000 человек, смертность — 8 человек. Рассчитайте, какая численность населения будет через 10 лет, принимая во внимание, что показатели рождаемости и смертности постоянны.
public class Program < public static void main(String[] args) < int population = 10000000; int born = 14; int death = 8; int dif = born - death; for(int i = 1; i System.out.println(population); > >
В стране XYZ население равно 10 миллионов человек. Рождаемость составляет 14 человек на 1000 человек, смертность — 8 человек. Каждый год рождается и умирает на 1 человек, меньше чем в предыдущий год. Рассчитайте, какая численность населения будет через 10 лет, учитывая, что рождаемость не может быть меньше 7 человек на 1000 человек, а смертностность не может быть меньше 6 человек на 1000 человек.
public class Program < public static void main(String[] args) < int population = 10000000; int born = 14; int death = 8; for(int i = 1; i 7) born -= 1; if (death > 6) death -=1; population += population * (born - death) / 1000; > System.out.println(population); > >
За каждый месяц банк начисляет к сумме вклада 7% от суммы. Напишите консольную программу, в которую пользователь вводит сумму вклада и количество месяцев. А банк вычисляет конечную сумму вклада с учетом начисления процентов за каждый месяц.
Для вычисления суммы с учетом процентов используйте цикл for . Пусть сумма вклада будет представлять тип float.
Введите сумму вклада: 100 Введите срок вклада в месяцах: 1 После 1 месяцев сумма вклада составит 107,000000
import java.util.Scanner; public class Program < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Введите сумму вклада: "); float sum = in.nextFloat(); System.out.print("Введите срок вклада в месяцах: "); int period = in.nextInt(); for(int i = 1; i System.out.printf("После %d месяцев сумма вклада составит %f", period, sum); in.close(); > >
Перепишите предыдущую программу, только вместо цикла for используйте цикл while .
import java.util.Scanner; public class Program < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Введите сумму вклада: "); float sum = in.nextFloat(); System.out.print("Введите срок вклада в месяцах: "); int period = in.nextInt(); int i = period; while (i >0) < sum += sum * 0.07; i--; >System.out.printf("После %d месяцев сумма вклада составит %f", period, sum); in.close(); > >
Напишите программу, которая выводит на консоль таблицу умножения
1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81
public class Program < public static void main(String[] args) < for (int i = 1; i < 10; i++) < for (int j = 1; j < 10; j++) < System.out.printf("%d\t", i * j); >System.out.println(); > > >
В цикле программа просит у пользователя ввести два числа и выводит результат их умножения.
После вывода результата умножения программа спрашивает, надо ли завершить выполнение. И если пользователь введет число 1, то программа завершает цикл. Если введено любое другое число, то программа продолжает спрашивать у пользователя два числа и умножать их.
import java.util.Scanner; public class Program < public static void main(String[] args) < Scanner in = new Scanner(System.in); int n = 0; do < System.out.println("Введите первое число: "); int num1 = in.nextInt(); System.out.println("Введите второе число: "); int num2 = in.nextInt(); System.out.printf("%d * %d = %d \n", num1, num2, num1 * num2); System.out.println("Для выхода из программы нажмите цифру 1, для подолжения любую другую цифру"); n = in.nextInt(); >while(n!=1); in.close(); > >
Задачи на циклы
Ниже даётся детальное объяснение простых задач в помощь тем, кто ранее не программировал и только делает свои первые шаги в программировании. Изучив их, Вам будет легче перейти к более сложным задачам — уровень сложности 2.
Задача №1
Необходимо вывести на экран числа от 1 до 5. На экране должно быть:
Комментарии к задаче:
Как видно из условия, числа увеличиваются от 1 до 5 с шагом 1. Есть определенная закономерность, не так ли? А значит, необходимо использовать цикл . Осталось только понять какой именно цикл нужно использовать? Мы точно знаем, что числа будут увеличиваться от 1 до 5. А раз мы точно знаем сколько раз будет повторяться цикл, можем использовать цикл for.
Пишем строчку с конструкцией цикла for:
А чтобы после каждого шага кода выводить новое значение переменной, мы написали вот эту строчку:
Поскольку нам необходимо вывести числа строчкой: 1 2 3 4 5 мы используем System.out.print ()
Если бы мы использовали System.out.println(); числа бы были выведены на экран вот так:
Обязательно обращайте внимание на то, чтобы количество скобок открывающих < и закрывающих >совпадало. В нашем случае 3 открывающие и 3 закрывающие скобки.
Задача №2
Необходимо вывести на экран числа от 5 до 1. На экране должно быть:
Комментарии к задаче:
Как видно из условия, числа уменьшаются от 5 до 1 с шагом 1. Есть определенная закономерность, не так ли? А значит, необходимо использовать цикл . Вопрос какой? Мы точно знаем, что числа будут уменьшаться от 5 до 1. А раз точно знаем сколько раз будет повторяться цикл, можем использовать цикл for.
Пишем строчку с конструкцией цикла for:
- int i = 5; — это начальное значение переменной
- i >=1; — это условие, при котором будет выполняться цикл
- i- — декремент, то есть уменьшение переменной на 1. С 5 до 4, с 4 до 3, с 3 до 2, с 1 до 1
А с помощью этой строчки выводим на консоль значения переменной
Мы используем System.out.print (); поскольку нам необходимо вывести числа строчкой: 5 4 3 2 1
Если бы мы использовали System.out.println(); числа бы были выведены на экран вот так:
И снова напоминаем, обязательно обращайте внимание на то, чтобы количество скобок открывающих < и закрывающих >совпадало. В нашем случае снова 3 открывающие и 3 закрывающие скобки.
Задача №3
Необходимо вывести на экран таблицу умножения на 3:
Разберем вот эту строчку с помощью которой мы выводим значения на консоль
Комментарии к задаче:
Сначала мы должны предложить пользователю ввести любое целое положительное число. Это мы делаем с помощью этой строчки:
Чтобы считать с консоли введенное пользователем число, нам нужен сканер. Поэтому мы выполняем 3 шага.
Шаг №1 — подключаем сканер из библиотеки java.util с помощью этой строчки
Шаг №2 — объявляем сканер
Шаг №3 — считываем с консоли введённое целое число. Для этого используем метод nextInt ()
В условиях задачи сказано, что числа будут суммироваться от 1 до введённого пользователем числа. Не кажется ли Вам, что это цикл? Да, конечно же это цикл. Причем мы заранее знаем сколько раз будут суммироваться числа: от 1 до n, где n – введённое пользователем число. А значит нам надо использовать цикл for.
Пишем строчку с конструкцией цикла for:
По условию задачи, нам надо суммировать числа от 1 до n. Для этого перед циклом мы объявляем переменную int sum и присваиваем ей значение 0:
В переменную sum будут суммироваться числа с помощью цикла for
Далее с помощью этой строчки выводим результат суммирования на консоль
Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Обучаем с нуля.
Или читайте информацию по нашим курсам Java c нуля у нас на сайте.