понедельник, 12 декабря 2016 г.

Задачи по Java. Часть 1

Поскольку я хотел ехать на курсы которые состоят из двух частей это Java SE (вводная часть) и Java EE (продвинутая часть). На первую часть я не поехал так как все говорили, лучше самому изучить и не тратить денег, поскольку мне предоставили все документацию + задачи.
Сейчас читаю книгу  Е.В.Карсека "Программирование на Java" Учебно-методическое пособие для слушателей курса “Основы программирования на Java” ЦОТ “БЕЛХАРД”.
И соответственно решаю по ней задачи.
Здесь буду выкладывать все задания которые идут после каждой главы + свое решение GitHub'e.
Поскольку я только учусь мое решение может казаться не совсем правильным, буду рад комментов.



И так начнем.

Глава 1 ВВЕДЕНИЕ В JAVA. ОСНОВЫ ЯЗЫКА. 

1) Написать программу, которая выводит на экран первые четыре
степени числа n.
Мое решение

2) Составить линейную программу, печатающую значение true, если
указанное высказывание является истинным, и false – в противном случае.
2.1) Сумма двух первых цифр заданного четырехзначного числа равна
сумме двух его последних цифр.
2.2) Сумма цифр данного трехзначного числа N является четным
числом.
2.3) Целое число N является четным двузначным числом.
2.4) Данная тройка натуральных чисел а, b, с является тройкой
Пифагора, т.е. c 2 = a 2 + b 2 .
2.5) Все цифры данного четырехзначного числа N различны.
2.6) Данное четырехзначное число читается одинаково слева направо и
справа налево.
Мое решение

3) Даны действительные числа х и у, не равные друг другу. Меньшее из
этих двух чисел заменить половиной их суммы, а большее – их удвоенным
произведением.
Мое решение

4)Составить программу, которая запрашивает пароль (например,
четырехзначное число) до тех пор, пока он не будет правильно введен.
Мое решение

5) Найти сумму всех n-значных чисел (1 ≤ n ≤ 4).
Мое решение

6) Найти сумму всех n-значных чисел, кратных k (1 ≤ n ≤ 4).
Мое решение

7) Написать программу, которая загадывает случайное целое число из
отрезка [1;10] и просит пользователя его угадать, вводя варианты с
клавиатуры, пока пользователь не угадает число, программа будет ему
подсказывать, сообщая больше или меньше число загаданное, чем то, что
ввёл пользователь.

8). Создайте программу, выводящую на экран все четырёхзначные числа
последовательности 1000 1003 1006 1009 1012 1015 ...

9). Создайте программу, выводящую на экран первые 55 элементов
последовательности 1 3 5 7 9 11 13 15 17 ...

10). Создайте программу, выводящую на экран все неотрицательные
элементы последовательности 90 85 80 75 70 65 60 ...

11). Выведите на экран все члены последовательности 2a n-1 –1, где a 1 =2,
которые меньше 10000.

12).Выведите на экран все двузначные члены последовательности
2a n-1 +200, где a 1 = –166.

13). Выведите на экран все положительные делители натурального
числа, введённого пользователем с клавиатуры.

14). Проверьте, является ли введённое пользователем с клавиатуры
натуральное число – простым. Постарайтесь не выполнять лишних действий
(например, после того, как вы нашли хотя бы один нетривиальный делитель
уже ясно, что число составное и проверку продолжать не нужно). Также
учтите, что наименьший делитель натурального числа n, если он вообще
имеется, обязательно располагается в отрезке [2; √n]. Если число не простое –
выведите все его простые делители.

15). Выведите на экран первые 11 членов последовательности
Фибоначчи. Напоминаем, что первый и второй члены последовательности
равны единицам, а каждый следующий – сумме двух предыдущих.

16). Для введённого пользователем с клавиатуры натурального числа
посчитайте сумму всех его цифр (заранее не известно, сколько цифр будет в
числе).

