Git Product home page Git Product logo

itis-9xx-fp-fall-2022's Introduction

Задания на дом

proj1 - вычислять количество и размер файлов в директории

proj1 DIR [DEPTH]
  • Обязательный параметр - директория
  • Опциональный параметр - глубина

Программа спускается не дальше, чем на глубину (если она указана)

Выводит количество файлов и общий размер. Если возникают ошибки - вывести их и продолжить работу.

Для реализации: listDirectory, getFileSize из пакета directory; getArgs из System.Environment.

Выдаёт для каждой директории не глубже DEPTH количество файлов в ней.

Выдаёт для каждой директории не глубже DEPTH - общий размер файлов.

Например,

$ ls -la
drwxr-xr-x   - red 22 окт 16:38 app
.rw-r--r-- 105 red 22 окт 16:38 CHANGELOG.md
.rw-r--r-- 824 red 22 окт 16:41 du.cabal
.rw-r--r-- 641 red 22 окт 16:43 README.md
$ proj1 . 0
Count:
. 4
Size:
. 1570
$ proj1 .
Count:
. 4
./app 1
Size:
. 1657
./app 87

Использовать mtl. Могут потребоваться Reader, State, Writer, Except

Дедлайн: 25 ноября 2022 г.

proj2 - считать количество переводов по счетам

  • добавить в тип TBank сколько было у счета переводов (добавлений или снятий) и какая общая сумма переводов
  • написать функцию isWithdrawOk, вынести в неё логику проверки снятия:
    • на счете больше денег, чем пытаемся снять
    • если сумма снятия больше 1000, то должно быть больше 10 переводов
    • сумма снятия не больше, чем 5 * средний размер перевода (общая сумма переводов / количество переводов)
  • использовать её внутри addMoney, withdraw, ...
  • проверить, что всё продолжает работать

Пусть есть такие переводы.

  1. Алиса кладет 100 на свой счет.
    • Алиса: баланс 100, кол-во 1, общая сумма 100.
  2. Алиса снимает 100 со счета.
    • Алиса: баланс 0, кол-во 2, общая сумма 200.
  3. Боб кладет 100 на свой счет.
    • Алиса: баланс 0, кол-во 2, общая сумма 200.
    • Боб: баланс 100, кол-во 1, общая сумма 100.
  4. Боб переводит Алисе 50.
    • Алиса: баланс 50, кол-во 3, общая сумма 250.
    • Боб: баланс 50, кол-во 2, общая сумма 150.

Дедлайн: 2 декабря 2022 г.

proj3 - написать парсер csv

  • написать парсер для CSV (разделители - запятые; внутри полей, написанных в кавычках запятые не действуют)
col1,col2,col3
r2 c1,r2 c2,r2 c3
"r3,c1","r3,c2","r3,c3"

Должен получиться csvParser :: Parser [[String]]. В примере он должен вернуть [["col1","col2","col3"],["r2 c1","r2 c2","r3 c3"],["r3,c1","r3,c2","r3,c3"]]

Дедлайн: 16 декабря 2022 г.

proj4 - lens

  • взять данные из Our World in Data: https://github.com/owid/covid-19-data/blob/master/public/data/owid-covid-data.csv (данные отсортированы по странам и по датам)
  • распарсить ежедневные случаи COVID-19 (new_cases_smoothed), ежедневные смерти (new_deaths_smoothed), ежедневные вакцинации (new_vaccinations_smoothed) и, собственно, страну (iso_code), континент (continent) и население (population). Достаточно парсить столбцы с нужными индексами
  • записать эти данные в соответствующий тип данных
  • просуммировать (в другой тип данных) и вывести на экран указанные данные, сгруппировав их по континенту и в целом по миру
  • использовать lens (для доступа к компонентам типов данных)

Дедлайн: 23 декабря 2022 г.

Доклады

Описание здесь.

itis-9xx-fp-fall-2022's People

Contributors

gltronred avatar

Stargazers

Samat avatar Dan Trofimov avatar Alexander Chichigin avatar

Watchers

 avatar  avatar

Forkers

danika1808

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.