Skip to content

skylightis666/hsai-java-2022

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Описание процесса сдачи лабораторных

Получение доступа к репозиторию

  • Зарегистрироваться на github.com (если аккаунта еще нет)
  • Предоставить никнейм аккаунта в:
  • После этого дождаться подтверждения того, что вас добавили в команду репозитория
    • Ответом от преподавателя
    • ваш никнейм в общей таблице выделен зеленым
  • Принять приглашение к совместной работе над репозиторием (приходит на почту)

Правила работы с репозиторием

  • Вся работа ведется в вашей персональной ветке
    • Ветка должна именоваться <group>_<LastName>-<FirstName>
    • В качестве имени группы достаточно 90101/00003
    • Избегайте использования символов / , \ . | * +
    • Не забывайте по завершении работы делать push в удаленную ветку
  • По возможности старайтесь сделать красивую историю коммитов в ней
  • ЗАПРЕЩАЕТСЯ ОПРАВЛЯТЬ ИЗМЕНЕНИЯ В ВЕТКУ main
    • Все ваши коммиты из ветки main будут удалены
    • Кара воспоследует
  • Выполняете работу в исходных файлах с заданиями, там есть шаблон кода и описание, при этом НЕ НУЖНО:
    • Копировать эти файлы в ту же директорию
    • Создавать отдельную директорию для решиний
    • Переименовывать эти файлы
    • Перименовывать и менять сигнатуру методов шаблона кода внутри файла

Отметки о сдаче задания

  • Выполнив задание и отправив его код в свою ветку в репозиторий, отметьте соответствующий чекбокс в Таблице с результатами
  • После проверки преподавателем в этой таблице будет отмечено выполнение задание:
    • Зеленый - все хорошо
    • Желтый - принято, но можно лучше
    • Оранжевый - есть замечания, требующие исправления
    • Красный - задание не найдено, задание не выполнено, задание списано
    • Будет добавлен комментарий с замечаниями, после исправления замечаний стоит добавить свой комментарий в трек

Задания

Java - 1

  • Реализовать консольное приложение, позволяющая анализировать текстовые файлы
  • Входные параметры
    • путь к входному файлу
    • путь к выходному файлу (необязательно)
  • результат
    • если путь к выходному файлу задан, то результат пишется в файл, если нет - выводится в консоль
    • выводится количество слов
    • выводится количество пробелов
    • выводится количество слов из 1,2,3,4,5,6 ... букв
  • Дополнительно: принимать в качестве параметра список символов и подсчитывать их количество

Java - 2

  • Реализовать консольное приложение, позволяющее генерировать случайные данные
  • Входные параметры:
    • тип распределения (равномерное, нормальное, пуассона)
    • параметры распределения
    • Количество значений (минимум 10000)
    • формат выхода (CSV, database)
    • директория для записи результатов
  • Результат выполнения:
    • Статус генерации
    • Путь к файлу с результатами
  • Требования
    • минимум два модуля (java9/jigsaw): модуль генерации данных, модуль обработки входных параметров и записи результатов
    • логгирование процесса работы приложения
    • database - любая файловая база данных (sqlite, hsql...)
    • модульные тесты
    • "Хорошая" архитектура (декомпозиция, изоляция, SOLID)

Scala - 1

  • В данном задании необходимо реализовать простые функции, используя рекурсию (допускается использование дополнительных "внутренних" функции)

  • Функции

    • def pascal(c: Int, r: Int): Int - функция возвращающая значение элемента треугольника Паскаля по номеру колонки и строки

    треугольник Паскаля

    • def balance(chars: List[Char]): Boolean - функция, подсчитывающая баланс скобок в выражении (по открытым и закрытым скобкам)
    • def countChange(money: Int, coins: List[Int]) - функция, определяющая количество возможных вариантов размена суммы (money) монетами номиналом (coins)

Scala - 2

  • В это задании необходимо реализовать множество целых числе заданное как функцию type Set = Int => Boolean, данная функция отвечает на вопрос "содержится ли заданный элемент в множестве", выделяя его таким образом из множества целых чисел
  • Для выполнения задания необходимо представить свою реализацию функций, тело которых представлено как ???
  • После выполнения задания, подумайте над тем, где все-таки хранятся элементы множества

Kotlin - Grek

  • Разработать консольную утилиту для поиска внутри файлов по регулярным выражениям
  • Урезанный grep - grek:
    • grek -n <regEx> <pathToSingleFile>
    • grek -nr <regEx> <pathToFolder>
    • grek -B 4 -A 5 -nr <regEx> <pathToFolder>
    • дополнительные ключи
      • -i - поиск без учета регистра
      • --help - вывод подсказки
      • --exclude - исключение файлов из поиска
  • Дополнительно: использование параллелизма для ускорения работы
  • Требования:
    • "Хорошая" архитектура (декомпозиция, изоляция, SOLID)
    • модульные тесты
    • сборка в grek.exe для Windows и grek.deb для Linux

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 100.0%