17). В городе N проезд в трамвае осуществляется по бумажным
отрывным билетам. Каждую неделю трамвайное депо заказывает в местной
типографии рулон билетов с номерами от 000001 до 999999. «Счастливым»
считается билетик, у которого сумма первых трёх цифр номера равна сумме
последних трёх цифр, как, например, в билетах с номерами 003102 или
567576. Трамвайное депо решило подарить сувенир обладателю каждого
счастливого билета и теперь раздумывает, как много сувениров потребуется.
С помощью программы подсчитайте, сколько счастливых билетов в одном
рулоне?

18). В американской армии считается несчастливым число 13, а в
японской – 4. Перед международными учениями штаб российской армии
решил исключить номера боевой техники, содержащие числа 4 или 13
(например, 40123, 13313, 12345 или 13040), чтобы не смущать иностранных
коллег. Если в распоряжении армии имеется 100 тыс. единиц боевой техники
и каждая боевая машина имеет номер от 00001 до 99999, то сколько всего
номеров придётся исключить?

19). Создать программу, которая будет проверять попало ли случайно
выбранное из отрезка [5;155] целое число в интервал (25;100) и сообщать
результат на экран.
Примеры работы программы:
Число 113 не содержится в интервале (25,100)
Число 72 содержится в интервале (25,100)

20). Создать программу, выводящую на экран случайно сгенерированное
трёхзначное натуральное число и его наибольшую цифру.
Примеры работы программы:
В числе 208 наибольшая цифра 8
В числе 774 наибольшая цифра 7

21). На некотором предприятии инженер Петров создал устройство, на
табло которого показывается количество секунд, оставшихся до конца
рабочего дня. Когда рабочий день начинается ровно в 9 часов утра – табло
отображает «28800» (т.е. остаётся 8 часов), когда времени 14:30 – на табло
«9000» (т.е. остаётся два с половиной часа), а когда наступает 17 часов – на
табло отображается «0» (т.е. рабочий день закончился).
Программист Иванов заметил, как страдают офисные сотрудницы – им
неудобно оценивать остаток рабочего дня в секундах. Иванов вызвался
помочь сотрудницам и написать программу, которая вместо секунд будет
выводить на табло понятные фразы с информацией о том, сколько полных
часов осталось до конца рабочего дня. Например: «осталось 7 часов»,
«осталось 4 часа», «остался 1 час», «осталось менее часа».
Итак, в переменную n должно записываться случайное (на время
тестирования программы) целое число из [0;28800], далее оно должно
выводиться на экран (для Петрова) и на следующей строке (для сотрудниц)
должна выводиться фраза о количестве полных часов, содержащихся в n
секундах.
Примеры работы программы:
23466
Осталось 6 часов
10644
Осталось 2 часа
1249
Осталось менее часа

22). Создайте массив из 8 случайных целых чисел из отрезка [1;10].
Выведите массив на экран в строку. Замените каждый элемент с нечётным
индексом на ноль. Снова выведете массив на экран на отдельной строке.

23). Создайте 2 массива из 5 случайных целых чисел из отрезка [0;5]
каждый, выведите массивы на экран в двух отдельных строках. Посчитайте
среднее арифметическое элементов каждого массива и сообщите, для какого
из массивов это значение оказалось больше (либо сообщите, что их средние
арифметические равны).

24). Создайте массив из 4 случайных целых чисел из отрезка [10;99],
выведите его на экран в строку. Определить и вывести на экран сообщение о
том, является ли массив строго возрастающей последовательностью.

25). Создайте массив из 20-ти первых чисел Фибоначчи и выведите его
на экран. Напоминаем, что первый и второй члены последовательности
равны единицам, а каждый следующий – сумме двух предыдущих.

26). Создайте массив из 12 случайных целых чисел из отрезка [-15;15].
Определите какой элемент является в этом массиве максимальным и
сообщите индекс его последнего вхождения в массив.

