Pyydä täällä harjoitustehtäviä

Voit pyytää apua ohjelmointiongelmiin täältä.
Astigma
Moderator
Moderator
Posts: 195
Joined: Sun Aug 26, 2007 5:56 pm
Location: Kuopio, Finland
Contact:

Re: Pyydä täällä harjoitustehtäviä

Post by Astigma »

Rauhoitutaanpas nyt, ettei tarvitse varoituksia ruveta jakamaan. Jos jotain ei ymmärrä, voi kysellä lisäkysymyksiä, kuten on tehty. Ei ole olemassa tyhmiä kysymyksiä, joten jos joku kysyy asioita, joita sinä pidät yksinkertaisia, niin vastaa niihin äläkä ihmettele miksi tämä toinen henkilö ei sitä tiedä.
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Jani »

Astigma wrote:Rauhoitutaanpas nyt, ettei tarvitse varoituksia ruveta jakamaan. Jos jotain ei ymmärrä, voi kysellä lisäkysymyksiä, kuten on tehty. Ei ole olemassa tyhmiä kysymyksiä, joten jos joku kysyy asioita, joita sinä pidät yksinkertaisia, niin vastaa niihin äläkä ihmettele miksi tämä toinen henkilö ei sitä tiedä.
offtopic: kiitos

niin... mikä se rekursio on?
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Pyydä täällä harjoitustehtäviä

Post by phons »

Astigma wrote:...Ei ole olemassa tyhmiä kysymyksiä...
Olen samaa mieltä, mutta ne kaikki kysymykset jotka ovat "Tyhmät Kysymykset"-paikassa taitavat olla, tai no nekin kyllä ovat:
Kysymyksiä jotka ovat liian pieniä omaa topikkia varten.

Muistaakseni joku on sanonut noin, mutta en löytänyt sitä viestiä. Muuten olisin laitanut sen quoteen. :D

Edit: Ei tarviikkaan enää tehdä tyyppi-harjoituksia sillä tein sellasen jo itse yhestä vanhasta koodista:
:)

Code: Select all

Type tykki
    Field x
    Field y
EndType

Repeat

Color cbwhite
    Line 0,0,130,0
    Line 0,30,100,30
    Line 100,30,100,160
    Line 130,0,130,130
    Line 130,130,260,130
    Line 100,160,230,160
    Line 260,130,260,230
    Line 230,160,230,200
    Line 260,230,190,230
    Line 230,200,160,200
    Line 160,200,160,300
    Line 190,230,190,300
Color cbwhite

If MouseHit(1) Then

    newtykki.tykki = New(tykki)
    newtykki\x=MouseX()
    newtykki\y=MouseY()
    
EndIf

For itykki.tykki = Each tykki
    Color cbred
    Circle itykki\x-5,itykki\y-5,10,0
Next itykki

If MouseHit(2) Then
    For itykki.tykki = Each tykki
        Delete itykki
    Next itykki
Last edited by phons on Fri Dec 12, 2008 4:27 pm, edited 3 times in total.
Image
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Pyydä täällä harjoitustehtäviä

Post by MaGetzUb »

Mä voisin kans pyytää jotain harjoitusta tasolla ei ole väliä, kunhan ei tule olemaan mitään jumalattomia laskukaavoja, tai matriisilaskuja.
Haluaisin jonkinmoisen pelin ja partikkeleita sekä muita asioita saa käsitellä.. Oikeastaan osaan kättää laskutoimituksista vain Mod, Sin, Cos.. Tan ei ole hallussa..
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Astigma
Moderator
Moderator
Posts: 195
Joined: Sun Aug 26, 2007 5:56 pm
Location: Kuopio, Finland
Contact:

Re: Pyydä täällä harjoitustehtäviä

Post by Astigma »

Rekursioksi kutsutaan sitä, kun funktion toiminta pohjautuu siihen, että se kutsuu itseään ratkaistakseen ongelman. Funktion sisällä on siis koodi, joka kutsuu samaa funktiota uudestaan, hiukan muuttuneilla syötteillä tietenkin. Rekursiossa on tärkeää muistaa, että sen täytyy loppua joskus. Funktion täytyy siis sisältää jonkinlainen koodi, että se ei enää rekursoi siinä vaiheessa kun ongelma on ratkaistu eli syöte on muuttunut sopivaksi.

Binäärihaku on yksinkertainen esimerkki siitä, miten rekursiota hyödynnetään. Siinä lajitellusta taulukosta voidaan hakea nopeasti (ajassa log n) tietty alkio. Suosittelen aloittamaan binäärihaun tutkimisella ja toteuttamisella, niin opit samalla rekursion ja paljon muutakin hyödyllistä.
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Jani »

