Sivujen muokkaaminen vaatii nykyään kirjautumisen. Jos sinulla ei vielä ole tunnuksia, luo sellaiset.

Ero sivun ”Ohjelmointi” versioiden välillä

Primayk
Loikkaa: valikkoon, hakuun
p (Goldfish: tt->code)
p
 
(9 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
'''Ohjelmointi''' on menetelmä, jolla haluttu tehtävä tai laskutoimitus muunnetaan tietokoneelle ymmärrettävään muotoon, yleensä jollekin ohjelmointikielelle.
+
'''Ohjelmointi''', eli puheessa usein ''koodaus'', on menetelmä, jolla haluttu tehtävä tai laskutoimitus muunnetaan tietokoneelle ymmärrettävään muotoon, yleensä jollekin ohjelmointikielelle.
  
Ohjelmointi on matematiikantajua vaativaa puuhaa, ja siksi se soveltuu [[Matikisti|matikisteille]] hyvin. Syksyllä 2014 matematiikkalukiolaisille järjestetään ohjelmointikursseja, joita vetää [[Henrik Lievonen]].
+
Ohjelmointi on matematiikantajua vaativaa puuhaa, ja siksi se soveltuu [[Matikisti|matikisteille]] hyvin. Matematiikkalukiolaisille on järjestetty ohjelmointikursseja vuoden 2014 syksystä lähtien. Ensimmäistä kurssia veti silloinen abi [[Henrik Lievonen]].
  
Ohjelmoinnissa (ja erityisesti algoritmiohjelmoinnissa) voi kilpailla.
+
Ohjelmoinnissa (ja erityisesti algoritmiohjelmoinnissa) voi kilpailla. Peruskoulun ja lukion opiskelijoille tarkoitettuja algoritmiohjelmoinnin kilpailuja ovat mm. [[Datatähti]] ja kansainvälinen [[IOI]]. Myös muissa ohjelmoinnin lajeissa, kuten [[code golf]]issa voi kilpailla. Ohjelmoinnissa on myös täysin huvin vuoksi harjoitettavia haaroja, kuten [[wp:Just another Perl hacker|Just another Perl hacker]].
  
 
== Esimerkkejä ohjelmoinnista ==
 
== Esimerkkejä ohjelmoinnista ==
Rivi 29: Rivi 29:
 
=== Goldfish ===
 
=== Goldfish ===
  
<code>0 iisiiiisiiiiiiiioniiisisioiiiiiiiooiiioniisiisddddoniisiiiiisiiiiiioniiisiisddddddddddoiiioddddddoddddddddoniiisio</code>
+
<code><nowiki>0 iisiiiisiiiiiiiioniiisisioiiiiiiiooiiioniisiisddddoniisiiiiisiiiiiioniiisiisddddddddddoiiioddddddoddddddddoniiisio</nowiki></code>
 +
 
 +
=== Röda ===
 +
 
 +
Ohjelmoinnissa on tärkeää osata kirjoittaa kuvaavia kommentteja, jotta jokainen ummikkokin ymmärtää ohjelman toiminnan.
 +
 
 +
Seuraavassa pätkässä on kuvattu ohjelman toiminta mahdollisimman selkeästi. Ohjelma tulostaa halutusti tekstin "<code>Hello world!</code>".
 +
 
 +
<pre>
 +
main {
 +
/* Viesti */
 +
viesti := "Hei maailma!"
 +
 
 +
/* Osoite, jonka avulla otetaan yhteys näyttöön */
 +
osoite := "ddgLf#zjjcgd"
 +
 
 +
/* Lähetetään viesti näytölle */
 +
lähetä osoite viesti
 +
 
 +
/* Suljetaan BTOS-palvelu käskyllä 10 */
 +
push ![ ((10)) | btos]
 +
}
 +
 
 +
/* Aliohjelma viestin lähettämistä varten */
 +
function lähetä osoite viesti {
 +
/* Valmistelee osoitteen ja viestin lähetystä varten */
 +
valmistele osoite viesti
 +
(
 +
/* Lähetetään siniaaltoa kohdelaitteeseen yhteyden avaamiseksi */
 +
!(seq 0 $(#osoite - 1) |
 +
/* Käydään läpi löydetyt laitteet */
 +
push $(
 +
/* Lähtetetään viesti laitteeseen */
 +
osoite[laite] + viesti[laite] - [
 +
/* Varmistetaan, että käytössä on oikea protokolla (laitetunnus 3 => eri protokolla) */
 +
if ($(laite != 3)) do(100); else(0); done
 +
]
 +
) for laite
 +
)
 +
) | btos /* Varmistetaan, että Binary Teletransfer Object Service on päällä */
 +
}
 +
 
 +
/* Käyttää Standard Telemetric Object Balance -järjestelmää muuntaakseen oliot kelvollisiksi lähetystä varten */
 +
function valmistele &oliot... {
 +
{ stob olio | pull olio } for olio in oliot
 +
}
 +
</pre>
 +
 
 +
[[Luokka:Ohjelmointi]]

Nykyinen versio 25. helmikuuta 2016 kello 11.33

Ohjelmointi, eli puheessa usein koodaus, on menetelmä, jolla haluttu tehtävä tai laskutoimitus muunnetaan tietokoneelle ymmärrettävään muotoon, yleensä jollekin ohjelmointikielelle.

Ohjelmointi on matematiikantajua vaativaa puuhaa, ja siksi se soveltuu matikisteille hyvin. Matematiikkalukiolaisille on järjestetty ohjelmointikursseja vuoden 2014 syksystä lähtien. Ensimmäistä kurssia veti silloinen abi Henrik Lievonen.

Ohjelmoinnissa (ja erityisesti algoritmiohjelmoinnissa) voi kilpailla. Peruskoulun ja lukion opiskelijoille tarkoitettuja algoritmiohjelmoinnin kilpailuja ovat mm. Datatähti ja kansainvälinen IOI. Myös muissa ohjelmoinnin lajeissa, kuten code golfissa voi kilpailla. Ohjelmoinnissa on myös täysin huvin vuoksi harjoitettavia haaroja, kuten Just another Perl hacker.

Esimerkkejä ohjelmoinnista

Ohjelmointikielien perusesimerkkeinä käytetään yleensä ns. Hello World -ohjelmaa, joka tulostaa ruudulle sanat Hello World.

Tässä on joitakin esimerkkejä Hello World -ohjelmista eri ohjelmointikielillä. (Täydellinen luettelo)

Brainfuck

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

Befunge

0"!dlroW ,olleH">:#,_@

Malbolge

(=<`$9]7<5YXz7wT.3,+O/o'K%$H"'~D|#z@b=`{^Lx8%$Xmrkpohm-kNi;gsedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543s+O<oLm

HQ9+

H

Goldfish

0 iisiiiisiiiiiiiioniiisisioiiiiiiiooiiioniisiisddddoniisiiiiisiiiiiioniiisiisddddddddddoiiioddddddoddddddddoniiisio

Röda

Ohjelmoinnissa on tärkeää osata kirjoittaa kuvaavia kommentteja, jotta jokainen ummikkokin ymmärtää ohjelman toiminnan.

Seuraavassa pätkässä on kuvattu ohjelman toiminta mahdollisimman selkeästi. Ohjelma tulostaa halutusti tekstin "Hello world!".

main {
	/* Viesti */
	viesti := "Hei maailma!"

	/* Osoite, jonka avulla otetaan yhteys näyttöön */
	osoite := "ddgLf#zjjcgd"

	/* Lähetetään viesti näytölle */
	lähetä osoite viesti

	/* Suljetaan BTOS-palvelu käskyllä 10 */
	push ![ ((10)) | btos]
}

/* Aliohjelma viestin lähettämistä varten */
function lähetä osoite viesti {
	/* Valmistelee osoitteen ja viestin lähetystä varten */
	valmistele osoite viesti
	(
		/* Lähetetään siniaaltoa kohdelaitteeseen yhteyden avaamiseksi */
		!(seq 0 $(#osoite - 1) |
			/* Käydään läpi löydetyt laitteet */
			push $(
				/* Lähtetetään viesti laitteeseen */
				osoite[laite] + viesti[laite] - [
					/* Varmistetaan, että käytössä on oikea protokolla (laitetunnus 3 => eri protokolla) */
					if ($(laite != 3)) do(100); else(0); done
				]
			) for laite
		)
	) | btos /* Varmistetaan, että Binary Teletransfer Object Service on päällä */
}

/* Käyttää Standard Telemetric Object Balance -järjestelmää muuntaakseen oliot kelvollisiksi lähetystä varten */
function valmistele &oliot... {
	{ stob olio | pull olio } for olio in oliot
}