Tarkotus olis pistää tänne noita tehtävien ratkaisuja samaan tahtiin kun saan suoritettua
Laitappa kooditagit tuohon, niin viittii ehkä lukeekki.
...
Poistin vastaukset. Ei tämä ole mikään koulutehtävien lunttaussivusto. Jos haluat lähettää tänne tuollaisia, sinun täytyy ensin perustella asia jotenkin ihan käsittämättömän hyvin. Koulutehtävät ovat harjoittelua varten, ja on tyhmää kopioida vastaukset, jos haluaa oppia jotain, tai tyhmää mennä ohjelmointikurssille, jos ei halua opetella ohjelmoimaan.
Ai sitäkö mieltä olet? Tällaista linkkiä olen itse etsinyt, mistä tehtävän toimivat koodit selkeästi näkisi, jos omassa koodissa jokin menee metsään.
Se on jokaisen omalla vastuulla, haluaako todella oppia vai kopioida koodin netistä. Välillä on vaan tehokkaampaa opetella katsomalla kun väkisin väkertämällä.
Itselläni on monta päivää mennyt hukkaan potenttiaalista opiskelu aikaa kun olen pienien bugien tai joidenkin pienten virheiden takia joutunut jäämään tappalemaan tehtävän kanssa. Tänään taas Viope tehtävät aloitettuani yllätyksekseni huomasin, että sivulta oli kadonnut kaikki aiemmat suoritukseni joita olin siihen mennessä kuukausi sitten suorittanut, ja se oli itseasiassa se idean sytyttänyt syy miksi näitä aloin tänne backuppaa.
Käsi kirjoitti:
Ai sitäkö mieltä olet? Välillä on vaan tehokkaampaa opetella katsomalla kun väkisin väkertämällä.
Ei tarvitse olla edes tätä mieltä. Tämä on ihan yleinen käsitys siitä miten ihminen oppii. Oppimiskäyrän alku on jyrkkä, mutta kun sen selättää niin homma alkaa sujua kuin vettä vain. Ongelmien kanssa takertelu ei ole "potentiaalisen opiskeluajan" hukkaan heittämistä vaan nimenomaaan sitä opiskelua. Mikäli ratkaisun vain vilkaisee, se ei jää päähän alkuunkaan samaan tapaan kuin itse ratkaistuna.
Viopen tehtävät ovat melko alkeellisia eikä niissä ole erityisiä kompakysymyksiä, joten ”jotkin pienet virheet” ovat selvästi asioita, jotka pitäisi opetella eikä luntata. Viopen huonous opiskeluympäristönä on kyllä tällä foorumilla jo todettu moneen kertaan (ellei se ole viime aikoina kehittynyt), ja onkin tärkeää asentaa kääntäjä ja testata itse omia koodeja sekä opetella lukemaan kääntäjän antamia virheilmoituksia, joista ne ”pienet virheet” usein löytyvät saman tien.
Tiedostoja taas on ylipäänsä viisainta tallentaa omalle koneelle, muistitikulle tai johonkin tiedostojen tallentamiseen tarkoitettuun palveluun. Keskustelupalsta ei todellakaan ole oikea paikka varmuuskopiointiin.
Koodisi olivat myös kaikkea muuta kuin mallikelpoisia.
Ottakaa pojat nyt ihan rauhassa, uskon kyllä että pissitte varmana tosi pitkälle ilman sen kummempia todisteluja.
Minusta sait ihan hyviä ja asiallisia vastauksia.
Uskon että jos kurssin järjestäjät näkisivät että oppimisen kannalta olisi tehokkaampaa antaa ratkaisut suoraan, kurssin järjestäjät tekisivät niin.
En tiedä olettekote itse viope kursseja joskus aloitteliana aikoinanne suorittanee. Oma kokemukseni viopen kurssista on se, että ne ovat ajastaan jäljessä olevia pienellä budjetin toteutettuja sovelluksia, jossa on jouduttu tekemään todella paljon kompromisseja käyttäjäystävällisyyden ja teknistan rajoitusten kanssa.
Tehtäviä tehtäessäni ehkä... 50÷ ajastani on mennyt viopen tiettyjen yksityiskohtien viilaamiseen joita viope vaatii jotta kurssissa pääsisi eteen päin.
Metabolix:
Olen tässä kevään sekä kesän aikana uhrannut n20 tuntia siihen että saisin koneeni kääntämäään c kieltä eclipse tai netbeanssin kautta. Koneellani on 8.1 se voi olla se ongelma. Ajattelin seuraavaksi kokeilla kokeilla windows 7 tai ubuntu kakkos koneellani ja aloittaa kokeilut uudelleen.
Jos joku haluaa auttaa, olen todella kiitollinen.
Grez joo valiidi kommenntti toimivassa maalmnassa mitä sanot. MUTTA viope on mielestäni vaan niin paska, että tällaiset valmiit vastaukset voisivat olla parempi vaihtoehto
Kohdallani on kyseessö tasapainoilu opintopisteiden, sekä oppimisen kanssa (oppiminen 70÷ opintopisteet 30÷)
Käsi kirjoitti:
Tehtäviä tehtäessäni ehkä... 50÷ ajastani on mennyt viopen tiettyjen yksityiskohtien viilaamiseen joita viope vaatii jotta kurssissa pääsisi eteen päin.
Eikö valmiiden ratkaisujen asemesta voisi laittaa pystyyn sivun, jossa olisi listattu nuo yksityiskohdat. Eli tyyliin mitä odotit että toimisi ja millä tavalla se piti tehdä eri tavalla että kelpasi Viopelle.
Tuollaiset asiathan eivät edes näy valmiista toimivista toimivista ratkaisuista.
Jos viope on kerran niin kelpaamaton, miksi käytät sitä? Lainaa vaan kirjastosta joku C/C++ kirja ja opettele sen avulla.
Käsi kirjoitti:
Olen tässä kevään sekä kesän aikana uhrannut n20 tuntia siihen että saisin koneeni kääntämäään c kieltä eclipse tai netbeanssin kautta.
Eclipse ja NetBeans eivät sisällä C-kääntäjää, jolloin niiden asentaminen käyttökuntoon voi olla todellakin vaikeaa. Muutamia helpompia – Dev-C++, CodeLite, Code::Blocks – ja myös linkki tarkkoihin Eclipse-ohjeisiin on mainittu oppaassani.
Tai vaikka Visual Studio. Ei siinä käyttistä kannata alkaa vaihtaa, jos on mennyt Eclipseen sekaantumaan (varsinkin C/C++-puolella).
Viopeen en olekaan vielä sekaantunut, vaikka Metropolio sitä välillä mainostelee. Vähän vilkaisseena ei nyt kauhean upealta vaikuta, mutta en tajua miten oppimista voisi parantaa se, että vastaukset saisi valmiina.
Ja jos ongelmia on, apuahan voi aina kysyä. Ja Viopelle voinee antaa palautetta noista asioista.
Visual studio on hyvä käytettäessä MS:n työkaluja. Sen integraatio on tiukka ja toimivuus loistava. Opetteluun se voi olla hieman iso.
Muitakin hyviä ympäristöjä on olemassa.
Itse suosin kuitenkin MinGW:tä ja sopivaa editoria. Notepad++ on hyvä, Emacs on hyvä, mutta haastava. Kääntäminen menee Makefileillä ja komentoriviltä. Onko se sitten helpompaa viritellä Makefileä kuin jotain muuta projektia. Vaatii opettelua.
Oma kevyesti mietitty ajatus on, että IDE rajoittaa oppimista. IDE:n kanssa opetellessa opettelee kolmea asiaa yhtä aikaa.
1) Ympäristöä eli IDEä, käyttiksen kirjastoja ja pahoja vääriä tapoja
2) Ohjelmointikieltä eli miten tällä asioita tehdään
3) Ohjelmointia eli kuinka asiat tarvitsisi tehdä ajatuksen tasolla
Aluksi opetellaan ohjelmointia ja kieltä enempi, sen jälkeen ihmetellään miten ihmeessä teen sen IDEssä.
Kun on hetken aikaa kirjoittanut koodia notepadilla (ilman ++) ja sisentänyt koodin, käyttänyt kaikkia häkkyröitä, mitä kieli nyt tarjoaa niin voi siirtyä johonkin helpottavampaan editoriin. Voin tunnustaa että en osaa edes kirjoittaa VHDL:ää oiken, koska Emacs päristelee sitä niin tehokkaasti ES moodissa, että ei tarvitse miettiä pahemmin syntaksia.
Kaikkein ärsyttävintä on mielestäni se kun kirjoittaa foo. jolloin automaattisesti korjataan foo-> muotoon ja pomppaa lista mahdollisista metodeista. Arvotaan tuosta nyt tuo ja katsotaan toimiiko. Yleensä toimii, mutta silloin jää dokumentaatiosta etsiminen väliin ja tutkiminen mitä sivuvaikutuksia kyseisellä metodilla on. Ei jää jutut mieleen vaikka käyttääkin niitä. Opetteleminen hidastaa hieman tuottavuutta, mutta tekee ohjelmista yleensä fiksummin tehtyjä. Ja esimerkissä voi miettiä miksi on ajatellut foon olevan luokka/structi vaikka se on osoitin sellaiseen ja miten koodia voitaisiin selventää.
Arvostan sitä kun teen virheitä. Silloin tajuan jotain yleensä, mutta jos ne vain piilottelevat ja ohjelma tuntuu toimivan, jatkan elämääni edelleen yhtä tietämättömänä asiasta ja toistan virhettäni.
vuokkosetae kirjoitti:
Oma kevyesti mietitty ajatus on, että IDE rajoittaa oppimista. IDE:n kanssa opetellessa opettelee kolmea asiaa yhtä aikaa. – – 1) Ympäristöä eli IDEä, käyttiksen kirjastoja ja pahoja vääriä tapoja
IDE ei mitenkään pakota käyttämään käyttiksen kirjastoja tai pahoja vääriä tapoja. Yksinkertainen IDE kuten Dev-C++ on peruskäytössä vain tekstieditori, jossa yhdestä napista saa ohjelman käännettyä ja käyntiin, ja Visual Studio on varmaan ainoa, joka yrittää parhaansa mukaan tyrkyttää käyttöjärjestelmä- ja kääntäjäspesifistä koodia.
vuokkosetae kirjoitti:
Kaikkein ärsyttävintä on mielestäni se kun kirjoittaa foo. jolloin automaattisesti korjataan foo-> muotoon ja – –
Kai nyt mistä tahansa IDEstä saa nämä ominaisuudet pois.
vuokkosetae kirjoitti:
Kaikkein ärsyttävintä on mielestäni se kun kirjoittaa foo. jolloin automaattisesti korjataan foo-> muotoon ja pomppaa lista mahdollisista metodeista. Arvotaan tuosta nyt tuo ja katsotaan toimiiko. Yleensä toimii, mutta silloin jää dokumentaatiosta etsiminen väliin ja tutkiminen mitä sivuvaikutuksia kyseisellä metodilla on.
No sehän on oma valinta jos tarjolle tulevasta listasta valitset funktion arvalla. Itse yleensä tiedän mitä funktiota haluan käyttää ja lista vaan auttaa ettei sitä tarvitse kokonaan kirjoittaa. Ja lisäksi ettei tarvitse muistaa ulkoa missä järjestyksessä parametrit täytyy antaa.
Oman laiskuutesi lisäksi mikään ei estä lukemasta tarjolla olevien funktioiden dokumentaatiot ennen niiden käyttämistä ja ainakin itse käyttämissäni työkaluissa siitä listalta pääsee dokumentaatioonkin yhden napin painalluksella.
Tässähän ei ole kyse ongelmasta työkalussa vaan kyse on siitä että työkalua käyttävät myös sellaiset, jotka koodaavat väärin. Siis minusta koodaamisen pitäisi olla ongelman ratkaisua osaamisen ja älyn, ei hyvän onnen avulla.
Metabolix kirjoitti:
[...] Visual Studio on varmaan ainoa, joka yrittää parhaansa mukaan tyrkyttää käyttöjärjestelmä- ja kääntäjäspesifistä koodia.
Jännää, miten tämä ilmenee? Minulle kun se ei ole ikinä tyrkyttänyt mitään mitä en ole itse ihan halunnut kirjoittaa. Vai tarkoitatko sitä, että se ei toteuta kaikkea gcc-tyylillä, joka taas olisi hyväksyttävää? ;)
Kaikissa kääntäjissä on omat juttunsa, eikä Visual Studio (tai Visual C/C++-kääntäjä) sen ihmeemmin mitään yritä tyrkyttää. Helppo kirjoittaa koodia, ajaa sitä ja debuggaus on hieman kätevämpää kuin tekstieditori/kääntäjä-kombinaatiolla. Varmasti Dev-C++:t ja muutkin homman hoitavat kotiin, en ole kokeillut.
Mutta jos aloittelijalle jonkin gdb:n tunkee kouraan ja kuvittelee, että aloittelija sitten oppii koodaamista ja etsimään syyt segfaulteille, eikä tuhlaa aikaansa opettelemaan työkalun käyttöä niin...
feenix kirjoitti:
Metabolix kirjoitti:
[...] Visual Studio on varmaan ainoa, joka yrittää parhaansa mukaan tyrkyttää käyttöjärjestelmä- ja kääntäjäspesifistä koodia.
Jännää, miten tämä ilmenee?
Ainakin ennen asia ilmeni niin, että komentoriviohjelma sisälsi oletuksena mystisen stdafx.h-tiedoston, joka ei kääntynyt GCC:llä. Lisäksi ainakin C++:n kohdalla oli sekä kielessä että standardikirjastossa joitain poikkeamia, joita tuli helposti käytettyä ja joiden takia koodi ei sitten kääntynyt GCC:llä. En tiedä, onko tilanne muuttunut viime vuosina.
Aihe on jo aika vanha, joten et voi enää vastata siihen.