Ero sivun ”Pseudokoodi” versioiden välillä
[arvioimaton versio] | [arvioimaton versio] |
Poistettu sisältö Lisätty sisältö
p Botti lisäsi: uk:Псевдокод |
|||
Rivi 1:
'''Pseudokoodi''' on tietojenkäsittelytieteessä [[ohjelmointikieli|ohjelmointikielen]] tapaista koodia, jonka tarkoituksena on piilottaa eri ohjelmointikielten väliset [[syntaksi]]erot ja jättää jäljelle vain [[algoritmi]]n perusrakenne. Tämän etuna on se, että eri ohjelmointikielten taitajat pystyvät keskustelemaan keskenään ohjelmistojen algoritmeista, vaikka he eivät olisi koskaan tutustuneet toistensa käyttämiin ohjelmointikieliin. Lisäksi pseudokoodi useimmiten myös helpottaa algoritmin tila- ja suoritusaikavaatimusten analysointia, sekä algoritmin oikeellisuuden toteamista. Pseudokoodin avulla voidaan keskittyä algoritmin loogiseen toimintaan sivuuttaen kielikohtaiset yksityiskohdat. Esimerkiksi
<code>readfp(fdesc, 1024, "\n");</code>
Varsinaista pseudokoodistandardia ei ole, ja jopa yliopistojen tietojenkäsittelytieteen laitosten eri kursseilla saattaa törmätä erilaisiin notaatioihin kurssista riippuen. Yleensä pseudokielessä käytetään [[ALGOL|Algoliin]] perustuvaa [[Pascal (ohjelmointikieli)|Pascal-]]
Pseudokielinen esimerkki [[kuplalajittelu]]algoritmista:
function lajittele( lista L )
endfunction
Rivi 27:
* Vältä monimutkaisia ehtorakenteita ja algoritmin katkaisevia ''return''-avainsanoja. [[Invariantti|Invarianti]]n ajattelu voi olla hyödyllistä algoritmin selkeyttämiseksi.
* Älä käytä C/Java-tyylistä matalan tason for-lausetta, vaan kirjoita mieluummin <tt>'''for each''' alkio '''in''' joukko</tt>.
* Merkitse kokonaislukujako selkeästi,
* Käytä matemaattisia merkintöjä kuten summaa, jos ne ovat selkeämpiä.
== Pseudokoodityylejä ==
=== C-tyyli ===
C-tyylinen pseudokoodi käyttää hyväkseen C-tyylisten kielien laajaa levinneisyyttä: ne ovat tuttuja lähes kaikille. Vaarana on, että noudatetaan C:n syntaksia liian kirjaimellisesti selkeyden kustannuksella, ja unohdetaan muotoilla teksti vapaasti. Tyyppien esittelyt, puolipisteet, aaltosulut ja matalan tason for-lause voivat tehdä algoritmista vaikeammin luettavan.
'''int''' etsi(var A[], var k) {
}
}
=== Introduction to Algorithms ===
Suositussa kurssikirjassa ''[[Introduction to Algorithms]]'' käytetty pseudokoodityyli on saavuttanut jokseenkin vakiintuneen aseman algoritmien kuvauksessa korkeakouluissa, ja sen kirjoittamiseksi on laadittu useampikin [[LaTeX|LaTeX-]]
Tyyli yhdistää melko matemaattisen merkintätavan sisennyssääntöön ja sijoitusnuoleen. Sana ''do'' rivin alussa tekee sisennyksestä hieman epätasaista. Indeksit alkavat yhdestä eivätkä nollasta. Tietueen jäseniä noudetaan kuin taulukon alkioita, mikä saattaa hämätä lukijaa: ''size''[''T''] on tietueen T jäsen, ''T''[3] on taulukon T indeksi.
Etsi(''A'', ''k'')
=== Englanninkielisen Wikipedian matalan tason pseudokoodisuositus ===
'''function''' etsi(A, k) '''is'''
'''end function
Pelkkä sisennyskin riittää, eivätkä ''is'', ''do'' ja ''then'' ole niin tärkeitä:
'''function''' etsi(A, k)
{{Tynkä/Ohjelmointi}}
|