Skip to content

Instantly share code, notes, and snippets.

@juvuorin
juvuorin / selma.hs
Last active April 29, 2021 07:55
Koiramainen ohjelmointikisa 2021
automaattirivit2 2 x = [Rivi {rivitunniste = 7, tieto=x,tyyppi=Automaatti},
Rivi {rivitunniste = 8, tieto=x,tyyppi=Automaatti},
Rivi {rivitunniste = 9, tieto=x,tyyppi=Automaatti}]
automaattirivit2 _ _ = []
data RiviTyyppi = Automaatti|Tavallinen deriving (Show)
data Rivi = Rivi {rivitunniste::Int, tieto::String,tyyppi::RiviTyyppi} deriving (Show)
testirivit =[Rivi {rivitunniste = 1, tieto="tunniste 1",tyyppi=Tavallinen},
@juvuorin
juvuorin / villeh.js
Created April 28, 2021 17:15
Koiramainen ohjelmointikisa 2021
/**
* Koiramainen Kirjanpito
*
* Tervetuloa Koiramaisen Kirjanpidon ohjeisiin. Alla olevassa koodissa määritellään kirjanpidon tilit.
* Automaatio on yksinkertainen. Lasketaan alv:t erikseen, samoin kaikki verottomat koiramaisuudet.
*
* Luo samaan hakemistoon tiedosto nimeltä 'input.txt' ja aseta sen sisälle kirjanpito aineisto
* seuraavassa muodossa:
*
* <Otsikko> <Otsikko>
@juvuorin
juvuorin / kide.py
Created April 28, 2021 08:48
Koiramainen ohjelmointikisa 2021
# Alla oleva koodirivi on yhden rivin Python-toteutus Ideal Learningin koiramaiseen ohjelmointikisaan (vol.2).
# Toteutukseen on tehty yhdelle riville juuri siksi, että Python normaalisti lohkottaa koodin sisennysten
# avulla, mikä tekee yhden rivin koodeista mukavia pulmapähkinöitä (olettaen, että puolipistettä ei saa käyttää).
# Tänä vuonna pääsin hyödyntämään ratkaisussa muutamia tekniikoita jotka viime kerralla päätin jättää pois, mutta
# valitettavasti tämän vuoden ongelmaan ei päässyt kirjoittamaan populaarikulttuuriviittauksia, sillä ratkaisussa
# ei ole tarpeettomia lohkoja.
# Tämänkertainen tehtävänanto oli varsin laajatulkintainen, ja päätin luoda kirjauksia varten seuraavia sääntöjä:
# * Syötteen rivit ovat pilkuilla eroteltuja arvoja, desimaalierottimena käytetään pistettä
# * Syöte alkaa aina rivillä "Tilinumero,Rahamäärä"
@juvuorin
juvuorin / anssi.cpp
Created April 28, 2021 05:25
Koiramainen ohjelmointikisa 2021
/*
Koiramainen ohjelmointikisa - 2021 kisatehtävä
Osallistuja: Anssi K.
Viimeisin muutos: 11.3.2021
*/
/*
Koodin tarkoituksena on ottaa käyttäjän syötteenä tilinumero ja käsiteltävä summa.
Jotkut tilinumerot laukaisevat algoritmejä, jotka käsittelevät myös toisia tilejä.
Jos algoritmi käyttää toista tiliä, joka sisältää toista tiliä käyttävän algoritmin,
@juvuorin
juvuorin / paulil.py
Last active April 24, 2020 11:02
koiramainenOhjelmointikisa2020
"""
Tekijä: Pauli L.
Käytin toteutuksessa hyödyksi sanakirjoja koska niitä on helppo käyttää. Varmasti olisi voinut myös hyödyntää luokkia
tai jotain muuta tietorakennetta.
"""
KOULUAINEET = ["Pupun jäljestys", "Hirven jäljestys", "Linnun noutaminen", "Lumen pöllyytys",
"Kukkapenkkien kaivaminen", "Parvekkeen vahtiminen", "Piilotetun luun löytäminen",
"Oman hännän jahtaaminen", "Kuun ulvonta"]
@juvuorin
juvuorin / janneh.js
Last active April 24, 2020 11:02
koiramainenOhjelmointikisa2020
//----------Pisteenlaskujärjestelmän koodi alkaa tästä ->
//Luodaan taulukko johon tarvittavat kategoriat tallennetaan
var categories = [];
//funktio jolla selkeytetään kategorian lisäämistä taulukkoon
function addCategory(name){
categories.push([name.toString()]);
}
@juvuorin
juvuorin / villes.py
Last active March 8, 2021 09:01
koiramainenOhjelmointikisa2020
# Kirjoita tähän koirasi nimi heittomerkkien sisään
''' Luodaan koiran nimen sisältävä muuttuja '''
koira = 'Selma'
# Merkitse alle koirasi saamat arvosanat
''' Kun arvosanat lasketaan yhteen, varmistetaan niiden tallentuminen
kokonaislukuina lisäämällä laskettavat muuttujat
int()-komennon sisään. Desimaalierottimena Pythonissa
toimii piste. Esim. 9.0. Luvut pyöristetään alaspäin, jolloin int(9.7) => 9.
@juvuorin
juvuorin / tiinah.py
Last active April 24, 2020 11:05
koiramainenOhjelmointikisa2020
import datetime
# muutetaan nimi TIKKUKIRJAIMIKSI, jottei todistuksessa näkyisi esim. käyttäjän virheellisesti syöttämää pientä alkukirjainta
nimi = input("Anna koiran nimi: ").upper()
# mietinnässä oli myös yksi ainoa while loop, jossa metodit määräytyisivät käyttäjän syötteen perusteella (esim. jos
# syötteessä "lisää", lisätään oppiaine, arvosana, ja splitataan esim. pilkulla, tehdään listaa jne.). Toteutustavaksi
# valikoitui kuitenkin jokaiselle oppiaineelle omat eksplisiittiset loopit, jotta käyttäjävirheiltä vältyttäisiin
# (unohtaa merkitä jonkin oppiaineen, kirjoittaa väärin yms.)
@juvuorin
juvuorin / seppos.js
Last active April 24, 2020 11:03
koiramainenOhjelmointikisa2020
const _ = require("lodash/fp");
const toFunc = _.curry((obj, def, value) =>
obj.hasOwnProperty(value) ? obj[value] : def
);
const subjectToCategory = toFunc({
"Pupun jäljestys": "Metsästys",
"Hirven jäljestys": "Metsästys",
"Linnun noutaminen": "Metsästys",
@juvuorin
juvuorin / samuk.py
Last active April 24, 2020 11:06
koiramainenOhjelmointikisa2020
#!/usr/bin/env python3
from functools import reduce
from sys import exit
# @author Samu Kumpulainen
# This is a really simple command-line program for managing the dog school
# diplomas. Grades can be inputted as well as printed.
grades = list(range(4, 11))
student_data = {}