Astigma wrote:Rekursioksi kutsutaan sitä, kun funktion toiminta pohjautuu siihen, että se kutsuu itseään ratkaistakseen ongelman. Funktion sisällä on siis koodi, joka kutsuu samaa funktiota uudestaan, hiukan muuttuneilla syötteillä tietenkin. Rekursiossa on tärkeää muistaa, että sen täytyy loppua joskus. Funktion täytyy siis sisältää jonkinlainen koodi, että se ei enää rekursoi siinä vaiheessa kun ongelma on ratkaistu eli syöte on muuttunut sopivaksi.

Binäärihaku on yksinkertainen esimerkki siitä, miten rekursiota hyödynnetään. Siinä lajitellusta taulukosta voidaan hakea nopeasti (ajassa log n) tietty alkio. Suosittelen aloittamaan binäärihaun tutkimisella ja toteuttamisella, niin opit samalla rekursion ja paljon muutakin hyödyllistä.
hmm... En ymmärtänyt.

Tarvitsisin Cos ja Sin harjoitusta! Ainiin, nyt kun muistan... taso maybe 2
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Koodiapina »

Jani, tässä kaksi vaihtoehtoa:
  • Tee väriliu'ulla täytetyn ympyrän tai ellipsin piirtävä funktio. Kuvion piirto toteutetaan trigonometrisilla funktioilla.
  • Tee funktio joka piirtää 360 eri asteeseen kääntyvän laatikon. Laatikon kulma, sijainti ja koko pitää pystyä antamaan parametreina. Grafiikan pitäisi koostua neljästä line -komennosta, eikä kuvia, objekteja tai muita krumeluureja saa käyttää.
Tuon ensimmäisen pitäisi olla suht' helppo.
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Jani »

Grandi wrote:Jani, tässä kaksi vaihtoehtoa:
  • Tee väriliu'ulla täytetyn ympyrän tai ellipsin piirtävä funktio. Kuvion piirto toteutetaan trigonometrisilla funktioilla.
  • Tee funktio joka piirtää 360 eri asteeseen kääntyvän laatikon. Laatikon kulma, sijainti ja koko pitää pystyä antamaan parametreina. Grafiikan pitäisi koostua neljästä line -komennosta, eikä kuvia, objekteja tai muita krumeluureja saa käyttää.
Tuon ensimmäisen pitäisi olla suht' helppo.
trigonometrisillä?
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Koodiapina »

Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Jani »

Tahtoisin lähinnä oppia ymmärtämään Cosia ja Siniä. En tekemään mitään mestariteosta.

(En muuten ymmärtänys noistaTrigonometris jutuista yhtään)
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Pyydä täällä harjoitustehtäviä

Post by esa94 »

Jani wrote:Tahtoisin lähinnä oppia ymmärtämään Cosia ja Siniä. En tekemään mitään mestariteosta.

(En muuten ymmärtänys noistaTrigonometris jutuista yhtään)
Sisäistä tämä:
Trigonometriassa suoraa kulmaa vastapäätä olevaa (kolmion pisintä) sivua kutsutaan hypotenuusaksi ja suoran kulman viereisiä sivuja kateeteiksi. Trigonometristen funktioiden, sinilauseen ja kosinilauseen avulla voidaan vastata kaikkiin kolmion sivuja ja kulmia koskeviin kysymyksiin.
Siinä se idea kiteytettynä.
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Pyydä täällä harjoitustehtäviä

Post by Ozcar »

Jani wrote:Tahtoisin lähinnä oppia ymmärtämään Cosia ja Siniä. En tekemään mitään mestariteosta.

(En muuten ymmärtänys noistaTrigonometris jutuista yhtään)
Katsos, kun sini ja kosini (sin ja cos) ovat trigonometrisia funktioita, joita ei voi käyttää ymmärtämättä logiikkaa sen taustalla. Et voi yrittää tehdä sähköasennuksia ja sen jälkeen kysyä, että mikä ihme oikein on johto. Jos ei wikipedia auta, niin kysy omassa ketjussaan apua sinin ja kosinin selittämiselle tai pyydä irkissä neuvoja, ja kysy täältä sitten hieman eksaktimpia tehtäviä.