27). Создайте два массива из 10 целых случайных чисел из отрезка [1;9]
и третий массив из 10 действительных чисел. Каждый элемент с i-ым
индексом третьего массива должен равняться отношению элемента из
первого массива с i-ым индексом к элементу из второго массива с i-ым
индексом. Вывести все три массива на экран (каждый на отдельной строке),
затем вывести количество целых элементов в третьем массиве.

28). Создайте массив из 11 случайных целых чисел из отрезка [-1;1],
выведите массив на экран в строку. Определите какой элемент встречается в
массиве чаще всего и выведите об этом сообщение на экран. Если два каких-
то элемента встречаются одинаковое количество раз, то не выводите ничего.

29). Пользователь должен указать с клавиатуры чётное положительное
число, а программа должна создать массив указанного размера из случайных
целых чисел из [-5;5] и вывести его на экран в строку. После этого программа
должна определить и сообщить пользователю о том, сумма модулей какой
половины массива больше: левой или правой, либо сообщить, что эти суммы
модулей равны. Если пользователь введёт неподходящее число, то
программа должна требовать повторного ввода до тех пор, пока не будет
указано корректное значение.

30). Программа должна создать массив из 12 случайных целых чисел из
отрезка [-10;10] таким образом, чтобы отрицательных и положительных
элементов там было поровну и не было нулей. При этом порядок следования
элементов должен быть случаен (т. е. не подходит вариант, когда в массиве
постоянно выпадает сначала 6 положительных, а потом 6 отрицательных
чисел или же когда элементы постоянно чередуются через один и пр.).
Вывести полученный массив на экран.

31). Пользователь вводит с клавиатуры натуральное число большее 3,
которое сохраняется в переменную n. Если пользователь ввёл не подходящее
число, то программа должна просить пользователя повторить ввод. Создать
массив из n случайных целых чисел из отрезка [0;n] и вывести его на экран.
Создать второй массив только из чётных элементов первого массива, если
они там есть, и вывести его на экран.

32). Создать двумерный массив из 6 строк по 7 столбцов в каждой из
случайных целых чисел из отрезка [0;9]. Вывести массив на экран.
Преобразовать массив таким образом, чтобы на первом месте в каждой
строке стоял её наибольший элемент. При этом изменять состав массива
нельзя, а можно только переставлять элементы в рамках одной строки.
Порядок остальных элементов строки не важен (т.е. можно соврешить только
одну перестановку, а можно отсортировать по убыванию каждую строку).
Вывести преобразованный массив на экран.

33). Для проверки остаточных знаний учеников после летних каникул,
учитель младших классов решил начинать каждый урок с того, чтобы
задавать каждому ученику пример из таблицы умножения, но в классе 15
человек, а примеры среди них не должны повторяться. В помощь учителю
напишите программу, которая будет выводить на экран 15 случайных
примеров из таблицы умножения (от 2*2 до 9*9, потому что задания по
умножению на 1 и на 10 – слишком просты). При этом среди 15 примеров не
должно быть повторяющихся (примеры 2*3 и 3*2 и им подобные пары
считать повторяющимися).

34). Вычислить сумму и число положительных элементов матрицы A[N,
N], находящихся над главной диагональю.

35). Дана матрица А размером п х т. Определить k – количество особых
элементов массива А, считая его элемент особым, если он больше суммы
остальных элементов его столбца.

36). Задана квадратная матрица. Поменять местами строку с
максимальным элементом на главной диагонали со строкой с заданным
номером.

37). Дана матрица B[N, M]. Найти в каждой строке матрицы
максимальный и минимальный элементы и поменять их местами с первым и
последним элементом строки соответственно.

38). Дана целая квадратная матрица п-го порядка. Определить, является
ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех
строках и столбцах одинаковы.

39). Задана матрица размером n х т. Найти максимальный по модулю
элемент матрицы. Переставить строки и столбцы матрицы таким образом,
чтобы максимальный по модулю элемент был расположен на пересечении k-й строки и k-го столбца.

40). Дана квадратная матрица A[N, N]. Записать на место отрицательных
элементов матрицы нули, а на место положительных – единицы.

5 комментариев: