Koodaaminen

Käytöstä poistettujen kategorioiden info löytyy täältä. HUOM! Sisältää oikeasti 100% roskaa, lukeminen omalla vastuulla.
Post Reply
Message
Author
User avatar
hashtag rikesakko
God of PIF
God of PIF
Posts: 35526
Joined: 01 Apr 2016, 00:00
Location: koikkarin ärrä

Re: Koodaaminen

#1141 Post by hashtag rikesakko » 06 Sep 2024, 10:19

Image

kirjotellut tällästä intel 8080 mikrotietokone simulaattoria

nyt pitäs ladata joku toinen disassembleri ja ettiä vertailemalla bugeja (esim. tuo db 31h epäilyttää) megän implementaatiosta
Image

User avatar
Tuulipuku
Matti Partanen
Matti Partanen
Posts: 114159
Joined: 29 Jul 2006, 18:40
Location: Beverly Hills 90210

Re: Koodaaminen

#1142 Post by Tuulipuku » 06 Sep 2024, 10:32

eh wrote:
31 Jul 2024, 13:10
En oo kuukauden kesäloman aikana kirjoittanut riviäkään mitään koodia ja olen aivan tyytyväinen asiain tilaan.
Ite en vuoteen ja ei haittais vaikka jatkaisin tällä linjalla hautaan asti, mutta kohta pitää taas alkaa tätäkin paskaa talikoimaan.
I Am Devloper‏ wrote:my CV says "enthusiastic" but my eyes say "dead inside"
Krigg wrote:Olen oman elämäni Marco Bjuzöm, mutta ilman nami namia.
Laku Setä wrote: tee plääni,raaka toteutus ja massit fikkaan.

User avatar
Santeri Endman
Matti Partanen
Matti Partanen
Posts: 60875
Joined: 18 Nov 2018, 18:55

Re: Koodaaminen

#1143 Post by Santeri Endman » 06 Sep 2024, 19:49

hashtag rikesakko wrote:
06 Sep 2024, 10:19
Image

kirjotellut tällästä intel 8080 mikrotietokone simulaattoria

nyt pitäs ladata joku toinen disassembleri ja ettiä vertailemalla bugeja (esim. tuo db 31h epäilyttää) megän implementaatiosta
[-o<
Y Image L Image EI OO NImageLImage

Image

User avatar
badger
9k
Posts: 9019
Joined: 15 Feb 2016, 19:46

Re: Koodaaminen

#1144 Post by badger » 08 Sep 2024, 12:57

miten tekisitte tämmösen auton perusvero kokonaismassan mukaan funktion,
että ku syöttää painon niin se antaa veron per päivä

Code: Select all

Kokonaismassa kg	€/päivä	€/365 päivää
enintään 1 300		0,610	222,65
	 1 301–1 400	0,640	233,60
	 1 401–1 500	0,672	245,28
	 1 501–1 600	0,706	257,69
	 1 601–1 700	0,742	270,83
	 1 701–1 800	0,780	284,70
	 1 801–1 900	0,820	299,30
	 1 901–2 000	0,862	314,63
	 2 001–2 100	0,906	330,69
	 2 101–2 200	0,952	347,48
	 2 201–2 300	1,000	365,00
	 2 301–2 400	1,050	383,25
	 2 401–2 500	1,102	402,23
	 2 501–2 600	1,156	421,94
	 2 601–2 700	1,212	442,38
	 2 701–2 800	1,270	463,55
	 2 801–2 900	1,330	485,45
	 2 901–3 000	1,392	508,08
	 3 001–3 100	1,456	531,44
	 3 101–3 200	1,522	555,53
	 3 201–3 300	1,590	580,35
	 3 301–3 400	1,660	605,90
	 3 401 tai enemmän	1,732	632,18
https://www.traficom.fi/fi/liikenne/aut ... n%20mukaan

ei tällä mitään väliä ole ja tein jo ihan vaan kasan if lauseita, mutta kai tähän hienompikin tapa on, en vaan keksi mitään toimivaa :o

User avatar
jaltsun käyttäjänimi
-=Lord Of PIF=-
-=Lord Of PIF=-
Posts: 13461
Joined: 11 Nov 2009, 19:31
Location: Espoo

Re: Koodaaminen

#1145 Post by jaltsun käyttäjänimi » 08 Sep 2024, 13:09

badger wrote:
08 Sep 2024, 12:57
miten tekisitte tämmösen auton perusvero kokonaismassan mukaan funktion,
että ku syöttää painon niin se antaa veron per päivä

Code: Select all

Kokonaismassa kg	€/päivä	€/365 päivää
enintään 1 300		0,610	222,65
	 1 301–1 400	0,640	233,60
	 1 401–1 500	0,672	245,28
	 1 501–1 600	0,706	257,69
	 1 601–1 700	0,742	270,83
	 1 701–1 800	0,780	284,70
	 1 801–1 900	0,820	299,30
	 1 901–2 000	0,862	314,63
	 2 001–2 100	0,906	330,69
	 2 101–2 200	0,952	347,48
	 2 201–2 300	1,000	365,00
	 2 301–2 400	1,050	383,25
	 2 401–2 500	1,102	402,23
	 2 501–2 600	1,156	421,94
	 2 601–2 700	1,212	442,38
	 2 701–2 800	1,270	463,55
	 2 801–2 900	1,330	485,45
	 2 901–3 000	1,392	508,08
	 3 001–3 100	1,456	531,44
	 3 101–3 200	1,522	555,53
	 3 201–3 300	1,590	580,35
	 3 301–3 400	1,660	605,90
	 3 401 tai enemmän	1,732	632,18
https://www.traficom.fi/fi/liikenne/aut ... n%20mukaan

ei tällä mitään väliä ole ja tein jo ihan vaan kasan if lauseita, mutta kai tähän hienompikin tapa on, en vaan keksi mitään toimivaa :o
taulukkoon indeksoimalla:

Code: Select all

verotyms[0] = vitusti
verotyms[1] = vitusti+1
verotyms[2] = vitusti+2

painostaVerotaulukkoon (paino):
  painoIndeksi = min(0, paino-1201)
  painoIndeksi = painoIndeksi/100
  jos painoIndeksi suurempi ku taulukon koko niin painoIndeksi taulukon koko
  palauta verotyms[painoIndeksi]
varmaan saa siistimminkin jos hetken ajattelis mutta jooh, jonkinlainen taulukko kuitenkin ja sitten mappaa painon taulukon alkioon.

vaihtoehtosesti on myös olemassa valmiitakin kirjastoja ja semmosia tommosille range-based indeksoinneille

voi myös tehdä loopin, joka etsii läpi taulukon, jonne on talletettu noi ranget ja palauttaa sen missä range osuu kohilleen. se voi olla koodina selkeämpi.

looppiratkaisu:

Code: Select all

painostaveroihinTaulukko[0] = {alapaino: 0, yläpaino: 1300, verot: miljardi}
painostaveroihinTaulukko[1] = {alapaino: 1301, yläpaino: 1400, verot: triljoona}
painostaveroihinTaulukko[2] = {alapaino: 1401, yläpaino: 1501, verot: tsiljoona}

etsiVerot(paino):
  for elementti in painostaveroihinTaulukko:
    jos paino >= elementti.alapaino ja paino <= elementti.yläpaino
      palauta elementti
Last edited by jaltsun käyttäjänimi on 08 Sep 2024, 14:39, edited 1 time in total.
no solution to evolution, we're genocidal or suicidal, incineration, extermination, exploitation, that's mans creation
Spoiler:
Image

User avatar
armi
-=00King Of PIF00=-
-=00King Of PIF00=-
Posts: 29695
Joined: 18 Feb 2009, 15:01

Re: Koodaaminen

#1146 Post by armi » 08 Sep 2024, 13:18

Array bisection, esim. Pythonissa https://docs.python.org/3.10/library/bisect.html
Image

Miten voi olla kissalla herpes?

User avatar
badger
9k
Posts: 9019
Joined: 15 Feb 2016, 19:46

Re: Koodaaminen

#1147 Post by badger » 08 Sep 2024, 14:17

nonni, kiitos vinkeistä

User avatar
Henkkamaukka Perusjätkä
Matti Partanen
Matti Partanen
Posts: 51577
Joined: 10 Aug 2014, 10:04
Location: Saundi Arabia

Re: Koodaaminen

#1148 Post by Henkkamaukka Perusjätkä » 08 Sep 2024, 14:17

About tälleen?

Code: Select all

import bisect

massat = [0, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3100, 3200, 3300, 3400]
verot = [0.610, 0.640, 0.672, 0.706, 0.742, 0.780, 0.820, 0.862, 0.906, 0.952, 1.000, 1.050, 1.102, 1.156, 1.212, 1.270, 1.330, 1.392, 1.456, 1.522, 1.590, 1.660, 1.732]

def verolaskuri():
    kokonaismassa = int(input('Anna auton kokonaismassa: '))
    pos = bisect.bisect_left(massat, kokonaismassa)
    if kokonaismassa < 1:
        print("Onko sulla edes autoa?")
    else:
        value = verot[pos-1]
        print(f"Perusvero kokonaismassan mukaan on {value}€ päivässä.")

verolaskuri()
Image

User avatar
ei vittu mikä meno
voisitteko ystävällisesti kertoa
Posts: 59602
Joined: 20 Feb 2009, 05:31
Location: hautuumaa
Contact:

Re: Koodaaminen

#1149 Post by ei vittu mikä meno » 08 Sep 2024, 14:52

Toinen vaihtoehto on, että laskee vaan, mihin väliin annettu paino asettuu.

Code: Select all

const tax = [0.610, 0.640, 0.672, 0.706, 0.742, 0.780, 0.820, 0.862, 0.906, 0.952, 1.000, 1.050, 1.102, 1.156, 1.212, 1.270, 1.330, 1.392, 1.456, 1.522, 1.590, 1.660, 1.732]

const getIntervalIndex = weight => {
  return Math.max(0, Math.floor((weight - 1301) / 100) + 1);
}

const getTax = weight => {
  const i = getIntervalIndex(weight);
  return (i < tax.length
    ? tax[i]
    : tax[tax.length - 1]
   );
}
Säästyy yhden arrayn kirjoittelulta, mutta ei välttämättä ole muutoin parempi.
Image

Hyvin argumentoitu (64): Ihmiskintaat käteen ja kohti uusia pettymyksiä!

Image

User avatar
badger
9k
Posts: 9019
Joined: 15 Feb 2016, 19:46

Re: Koodaaminen

#1150 Post by badger » 08 Sep 2024, 15:12

tässähän on vielä semmonen, että vero nousee 0.03 ekasta ja lisääntyy 0.002, 100kg välein :o

Code: Select all

for i,v in enumerate(verot):
     print(f'{verot[i+1]} - {verot[i]} = {round(verot[i+1]-verot[i], 3)}')
0.64 - 0.61 = 0.03
0.672 - 0.64 = 0.032
0.706 - 0.672 = 0.034
0.742 - 0.706 = 0.036
0.78 - 0.742 = 0.038
0.82 - 0.78 = 0.04
0.862 - 0.82 = 0.042
0.906 - 0.862 = 0.044
0.952 - 0.906 = 0.046
1.0 - 0.952 = 0.048
1.05 - 1.0 = 0.05
1.102 - 1.05 = 0.052
1.156 - 1.102 = 0.054
1.212 - 1.156 = 0.056
1.27 - 1.212 = 0.058
1.33 - 1.27 = 0.06
1.392 - 1.33 = 0.062
1.456 - 1.392 = 0.064
1.522 - 1.456 = 0.066
1.59 - 1.522 = 0.068
1.66 - 1.59 = 0.07
1.732 - 1.66 = 0.072

User avatar
satanismista kiinnostunut nudisti
5k
Posts: 5641
Joined: 10 Apr 2019, 21:32
Location: salainen noitarumpuhuone

Re: Koodaaminen

#1151 Post by satanismista kiinnostunut nudisti » 09 Sep 2024, 08:21

Oletteko käyttäneet/kokeilleet yksikkötestausta? Tollaisen algoritmin testaus onnistuu ja voi askarrella useamman version ratkaisuksi ja kaikkien pitäisi toimia suht samalla tavalla. Virhetilanteiden käsittelyyn hyvä homma myös.

User avatar
Spandau Mullet
Matti Partanen
Matti Partanen
Posts: 99540
Joined: 28 Jul 2014, 20:37
Location: Raakaa paskaa akselilta Reetunlehto-Ruksimäki

Re: Koodaaminen

#1152 Post by Spandau Mullet » 09 Sep 2024, 08:38

Jos koodirojekti on jotain muuta kun kertakäyttöinen skripti, joku opetteluhomma tai puhdas kokeilu, niin tokihan testit pitää olla. CI ja kattavat testikeissit pelastaa päivän monta kertaa viikossa.
Tämä nimimerkki kirjoittaa suurimmaksi osaksi Roskakori-osioon lyhyitä viestejä, joissa ei ole juurikaan sisältöä.

User avatar
Darkthronen tunnettu Hiisi
-=00King Of PIF00=-
-=00King Of PIF00=-
Posts: 27114
Joined: 30 Oct 2007, 23:55

Re: Koodaaminen

#1153 Post by Darkthronen tunnettu Hiisi » 09 Sep 2024, 08:45

hashtag rikesakko wrote:
06 Sep 2024, 10:19
Image

kirjotellut tällästä intel 8080 mikrotietokone simulaattoria

nyt pitäs ladata joku toinen disassembleri ja ettiä vertailemalla bugeja (esim. tuo db 31h epäilyttää) megän implementaatiosta
Cool 8) Mä aloin jossain vaiheessa tekeen Z80 emu-/simulaattoria C#:lla. Ihan kivaa näpräystä ja jonkin verran pääsinkin eteenpäin ennenku alko kyllästyttää ja vittu miten omituinen arkkitehtuuri muutenkin kun rekisterit on joko 8-bittisiä tai sitten ne voi jesarilla ja niittipyssyllä vetää yhdeksi 16-bittiseksi rekisteriksi ja voi jeesus oisinpa aloittanu jonku 6502 emulaatorin ton sijaan.

Ehkä mä joskus jatkan tota rojektia.
VITE! VITE, MONSIEUR CLICKY!

Image

User avatar
Tuulipuku
Matti Partanen
Matti Partanen
Posts: 114159
Joined: 29 Jul 2006, 18:40
Location: Beverly Hills 90210

Re: Koodaaminen

#1154 Post by Tuulipuku » 09 Sep 2024, 12:01

satanismista kiinnostunut nudisti wrote:
09 Sep 2024, 08:21
Oletteko käyttäneet/kokeilleet yksikkötestausta? Tollaisen algoritmin testaus onnistuu ja voi askarrella useamman version ratkaisuksi ja kaikkien pitäisi toimia suht samalla tavalla. Virhetilanteiden käsittelyyn hyvä homma myös.
Kyllä, aina pl. tosiaan joku kertakäyttökoodi. Ite suosittelen kyllä lämpimästi opetelemaan test driven development lähestymistapaa. Testit eka, tulee ensinnäkin tehtyä niitä testejä, testeistä tulee parempia ja koodistakin tulee takuulla parempaa kun sitä voi refaktoroida huoletta.
I Am Devloper‏ wrote:my CV says "enthusiastic" but my eyes say "dead inside"
Krigg wrote:Olen oman elämäni Marco Bjuzöm, mutta ilman nami namia.
Laku Setä wrote: tee plääni,raaka toteutus ja massit fikkaan.

