Hei,
Olen yrittänyt opetella tässä noin viikon ohjelmointia ja kysyisin muutamia asioita. sekä moittisin oppaiden kirjoittajia siitä että siellä ei ole selitetty asioita. (esim nro.1)
1.miksi moinen teksti tulee aina/useimmiten c++ ohjelmoinnissa:
#include <iostream>
1.1. Entäs tämä?
int main
1.2.
std::cout
ja muut std hommat
2. aaltosulut
3.
#include <iostream> int main() { std::cout << "C++ on paras kieli!" << std::endl; }
miksi suossa std::coutin edessä on tyhjää tilaa
4. mikä on binaarimuoto
5. * on tai ASCII -arvo
(Taidan käyttää * merkkiä mikä sanan korvikkeena)
6. mitä tietoa voi tallettaa? char, short ja long
7. * on Liukuluku
8. * on Muuttuja
9. mitä tarkoitetaan funktiolla ohjelmoinnissa?
Kirjoittelen lisää kysymyksiä myöhemmin
Lainaan törkeästi suoraan opasta johon tunnut viittaavan.
Paras suomenkielinen c++-opas kirjoitti:
// Rivit //-merkinnästä eteenpäin ovat kommentteja, eli //:n jälkeen // saa kirjoittaa, mitä haluaa, eikä tämä vaikuta ohjelmaan mitenkään. // Lisäksi merkintä /* aloittaa kommentin: /* Tällainen kommentti voi olla monen rivin mittainen ja päättyy * seuraavaan merkintään: */ // Liitetään standardikirjaston otsikko, jota tarvitaan tulostamiseen. // Standardiotsikoiden nimet kirjoitetaan merkkien < ja > väliin. #include <iostream> // Määritellään pääohjelma. Se on funktio nimeltä main. // Funktion ohjelmakoodi kirjoitetaan aaltosulkujen {} väliin. int main() { // Tulostetaan hieman tekstiä ruudulle. // Teksti syötetään std::cout-oliolle <<-operaattorilla. // std::endl tarkoittaa rivinvaihtoa ("enteriä") std::cout << "C++ on paras kieli!" << std::endl; }
Jos tuosta ei saa selvää, niin vika ei ole minusta enää oppaassa. Joskin sisälukutaito on suotava ominaisuus. Muutkin kysymyksesi selitään auki ihan yhtä kattavasti.
Tarkemman kommentoinnin jätän oppaan kirjottajalle, mut tuokin opas edellyttää eräitä perustietoja, joita voi hankkia muunmuassa lukemalla seuraavat kieliriippumattomat oppaat:
https://www.ohjelmointiputka.net/oppaat/opas.
https://www.ohjelmointiputka.net/oppaat/opas.
Ehkä jokin vuosi matematiikan opiskelua voisi auttaa...
Mainitsemisen arvoista olisi myös varmaankin se, että kaikkia asioita ei kerrota heti oppaan ensimmäisessä kahdessa osassa. Tästä ei ole oppaassa ilmeisesti mainintaa. Yhtä kaikki esimerkiksi kattava selitys funktiosta, ja siitä mikä tuo mystinen main
on, löytyy oppaan viidennestä osasta: https://www.ohjelmointiputka.net/oppaat/opas.
Veini kirjoitti:
Ehkä jokin vuosi matematiikan opiskelua voisi auttaa...
Esitetyillä kysymyksillä ei ole juurikaan mitään tekemistä matematiikan kanssa, muuttujan käsitteen voi oppaan perusteella hahmottaa ilman korkeampaa matematiikkaa.
Hyvää palautetta, mutta useaan kysymykseen löytyy kyllä vastaus oppaista, kunhan vain malttaa lukea ja sisäistää tarkemmin. Lienee myös suositeltavaa lukea C-ohjelmointi -opas C++-oppaan kaveriksi, osa asioista kun selitetään siellä tarkemmin. Oma mielipiteeni myös on, että kaikkia asioita ei edes heti alussa välttämättä tarvitse ymmärtää juurta jaksain, kunhan tietää miksi ja miten niitä asioita käytetään. Kokemuksen ja mielenkiinnon karttuessa tulet varmasti lukemaan asioista tarkemmin. Tämä ajattelutapa heijastuu myös oppaiden rakenteessa: vaikka asia saatetaankin esitellä jo aiemmin, kyseinen asia voidaan selittää myöhemmissä osissa tarkemmin. Kannattaa myös huomata, että C-opas on opas tietyn kielen opetteluun, ei opas proseduraalisen ohjelmoinnin aloittamiseen. Oppaiden alussa lukevat etukäteissuositukset tietotasosta, esim. C-oppaassa: "Aikaisemmasta ohjelmointikokemuksesta on paljon hyötyä, mutta aloittelijallekaan oppaiden seuraaminen ei pitäisi olla mahdotonta."
Tässä muutama esimerkkivastaus kysymyksiisi, osa suoria lainauksia oppaista:
loked kirjoitti:
1.miksi moinen teksti tulee aina/useimmiten c++ ohjelmoinnissa:
#include <iostream>
C-ohjelmointi: Osa 1 kirjoitti:
Ensimmäisellä rivillä oleva #include <stdio.h> liittää ohjelmaan mukaan stdio.h-tiedoston. Tässä tiedostossa on tekstin tulostukseen käytettävän printf-funktion määrittely.
loked kirjoitti:
1.1. Entäs tämä?
int main
C-ohjelmointi: Osa 1 - Ensimmäinen ohjelma kirjoitti:
Varsinainen ohjelma alkaa rivillä
int main(void) {
ja päättyy riviin}
. Näistä merkinnöistä kääntäjä tunnistaa ohjelman alun ja lopun, ja ne toistuvat samanlaisina joka ohjelmassa. C-ohjelma on itse asiassa main-niminen funktio, jolla on myös palautusarvo.
C++-ohjelmointi: Osa 5 - Funktiot kirjoitti:
Yksinkertainen funktio voisi näyttää tältä:
// paluuarvon tyyppi, float // funktion nimi, funktio // parametrit, const float parametri ja const float toinen float funktio(const float parametri, const float toinen) { // return-lauseella palautetaan arvo return (parametri + toinen) / 2; }Tämä funktio ottaa kaksi float-tyyppistä argumenttia, jotka sijoitetaan
const float
-tyyppisiin parametreihin parametri ja toinen. Parametrit on määritelty vakioiksi, koska niitä ei ole tässä funktiossa tarpeen muuttaa.
loked kirjoitti:
3. miksi suossa std::coutin edessä on tyhjää tilaa
Asioita voi myös kokeilla itse. Huomaat varmaan kokeilemalla, että koodi näyttää paljon selkeämmältä, kun koodi on sisennetty lohkoittain.
Muuttujista ja tietotyypeistä puhutaan C++-oppaan osassa 2.
Ihan hyviä kysymyksiä, ainakin osa. Oppaasta kylläkin löytyy vastaus noihin kaikkiin kysymyksiin, muttei kaikkiin heti ekalta sivulta.
Oma neuvoni on, ettei kaikkea tarvitse yrittää ymmärtää heti ensimmäisellä kerralla. Eikä se varmaan ole mahdollistakaan, jos ei ole aikasemmin ohjelmoinut. Kun itse alotin ohjelmoimaan niin mulle aluksi riitti, että osasin kirjottaa oman koodin oikeeseen kohtaan (main-funktion aaltosulkeiden sisälle) ja sain tulostettua tekstiä ja tehtyä muita perusjuttuja. Kyl ne muut asiat aukeni sitten ajallaan kun tarpeeksi koodaili ja eteni oppaassa.
loked kirjoitti:
Olen yrittänyt opetella tässä noin viikon ohjelmointia ja kysyisin muutamia asioita. sekä moittisin oppaiden kirjoittajia siitä että siellä ei ole selitetty asioita. (esim nro.1)
Olen melko varma, että kaikkiin esittämiisi kysymyksiin on vastaus oppaassa, jota olet lukenut. Olen kuitenkin koonnut tähän lyhyitä vastauksia kysymyksiisi. Paremmat vastaukset kaikkiin kysymyksiin löytyy vaikka C++-oppaasta.
loked kirjoitti:
1.miksi moinen teksti tulee aina/useimmiten c++ ohjelmoinnissa:
#include <iostream>
Sillä liitetään koodiin mukaan iostream-tiedosto, jossa on mm. cout ja cin
loked kirjoitti:
1.1. Entäs tämä?
int main
Tuo määrittelee pääfunktion, jonka paluuarvo on int eli kokonaisluku.
loked kirjoitti:
1.2.
std::coutja muut std hommat
Std on tuossa nimiavaruus, siitä sinun ei tarvitse vielä aloittelijana välitää. "std::":tä ei tarvitse kirjoittaa joka coutin jne. alkuun, jos ohjelman alussa on
using namespace std;
loked kirjoitti:
2. aaltosulut
Aaltosuluilla pilkotaan koodia lohkoihin. Käytännössä aaltosuluilla määritellään, mistä esim. funktion koodi alkaa ja mihin se loppuu.
loked kirjoitti:
3.
#include <iostream> int main() { std::cout << "C++ on paras kieli!" << std::endl; }miksi suossa std::coutin edessä on tyhjää tilaa
Koodin selkeyttämiseksi; pitkää sisentämätöntä koodia on etenkin jonkun muun kuin koodin kirjoittajan todella vaikea lukea.
loked kirjoitti:
4. mikä on binaarimuoto
Binääri tarkoittaa 2-lukujärjestelmässä, eli ykkösinä ja nollina tallennettua tietoa. Usein sanalla binäärimuoto tarkoitetaan, ettei tiedosto tms. ole ihmiselle luettavassa tekstimuodossa.
loked kirjoitti:
5. * on tai ASCII -arvo
(Taidan käyttää * merkkiä mikä sanan korvikkeena)
ASCII-arvo on merkille annettu numeroarvo, esimerkiksi merkille "A" se on 65.
loked kirjoitti:
6. mitä tietoa voi tallettaa? char, short ja long
Chariin voi tallettaa yhden kirjaimen, eli tavun, eli numeron väliltä 0-255, shortiin lyhyen kokonaisluvun ja longiin pitkän kokonaisluvun. Tarkemmin muuttujatyypin on vaikka tuolla: http://fi.wikibooks.org/wiki/C /Muuttujat
loked kirjoitti:
7. * on Liukuluku
Desimaaliluku, esim. 1.7
loked kirjoitti:
8. * on Muuttuja
Sellainen juttu johon voi tallentaa vaikka luvun tai tekstiä. Muuttujista kerrotaan varmasti jokaisessa ohjelmointioppaassa, joten en selitä niitä tässä pidemmin.
loked kirjoitti:
9. mitä tarkoitetaan funktiolla ohjelmoinnissa?
Funktio on ohjelmanpätkä, jota kutsutaan jostain kohdasta ohjelmaa. Funktion suorituksen jälkeen palataan takaisin siihen kohtaan josta sitä kutsuttiin. Funktiotkin on varmasti selitetty siinä oppaassa, jota luit.
loked kirjoitti:
Olen yrittänyt opetella tässä noin viikon ohjelmointia
Tämä on lyhyt aika ohjelmoinnin opetteluun. Jos kuitenkin olet liian hätäinen opettelemaan järjestelmällisesti C++:n kaltaista vaikeaa kieltä, voit kokeilla esimerkiksi Pythonia, joka on aloittelijalle helpompi.
loked kirjoitti:
moittisin oppaiden kirjoittajia siitä että siellä ei ole selitetty asioita
Luettelemistasi asioista kaikki paitsi "tyhjä tila", "binaarimuoto" ja "ASCII-arvo" kerrotaan kyllä C++-oppaissa, kunhan luet pidemmälle. Toisin sanoen haukkusi ovat lähes täysin perusteettomat ja kertovat jossain määrin ihan omasta laiskuudestasi.
Sisennyksen eli rivin alussa olevan tyhjän tilan merkityksen koodin kannalta voit helposti selvittää kokeilemalla, mitä tapahtuu, jos muutat sitä. (tilan todellisen hyödyn opit toivottavasti ymmärtämään ihan itse, kunhan ohjelmoit ja luet toisten koodeja enemmän.)
Binaarijärjestelmä, binaaritiedostot ym. asiat kuuluvat tietotekniseen yleissivistykseen eivätkä C++-oppaaseen. Ohjelmoinnissa yleensä käytetään termejä "binaarimuoto" ja "tekstimuoto"; teksti tarkoittaa kirjaimia, numeroita ym. tuttuja merkkejä, ja binaari on sellaista dataa, joka ei ole tekstiä.
Myös ASCII kuuluu tietotekniseen yleissivistykseen. Merkistöistä voit lukea Python-oppaan liitteestä tai vaikka Wikipediasta.
Opasta kirjoittaessa käy usein niin, että joutuu mainitsemaan asioita, jotka on mahdollista selittää kunnolla vasta myöhemmin. Tämä johtuu siitä, että asiat liittyvät toisiinsa monimutkaisilla tavoilla eikä niille ole välttämättä olemassa täysin loogista käsittelyjärjestystä.
Rehellinen palaute oppaista – hyvin kriittinenkin – on arvokasta oppaiden kirjoittajille, joten kannattaa ottaa tässä mallia lokedista. Palaute ei ehkä vaikuta välittömästi nykyisiin oppaisiin, mutta se vaikuttaa tuleviin oppaisiin.
Jaajaa tää on hyvä tietää. Itse olen noita oppaita lukenut ja välillä en oikein ole tajunnut ja jäänyt pähkäilemään ja sen jälkeen vituttamaan koko homma.
Kyllä noi oppaat on selkeempiä kuin tämä keskustelu.
Kiitos vastauksista sekä anteeksi oppaiden kirjoittajille moitteistani jotka Lopulta osoittautuivat melko aiheettomiksi.
Syy sille miksi moitin oppaiden kirjoittajia on se että asioita ei kerrota järjestyksessä mihin olen esim HTML:llää joskus opetellessani tottunut, Ja ajattelin oppaat siten että ensin muutamassa oppaassa kerrotaan miten pääsee alkuun tekemään pienen ohjelman ja sitten kerrotaan runsaiden esimerkkien kera mitä toiminnot tarkoittavat ja mitä mikäkin kohta ohjelmasta tekee. Tästä johtuen yritin opetella vain muutamasta ensimmäisestä oppaasta tietoja kysymyksiini sillä niissä kappaleissa puhuttiin asioista jotka herättivät kysymykseni enkä tajunnut että joissain myöhemmissä kappaleissa kerrotaan vastauksia kysymyksiin edellisiin kappaleisiin.
Eli oppaita kannattaisi mielestäni korjailla siten että kun on vaika semmoinen ohjelma joka tulostaa tekstille vain yhden lauseen niin kirjoittaisi siihen tarkalleen mitä mikäkin kohta tarkoittaisi/aiheuttaisi, "Tämänlainen" järjestely auttaisi alkavia ohjelmoijia.
Oikeastaan tilanteeni on/oli aika samanlainen kuin rickkenillä:
Rickken kirjoitti:
Jaajaa tää on hyvä tietää. Itse olen noita oppaita lukenut ja välillä en oikein ole tajunnut ja jäänyt pähkäilemään ja sen jälkeen vituttamaan koko homma.
Kiitokset kaikille jotka kertoivat tarpeellista tietoa.
Jätän kaikki turhat moitteen/irvailut omaan arvoonsa.
-tossu- kirjoitti:
loked kirjoitti:
7. * on Liukuluku
Desimaaliluku, esim. 1.7
<viilausta>
Liukuluku on liukuluku. Varsinkin ohjelmoinnista vähemmän tietävän tulee opetella mitä rajoitteita tästä käytännössä aiheutuu.
Niin, monissa kielissä on erikseen tietyypit liukuluku ja desimaaliluku, joista liukuluku on epätarkka (pyöristysvirheitä) ja desimaaliluku on ohjelmoijan tai kielen määrittelemällä tarkkuudella tarkka (ei pyöristysvirheitä). Näillä desimaaliluvuilla laskeminen on yleensä hitaampaa kuin liukuluvuilla, koska prosessorit osaavat yleensä laskea liukuluvut suoraan kun taas desimaaliluvut lasketaan osittain ohjelmallisesti.
loked kirjoitti:
Eli oppaita kannattaisi mielestäni korjailla siten että kun on vaika semmoinen ohjelma joka tulostaa tekstille vain yhden lauseen niin kirjoittaisi siihen tarkalleen mitä mikäkin kohta tarkoittaisi/aiheuttaisi, "Tämänlainen" järjestely auttaisi alkavia ohjelmoijia.
Voit ehkä kuvitella noin, koska HTML:ssä monet asiat ovat noin yksinkertaisia. Mutta olisiko sinulla hyötyä, jos kertoisin, että std::cout on std-nimiavaruudessa oleva istream-luokan olio, joka hyväksyy erilaisia tietotyyppejä tulostettavakseen ylikuormitetulla <<-operaattorilla, ja että std::endl on virtamanipulaattori, joka tulostaa rivinvaihtomerkin ja velvoittaa lisäksi virran lähettämään tähän mennessä tulostetun datan omasta välimuististaan eteenpäin?
C++ on niin mutkikas, että kaikkia ensimmäisen esimerkin asioita ei mitenkään voi käsitellä heti paikalla. Asioiden järjestystä oppaissa on tarkkaan harkittu niin, että aiemmissa oppaissa esiintyisi mahdollisimman vähän asioita, jotka selitetään vasta myöhemmin. Kuitenkin jo tuo pieni esimerkki sisältää asioita joka puolelta opassarjaa, myös osista, joita ei ole vielä edes kirjoitettu. Tekstin tulostaminen ja syötteen lukeminen ovat näistä asioista mutkikkaimmat, ja toisaalta niiden syvempi ymmärtäminen ei ole kovinkaan tärkeää, joten ei ole mitään järkeä yrittää selittää niitä alussa ohjelmoijalle, jolla ei ole mitään mahdollisuuksia ymmärtää selitystä.
Metabolix kirjoitti:
Voit ehkä kuvitella noin, koska HTML:ssä monet asiat ovat noin yksinkertaisia. – – Kuitenkin jo tuo pieni esimerkki sisältää asioita joka puolelta opassarjaa, myös osista, joita ei ole vielä edes kirjoitettu.
Tiesin kyllä että HTML on helppoa oppia ja ymmärtää joten kuten edellisessä viestissäni totesin ;/, En ymmärtänyt että Tulevissa oppaissa käsitellään asioita ja kysymyksiä joita on tarvinnut kaikkein yksinkertaisempien "ohjelmien" valmistamiseen.
loked kirjoitti:
En ymmärtänyt että Tulevissa oppaissa käsitellään asioita ja kysymyksiä joita on tarvinnut kaikkein yksinkertaisempien "ohjelmien" valmistamiseen.
Eihän Metabolix noin sanonut.
Meinaatko että pitäisi opettaa syvällinen ymmärrys elektromagneettisista ilmiöistä sekä voimalaitosten ja sähköverkon toiminnasta ennen kuin ketään voisi opettaa käyttämään kahvinkeitintä?
Perusopas on perusopas ja syventävät opinnot tulee yleensä vasta perusopintojen jälkeen.
Grez kirjoitti:
loked kirjoitti:
En ymmärtänyt että Tulevissa oppaissa käsitellään asioita ja kysymyksiä joita on tarvinnut kaikkein yksinkertaisempien "ohjelmien" valmistamiseen.
Eihän Metabolix noin sanonut.
No olenko sanonut että metabolix olisi sanonut?
Tarkoitin vain että en ymmärtänyt tälläistä käytäntöä koska olen tottunut siihen käytäntöön että asiat opetellaan siten että otetaan esimerkki ja tehdään selväksi kaikki kysymykset mitä tulee mieleen esimerkistä.
Grez kirjoitti:
Perusopas on perusopas ja syventävät opinnot tulee yleensä vasta perusopintojen jälkeen.
Juurihan viestissäni totesin että en alunperin ymmärtänyt että oppaassa käytetään tälläistä käytäntöa.
loked kirjoitti:
No olenko sanonut että metabolix olisi sanonut?
Sori, luulin, että kun kirjoitit vastausta Metabolixin viestiin, niin se olisi ollut kommentointia Metabolixille, eikä jostain muualta revittyä.
Vastaan nyt sitten ihan vaan tuohon omaan väitteeseesi ilman että mietin mistä se on peräisin.
loked kirjoitti:
En ymmärtänyt että Tulevissa oppaissa käsitellään asioita ja kysymyksiä joita on tarvinnut kaikkein yksinkertaisempien "ohjelmien" valmistamiseen.
Yksinkertaisten ohjelmien valmistamiseen ei tarvitse syvällistä ymmärrystä, joka joistakin asioista tulevissa oppaissa mahdollisesti kerrotaan. Eli ei tarvitse esimerkiksi ymmärtää miten << toimii sisäisesti, että sitä voi käyttää omassa ohjelmassa.
loked kirjoitti:
Tarkoitin vain että en ymmärtänyt tälläistä käytäntöä koska olen tottunut siihen käytäntöön että asiat opetellaan siten että otetaan esimerkki ja tehdään selväksi kaikki kysymykset mitä tulee mieleen esimerkistä.
Väitän että yhtään sellaista opasta ei maailmasta löydy, jossa jokainen kysymys, mikä esimerkistä voi tulla mieleen, olisi tehty selväksi. Toki joskus voi käydä tuuri, ja joku yksittäinen oppaan lukija saa vastauksen kaikkiin kysymyksiinsä.
Tämä johtuu ihan siitä, että jokaisen nippelitiedon selostaminen ei edes palvelisi opetustarkoitusta. Eri ihmisille voi tulla erilaisia kysymyksiä mieleen, eikä yhden kysymyksen mieleensä saanut välttämättä jaksaisi kahlata sitä 1000 vastauksen joukosta.
Antti Laaksonen kirjoitti:
Rehellinen palaute oppaista – hyvin kriittinenkin – on arvokasta oppaiden kirjoittajille
OK. En ole ihan varma suomen kieliopista, mutta kandiohjaajani, joka on matemaatikko, sanoi että mikäli lause alkaa sanalla "jos", on siinä esiinnyttävä sana "niin". En sitten tiedä, koskeeko tämä vain matemaattista tekstiä. Siten esimerkiksi oppaassa https://www.ohjelmointiputka.net/oppaat/opas.
"Jos vastaus on 'auki', palvelimen pitäisi toimia."
pitäisi muuttaa muotoon
"Jos vastaus on 'auki', niin palvelimen pitäisi toimia."
Ainakaan yleiskielessä tuo sääntö ei pidä paikkaansa.
OK, mutta sama rakenne on jäänyt myös matematiikan puolelle: https://www.ohjelmointiputka.net/oppaat/opas.
"Jos merkitään vektorin ja positiivisen x-akselin välistä kulmaa kirjaimella α, saadaan suorakulmainen kolmio, josta voidaan helposti laskea trigonometrialla komponenttien pituudet."
Kieliopin oikeellisuus tai virheellisyys ei riipu siitä, mitä alaa teksti käsittelee.
Luultavasti kandiohjaajasi on tarkoittanut, että osana matemaattista todistusta tai kaavaa noin täytyy tehdä. Esimerkiksi seuraavassa tilanteessa niin-sana on perusteltu ja selventää rakennetta huomattavasti:
jos x = 1, niin y = 10 jos x = 1, y = 10
(Matemaatikko ei varmaan edes käyttäisi pilkkua, joka kuitenkin kieliopillisesti on välttämätön.)
Sen sijaan jos sama kirjoitetaan sanallisesti ("Jos x on yksi, y on kymmenen."), niin-sana ei minusta missään nimessä ole tarpeen, koska pilkku erottaa lauseet ja jokaisen suomen kieltä osaavan tulisi osata lukea virke oikein.
No, en sitten tiedä mikä päähänpinttymä ohjaajallani oli. Jokatapauksessa kandin kirjoittaminen oli todella tuskaista johtuen ohjaajani pedanttisuudesta. Ehkä kyse on siitä, että ilmaisun tulee olla selkeää. Esimerkiksi
Jos x on jokin luvuista 1,2,3,y=4.
Voiko nyt olla x=y vai onko x jokin luvuista 1,2,3, jolloin y=4?
Metabolix kirjoitti:
Sen sijaan jos sama kirjoitetaan sanallisesti ("Jos x on yksi, y on kymmenen."), niin-sana ei minusta missään nimessä ole tarpeen
Niin, tosin sitten menee hankalaksi, jos on paljon muuttujia:
Jos x on yksi, y on kolme ja z on kahdeksan, m on kymmenen, n on kaksitoista ja l on seitsemän.
Kyllähän tuosta vielä saa ihan hyvin selvää, mutta "niin" -sana ainakin minusta tuossa helpottaisi kuitenkin hieman lukemista.
Jaska kirjoitti:
Jos x on jokin luvuista 1,2,3,y=4.
Eihän tuossa ole kieliopillisesti hyväksyttävää virkettä.
Pitäisi sanoa esimerkiksi:
Jos x on jokin luvuista 1, 2 tai 3, y on 4.
Matemaatikko taas kirjoittaisi esim:
Jos x ∈ { 1; 2; 3 }, niin y=4.
Matematiikan opinnäytteen kieliasuun saattaa liittyä sääntöjä, jotka eivät ole voimassa yleiskielessä mutta jotka ovat matematiikan laitoksen henkilökunnan mielestä tarpeellisia.
Esimerkiksi kokemus saattaa olla osoittanut, että matematiikan opinnäytteessä esiintyvä jos-sanalla alkava virke on usein epäselvä, mikäli siinä ei ole niin-sanaa. Yksi ratkaisu ongelmaan on vaatia, että niin-sanaa käytetään aina tällaisissa tapauksissa.
Pikku-g:ssä eri ohjaajani ei huomauttanut samasta ongelmasta eikä myöskään diffis- ja integraalilaskennan ohjaaja kurssiin liittyvässä harjoitustyössä. Kandiohjaajani oli tarkempi asian suhteen. En sitten tiedä, oliko nuo kaksi ohjaajaani väärässä ja yksi oikeassa sen suhteen, onko niin-sana pakollinen vai ei. Mielestäni se kuitenkin selkeyttää kaikissa tapauksissa tekstiä.
Jaska kirjoitti:
Mielestäni se kuitenkin selkeyttää kaikissa tapauksissa tekstiä.
Minusta se taas on lähes aina huonoa tyyliä ja kieliopillisesti arveluttava. Ennemmin käyttäisin vaikka jotain kiertoilmausta, esimerkiksi "jos y = 123, yhtälöstä (2) seuraa, että x = 456".
Grez kirjoitti:
Metabolix kirjoitti:
Sen sijaan jos sama kirjoitetaan sanallisesti ("Jos x on yksi, y on kymmenen."), niin-sana ei minusta missään nimessä ole tarpeen
Niin, tosin sitten menee hankalaksi, jos on paljon muuttujia:
Jos x on yksi, y on kolme ja z on kahdeksan, m on kymmenen, n on kaksitoista ja l on seitsemän.
Kyllähän tuosta vielä saa ihan hyvin selvää, mutta "niin" -sana ainakin minusta tuossa helpottaisi kuitenkin hieman lukemista.
Minusta on itsessään virhe lähteä kirjoittamaan tuommoista rimpsua sanoin. Hirveä määrä tekstiä olemattoman tietomäärän vuoksi. Matikan kandi venyisi satasivuiseksi vaikkei olla päästy perusteita pidemmälle.
Puhuttujen kieltenkin kieliopissa on kyse muustakin kuin vain syntaksista.
Sinänsä täydellisesti selitetty hello world olisi ihan mielenkiintoinen kyllä, vaikka aloittelijalle sen ymmärtäminen ehkä siltikin olisi haasteellista. Kirjoittelin tässä vähän juttuja, ja ennen kuin pääsin alkuunkaan niin oli ilmestynyt jo tuhannen sanaa ruudulle. Joten kohtuu paljon pystyy yksinkertaisesta Hello Worldistakin selittäämään jos ihan tyhjästä lähtee liikkeelle ja kaiken yrittää selittää mahdollisimman perusteellisesti. Katson jos saan jatkettua tuota vielä joskus. ihan mielenkiintoinen projekti-idea sinänsä, varmaan kohtuu monimutkainen reitti kuitenkin standardikirjaston läpi on tiedossa jos haluaa selvittää miten ne maagiset sanat päätyykään ruudulle.
Tuolla on selostettu eräskin hello world ja kielen kaikki komennot aika perusteellisesti.
http://fi.wikipedia.org/wiki/Brainfuck
Tosin onhan tuossakin outoja termejä kuten osoitin, tavu ja Ascii (viimeisestä sentään Wikipedian tyyliin on linkki selitykseen.)
Metabolix kirjoitti:
Jaska kirjoitti:
Mielestäni se kuitenkin selkeyttää kaikissa tapauksissa tekstiä.
Minusta se taas on lähes aina huonoa tyyliä ja kieliopillisesti arveluttava. Ennemmin käyttäisin vaikka jotain kiertoilmausta, esimerkiksi "jos y = 123, yhtälöstä (2) seuraa, että x = 456".
Tuollehan on kätevä merkintätapa y=123 => x=456.
Tarkoitin niin ikään tämänlaista opasta: (on kylläkin javaa mutta kuitenkin)
http://cs.joensuu.fi/~vouti/tjdoku/JAVA/luku1.
pääpointtini asiassa oli siis se että jos ei esim. tiedä mitä std::cout ja std::endl; tekee niin asiaa ei voi sitten soveltaa myöhemmin omissa ohjelmissa.
loked kirjoitti:
Tarkoitin niin ikään tämänlaista opasta: (on kylläkin javaa mutta kuitenkin)
http://cs.joensuu.fi/~vouti/tjdoku/JAVA/luku1.
html#yksinkertainen_java-ohjelma pääpointtini asiassa oli siis se että jos ei esim. tiedä mitä std::cout ja std::endl; tekee niin asiaa ei voi sitten soveltaa myöhemmin omissa ohjelmissa.
No siinä tapauksessa pitäisi kenties varata se 5 - 10 minuuttia ja lukea muutama rivi lisää sitä opasta.
Et tuonut mitään uutta keskusteluun, ja tämä pointti on käsitelty jo. (Putkan) C++-opas kertoo aloittelijalle riittävällä tarkkuudella mainitsemiesi symbolien merkityksen jo heti alussa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.