Jazz Team labs/ru

From JazzTeamWiki
Jump to: navigation, search

В каждой из задач поставлены баллы, показывающие степень сложности задачи. Максимальный бал [10]. Все задачи должны быть максимально протестированы на правильность высчитывания для различных граничных значений.

Вступительные задачи

1) Даны натуральное число n, неупорядоченная последовательность действительных чисел a1,…,an. Получить все натуральные числа k (2≤k≤n-1), для которых ak-1<ak<ak+1. [2]

2) Найти совершенные числа на отрезке [n1, n2]. Число называется со-вершенным если оно равно сумме своих делителей, включая 1, но не включая самого себя.[3]

3) Написать класс для работы со стеком:

  • добавление элемента в стек;
  • удаление элемента из стека.

На примере продемонстрировать работу с этим классом. [3]

4) Разложение любого числа в сумму степеней двойки. [4]

5) Ввести целые числа N и M. Определить являются ли они взаимно простыми, то есть не имеют общих делителей. [4]

6) Написать класс для работы с двухсвязным списком. На примере продемонстрировать работу с этим классом. [4]

7) В main ввести две матрицы A[n][k] и B[k][m] вещественных чисел. В функции вычислить произведение этих матриц – матрицу C[n][m]. Результат произведения вывести в main. [4]

8) В массиве B[25] определить начальный и конечный индексы элементов, составляющих максимальную по длине неубывающую последовательность. Вывести на экран массив В и найденную последовательность. [4]

9) В main ввести матрицу X[n][n]. В функции рассортировать все элементы лежащие выше главной диагонали в порядке убывания. [4]

10) В файле, имя которого задается с клавиатуры, записаны размеры матрицы и сама матрица. Известно, что в каждой строке и в каждом столбце есть единственный нулевой элемент. Переставить строки так, чтобы эти элементы оказались на главной диагонали. [4]

11) Определить иерархию геометрических фигур. Создать несколько обьектов. Отрисовать их на форме используя переопределение методов при наследовании. Ввести абстрактный класс. Использовать ArrayList и туда ложить все свои разные фигуры. Определить методы движения/удаления этих фигур. Ввести класс Strategy, который определяет стратегию движения. Ввести игровое поле, реализовать проверку пересечения фигур с игровым полем, должен присутствовать отскок, а также соударение фигур друг с другом.[5]

12) Разработать функцию подсчета в заданном бинарном дереве числа узлов имеющих два наследника.[5]

13) Ввести строку из n (n≤6) знаков и строку из k (k≤80) знаков. Определить количество вхождений строки из n знаков в строку из k знаков. [5]

14) Введите строку из N символов. В функции определить и вывести на экран частоту встречаемости каждой буквы русского алфавита. Определить 5 наиболее часто встречающихся букв. Далее, по предоставленному шифру (вы знаете, что каждой букве русского языка соответствует 1 символ в шифре), попробовать расшифровать изначальный текст. [5]

15) Ввести натуральное число N. Определить можно ли представить N! в виде произведения трех последовательных простых чисел.[5]

16) Перевод числа в цифровой записи в римскую систему и назад. [6]

17) Перевод числа в цифровой записи в строковую. Например 134345 будет "сто тридцать четыре тысячи триста сорок пять" и наоборот. [7]

18) Разработать класс, реализующий алгоритм составления польской записи по математическому выражению, а также предусмотреть возможность вычисления значения этого выражения. Предусмотреть вложенные скобки, а также различные операции (*-+/, возведение в степень, логарифм, cos & sin, извлечение корня). [7]

Вычисления и алгоритмика

Динамические структуры

Подпрограммы (размещение кода в методах)

ООП

Файлы и потоки

Библиотека Swing