Mutta, se loogisin ja paras tapa ymmärtää trigonometristen funktioiden hyöty kun teoria on hallussa: tehkää ohjelma, jolla voitte piirtää pistettä ympyräliikkeessä kopioimatta sitä esimerkeistä tai ulkomuistista. Pohtikaa, miten voitte saada ympyräliikkeen aikaan trigonometrisillä funktioilla. Jos onnistut ja nälkä kasvaa syödessä, voit vaikka alkaa itse yrittää vaikuttaa millaista liikettä saat aikaan. Sekoita joukkoon vaikka tangenttia ja lisää trigonometrisia funktioita tahi pythagoraan lausetta, ja pohdi mistä palluran hyppiminen johtuu. Tästä oppimalla voitte alkaa yrittää tuottaa itse ja tarkoituksella monimutkaisempia kuvioita: kahdeksikkoja, itseensä kiertyvää ympyrää, laajenevaa ja pienenevää ympyrää ja muuta vastaavaa. Kokeilemalla saa aikaan hauskinta jälkeä.
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: Pyydä täällä harjoitustehtäviä

Post by vilQuri »

Haluasin jonkun näköisen harjoituksen cbNetworkin käytöstä. Ei mikään maailman vaikein nettistrategia lentelevillä lehmillä, vaan joku ihan perus peli. Ja se osaamis asteikko on ehkä 6. Osaan kaikki perus funktiot, typet, taulukot jne. Joissain matemaattisissa funktioissa kuten cos,sin,tan on vielä hiomista.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Pyydä täällä harjoitustehtäviä

Post by valscion »

vilQuri wrote:Haluasin jonkun näköisen harjoituksen cbNetworkin käytöstä. Ei mikään maailman vaikein nettistrategia lentelevillä lehmillä, vaan joku ihan perus peli. Ja se osaamis asteikko on ehkä 6. Osaan kaikki perus funktiot, typet, taulukot jne. Joissain matemaattisissa funktioissa kuten cos,sin,tan on vielä hiomista.
Tee peli, jossa kahdella tai useammalla koneella katsotaan reaktioaikaa nappulan painamiseen. Palvelinsoftalta tulee viesti, joka vaihtaa client-ohjelmassa vaikkapa ympyrän väriä ja sitten se aika mikä menee nappulan värinvaihto-painaminen välissä lähetetään takaisin palvelinsoftalle ja se tarkistaa muiden clienttien ajan ja kertoo kaikille clienteille kuka oli nopein.

Eli tällanen "kaavio", kun en osaa selkeästi itseäni muuten esittää :geek:
  • Palvelin lähettää "impulssin" kaikille clienteille
  • Kun client vastaanottaa impulssin, vaihtuu ympyrän väri ja ajastin käynnistetään.
  • Client painaa ympyrää hiirellä (tai vaikka iskee välinäppäintä, päätä itse) ja katsotaan ajastimesta aika ja lähetetään se takaisin palvelimelle.
  • Palvelin vastaanottaa jokaisen clientin ajan
  • Palvelin lähettää jokaiselle clientille tiedon, kuka oli nopein.
  • Client tulostaa tiedon ruudulle ja homma alkaa alusta.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: Pyydä täällä harjoitustehtäviä

Post by vilQuri »

Kiitos! Katson miten tämän toteutan.
mato1223
Member
Posts: 69
Joined: Sat Aug 16, 2008 12:04 pm
Location: Rääkkylä

Re: Pyydä täällä harjoitustehtäviä

Post by mato1223 »

Kun nyt tämmöinenkin viestiketju löytyi niin antakaapa minulle 1. tason tehtävä.
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Jani »

mato1223:

Tee ohjelma joka tallentaa tekstin tiedostoon.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Pyydä täällä harjoitustehtäviä

Post by Ozcar »

@mato:

Edelliseltä sivulta, *KLIKS*.
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
mato1223
Member
Posts: 69
Joined: Sat Aug 16, 2008 12:04 pm
Location: Rääkkylä

Re: Pyydä täällä harjoitustehtäviä

Post by mato1223 »

Jani wrote:mato1223:

Tee ohjelma joka tallentaa tekstin tiedostoon.

Code: Select all

f=OpenToWrite("Media\temp.txt")
    lifes=8
    
    WriteByte f,255
    WriteShort f,lifes*9
    WriteInt f,lifes*1000000
    WriteFloat f,0.1020
    
CloseFile f
Mitäs pidät? Enpä oppinu oikein mitään :oops:
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Koodiapina »

No teeppä pongi.

Käytä grafiikkana kuvia objektien asemesta, jos piirtokomennoissa on harjoiteltavaa niin käytä niitä. Vastustajana voi olla ihan toinen ihmispelaajakin, mutta jos haluat opetella tekoälyn tekoa niin värkkääppä siihen älykäs botti. Ja tietenkin siihen voi lisätä kaikenlaista kivaa kuten erikoisefektejä ja tallentuvia pistelistoja joissa kyllä luulisi harjoitusta tulevan.
Post Reply