User avatar
Spandau Mullet
Matti Partanen
Matti Partanen
Posts: 99540
Joined: 28 Jul 2014, 20:37
Location: Raakaa paskaa akselilta Reetunlehto-Ruksimäki

Re: Koodaaminen

#1155 Post by Spandau Mullet » 09 Sep 2024, 12:06

Tuulipuku wrote:
09 Sep 2024, 12:01
satanismista kiinnostunut nudisti wrote:
09 Sep 2024, 08:21
Oletteko käyttäneet/kokeilleet yksikkötestausta? Tollaisen algoritmin testaus onnistuu ja voi askarrella useamman version ratkaisuksi ja kaikkien pitäisi toimia suht samalla tavalla. Virhetilanteiden käsittelyyn hyvä homma myös.
Kyllä, aina pl. tosiaan joku kertakäyttökoodi. Ite suosittelen kyllä lämpimästi opetelemaan test driven development lähestymistapaa. Testit eka, tulee ensinnäkin tehtyä niitä testejä, testeistä tulee parempia ja koodistakin tulee takuulla parempaa kun sitä voi refaktoroida huoletta.
Kaikkeen ei TDD välttämättä sovi, mutta noin yleisesti komp. Jos on joku muutos/lisäys olemassaolevaan featureen tai bugifiksi, niin itse yleensä päivitän ensin testit ottamaan halutun lopputuloksen huomioon ja vasta sit lähden muokkaamaan koodia.
Tämä nimimerkki kirjoittaa suurimmaksi osaksi Roskakori-osioon lyhyitä viestejä, joissa ei ole juurikaan sisältöä.

Post Reply