Tieteellinen laskenta I (Scientific Computing I)
|
|
|
- Sakari Penttilä
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 Tieteellinen laskenta I (Scientific Computing I) koodi: 53398, laajuus: 5 op
2 Johdanto Johdanto Klikkaa tätä www merkkiä Pääset siinä mainitun aiheen www-sivulle Kurssin kotisivu www Kurssin aikataulu www Luennot, Physicum D101 Ma Laskuharjoitukset, Physicum D208 Ryhmä 1: Ti Ryhmä 2: Ti Ryhmä 3: Ti Luennoija Lauri Jetsu Assistentit Olli Wilkman Otto Solin Pekko Metsä Joonas Kylliäinen Ville Jantunen Eero Esko
3 Tavoite Tavoite Kurssi mahdollistaa uran alun Opitte perusteet seuraavista linux käyttöjärjestelmä emacs tekstieditori LAT E X ladontaohjelma python ohjelmointikieli octave ohjelmointikieli ISI, arxiv, ADS,... tietokannat Näitä sovelletaan 12 harjoituksessa Osaamisen arvioiminen kynällä ja paperilla (s.o. kokeella) hankalaa Kotisivulla paljon linkkejä sopivaan itseopiskelu materiaaliin Fysiikan tieteelliset metodit opetetaan muilla kursseilla Metodi esimerkit: Pienimmän neliösumman sovitus, Rayleigh testi ja Tehospektri Google image haku: linux emacs latex python octave comics
4 Lähtökohta ja suorittaminen Lähtökohta Törmäätte tähän ensi kertaa Aloitetaan aivan alusta Keskitytään tekemiseen Määrä ei korvaa laatua Parempi oppia vähän, mutta perusteellisesti Vaara: Saman kurssin vaatimukset kasvavat sitä mukaan, kun luennoitsija itse ymmärtää asioita Vaara: Pienryhmät ( ) Massaopetus (2015 ) lasten taudit Suorittaminen: 5 op Luennolla läsnäolo vapaaehtoista Asioita kokeillaan luennoilla Joka luennon alussa samat rutiinit Jokainen oppii perusteiden perusteet Spiraali 6 tason A, B, C, D, E ja F kautta Tarjolla 6 vapaaehtoista harjoitusta Suoritettava 6 pakollista harjoitusta
5 TE = Laskuharjoitustehtävät, VA = VApaaehtoinen, PA =PAkollinen Tehtävät palautettava viimeistään 4 vrk ennen laskuharjoitusta Palautuksen takaraja tänä vuonna: Perjantaina viimeistään kello 16.00! Pakollisten tehtävien vastausaika on 12 päivää! Ei poikkeuksia takarajasta, koska assistentin tarkistettava noin 100 tehtävää 4 vrk:ssa Palautus: Omalle assistentille sähköpostin liitetiedostona Luento Luennon aihe Laskuharjoitus 1. Kappale: Johanto A:TE jaetaan 2. Kappale: A1 VA Ratkotaan A:TE tapaisia tehtäviä 3. Kappale: A2 PA A:TE tarkistetaan, B:TE jaetaan 4. Kappale: B1 VA Ratkotaan B:TE tapaisia tehtäviä 5. Kappale: B2 PA B:TE tarkistetaan, C:TE jaetaan 6. Kappale: C1 VA Ratkotaan C:TE tapaisia tehtäviä 7. Kappale: C2 PA C:TE tarkistetaan, D:TE jaetaan 8. Kappale: D1 VA Ratkotaan D:TE tapaisia tehtäviä 9. Kappale: D2 PA D:TE tarkistetaan, E:TE jaetaan 10. Kappale: E1 VA Ratkotaan E:TE tapaisia tehtäviä 11. Kappale: E2 PA E:TE tarkistetaan, F:TE jaetaan 12. Kappale: F1 VA Ratkotaan F:TE tapaisia tehtäviä 13. Kappale: F2 PA F:TE tarkistetaan, Pakollinen palaute 14. Kappale: Yhteenveto
6 Suoritusten arvostelu Arvostelu Vapaaehtoinen TE sisältää kolme tehtävää Ei vaikuta arvosanaan, vaikka arvostellaan ja esitetään malliratkaisut kuten pakollisissa Vapaaehtoinen laskuharjoitus = Laskupaja Palautetta & apua pakollisen suorittamiseen Pakollinen TE sisältää kolme tehtävää. Arvostelu: Tehtävistä saa 0, 1 tai 2 pistettä 0 = Ei mitään tolkkua 1 = Jotain tolkkua 2 = Oikein tai lähes oikein Maksimipisteet: 6 TE x 6 pistettä/te = 36 pistettä Arvosana Sovelletut rajat % 1/ % 2/ % 3/ % 4/ % 5/
7 Suoritusten arvostelu Pakolliset laskuharjoitukset Ei koetta Pakolliset laskuharjoitukset 6 X 45 min = 4.5 tuntia koko kurssin aikana Kaikkien läsnäoltava! Tehtävät palautettu perjantaina Arvostellaan ennen tiistain harjoitusta Ensimmäinen tehtävä: Arvotaan noin joka kolmas Assistentit kiertävät luokassa (10min) Kertomus: Mitä olen tässä tehnyt? Kertomus korvaa kokeen Kertomus ei muuta arvostelua Kannattaa kysyä/kertoa: Nyt en ymmärrä... Esitetään malliratkaisu (5min) Seuraava tehtävä: Arvotaan... Odotusarvo: Jokaiselle yksi kertomus/harjoitus
8 Periaatteista ja asenteesta Periaatteista ja asenteesta Rohkaistaan opiskelijoiden väliseen yhteistyöhön, mutta ei yksi yhteen kopiointiin Assitentin velvollisuutena on kysyä mistä tahansa tehtävän yksityiskohdasta Kysymällä assistentilta oppii. Käytetään tauluja ja muuta rekvisiittaa Kurssi muistuttaa ajokortin suorittamista. Perusteiden hallinta helpottaa opintoja Asenne: En tiedä miten? Otan itse selvää! Asenne: En muista miten? Kerran ratkaistu OK! Asenne: Kukaan ei voi olla elävä manuaali Kokemus: idl (25 vuotta), LAT E X (25 vuotta) emacs (15 vuotta), python (muutama vuosi), octave (muutama kuukausi) Kokemus: En ollut koskaan tarvinnut (EnOlKoTa) edes 50% luennoilla esitetyistä asioista ennen kuin aloin luennoida niistä vuonna 2010 Johtopäätös: Mitä olen ainakin tarvinnut? Suositus: Käytännön harjoittelu mistä tahansa löytyvistä esimerkeistä Perusteet opittuaan voi valita oman tiensä
9 Opiskelijan ja/tai tutkijan urasta Opiskelijan ja/tai tutkijan ura LuK-tutkinto vuotta FM-tutkinto vuotta lisää FT-tutkinto vuotta lisää Tutkijatohtori, Nuorempi tutkija, tms vuotta lisää Yliopistonlehtori, Vanhempi tutkija, tms seuraavat n 35 vuotta Professori, Tutkimusjohtaja, tms seuraavat n 30 vuotta Mitä opiskelijoiden ja/tai tutkijoiden pitää muun muassa osata? Oppilas ja opettaja (asiantuntijataidot, pedagogiset taidot, esiintyminen) Tutkijakoulutettava ja tutkija (tieteellinen kirjoittaminen, tiedonhankinta) Opinnäytteet ja julkaisut (tieteellinen kirjoittaminen, tiedonhankinta) Ohjattava ja ohjaaja (tieteellinen kirjoittaminen, pedagogiset taidot) Rahoituksen hankinta (tieteellinen kirjoittaminen, viestintätaidot) Johtaminen (ihmisiä, yksiköitä, projekteja, prosesseja, sosiaaliset taidot) Viestintä (esiintyminen, tieteellinen kirjoittaminen, popularisiointi)
10 Miksi suurin osa työajasta tietokoneen ääressä? Mihin opiskelija/tutkija tietokoneita tarvitsee? Nykyisin kuulee enää harvoin: Tehdäänkö heti vai tietokoneella? www Harva ongelma selviää päässä laskulla tai paperilla laskettuna Havainnot & mittaukset Suunnittelu, tekeminen, käsittely, simulointi,... Teoria Mallintaminen, simulointi, numeron murskaus,... Julkaisut, Oppimateriaali Laadinta, tiedonhankinta, tietokannat,... Perusteet tunnettava: Käyttöympäristö (linux), Editointi (emacs), Julkaisun laadinta (LAT E X), Ohjelmointi (python, octave) ja Tietokannat (ISI, ADS,...) Google haku: wasting time with a computer?
11 Johdanto: linux linux Mikä on linux? www Käyttöjärjestelmä: Kehittynyt unix-käyttöjärjestelmästä ( Linus Torvalds, 1991: linux ydin, engl. kernel) linux kotisivulla www löytyy kaikenlaista tarpeellista tietoa Lähdekoodi vapaa, kehitetään jatkuvasti Säästää rahaa, aikaa ja vaivaa Ilmaiset ohjelmointityökalut oletusasennuksessa Suosittu luonnontieteissä Supertietokoneet: linux tai unix Tärkeää osata ohjelmoida ja ajaa omia ohjelmiaan Monia tutkimuksessa tarvittavia ohjelmapaketteja ei saa Windows:lle linux: Haittaohjelmia on vähän linux: Käyttäjä ei pääse käsiksi järjestelmän tai saman koneen muiden käyttäjien tiedostoihin Opiskelijoille hankittujen tietokoneiden käyttöjärjestelmä on linux Tällä kurssilla opetellaan linux:n käyttöä!
12 Johdanto: emacs emacs Mikä on emacs? www (emacs kotisivu www ) Tekstieditori, jolla editoitte emacs:lla tällä kurssilla erityisesti: L A T E X tekstitiedostoja *.tex, python ohjelmatiedostoja *.py, octave ohjelmatiedostoja *.m, missä * on tiedoston nimi TAPA 1: Editoidaan emacs jotain.py Return Komentotulkki ei jäänyt käyttöön Kirjoitetaan tiedostoon jotain.py ensimmäinen rivi: print( jotain ) Tallennetaan tiedoston sisältö: ctrl + x, ctrl + c Vastataan y Ajetaan ohjelma komentotulkissa komennolla python jotain.py Return TAPA 2: Editoidaan emacs jotain.py & Return Komentotulkki jäi käyttöön Kirjoitetaan tiedostoon jotain.py toinen rivi: a=1 ; print(a) Tallennetaan tiedoston sisältö: ctrl + x, ctrl + s Editori jäi käyttöön Ajetaan ohjelma komentotulkissa komennolla python jotain.py Return Käyttämällä TAPA 2:ta voidaan jatkaa ohjelman jotain.py editointia toivottuun muotoon ja välillä testata ohjelman toimivuutta ajamalla sen viimeisintä tallennettua versiota Milloin kannattaa tiedostoa tallennettaessa ctrl + x, ctrl + c kannattaakin vastata n? Tallennetaan vahingossa väärä versio *.* Etsitään aiempi tallennettu versio *.* Eräs emacs pikaopas www, missä M = Alt ja C = Ctrl EnOlKoTa
13 Johdanto: latex L A T E X Mikä on L A T E X? www (LAT E X kotisivu www ) (kuva:@tex.stackexchange.com) Ladontaohjelma: Julkaisujen, kirjojen,... tms materiaalin laadintaan Kirjoittaja editoi sisällön eli substanssin emacs *.tex & Return Lopullinen ulkoasu linux komennoilla latex * Return dvips * -o Return *.ps muoto pdflatex * Return *pdf muoto latex2html versio www html muoto EnOlKoTa Merkittävimmät julkaisusarjat käyttävät L A T E X:a (Esimerkkejä: fysiikka www, tähtitiede www ) Tarkasti määritellyn formaatiin mukainen dokumentti: julkaisu, kirja, opinnäyte,... Kaikki mahdolliset tekstin formaatit. Kaavat, taulukot, kuvat ja viitteet suhteellisen helposti Loputtomasti valmiita paketteja komennolla \usepackage{paketin nimi} eri tehtäviin
14 Johdanto: ISI, ADS, arxiv, SIMBAD,... ISI, ADS, arxiv, SIMBAD Mitä ovat ISI www, ADS www, arxiv www,...? Tietokantoja (Ilmaisia) JULKAISUT: koko sisältö, tekijät, lähteet, aiheet, viittaukset (engl. citation index ) www, data, kohteet, muuta (esim. metadata ) ISI (Web of Science): lähes kaikki tieteet ADS: tähtitiede, fysiikka,... arxiv: fysiikka, matematiikka,... Submitted! SIMBAD www : Tähtitieteen kohteista julkaistu Kurssilla: Ei käydä läpi fysiikan tietokantoja Tavoite 1: Opetellaan etsimään tarvittavaa informaatiota muutamasta ym. tietokannasta Tavoite 2: Opitaan Bibtex entry for this abstract tiedon käyttö L A T E X:ssa DATA: Laitteet, satelliitit, teleskoopit,... Omat tietokantansa (Esimerkiksi CDS www ) JULKAISEMINEN: Tieteelliset julkaisusarjat, kirjat,... Omat tietokantansa (Esimerkiksi Advances in Physics www, jolla oli korkein impact factor www fysiikassa vuonna 2013) Julkaisusarjojen kotisivuilla valmiit L A T E X makrot (Esimerkiksi American Geophysical Union: Latex Templates www ). Kotisivuilta voi hakea kaiken tarvittavan esim. wget komennolla
15 Johdanto: python python Mikä on python? www (python kotisivu www ) (kuva:@ Ohjelmointikieli Ilmainen: Saatavilla kaikille yleisimmille käyttöjärjestelmille (linux, Windows, Mac,...) Interaktiivinen komentotulkki python Return Kurssilla: Editoidaan emacs *.py & Return Kurssilla: Ajetaan python *.py Return Suosittu fysiikassa, tähtitieteessä,... Suhteellisen helppo oppia 80 tuntia päätä seinään Monipuolinen: paljon valmiita ohjelmistopaketteja Numpy www, Scipy www, Pylab, ipython www, Monissa ohjelmistoissa on python rajapinta (engl. interface). Esimerkiksi PyRAF tähtitieteessä www python voidaan yhdistää muihin ohjelmointikieliin Kovaa numeron murskausta vaativat laskennnan osat ohjelmoidaan toisella tehokkaammalla ohjelmointikielellä, kuten C, FORTRAN,...
16 Johdanto: octave octave Mikä on octave? www (octave kotisivu www ) (kuva:@ Ohjelmointikieli Ilmainen: octave kehitetty toimimaan linux:ssa Saatavissa toimimaan myös Windows www ja Mac www käyttö järjestelmissä octave lähes yksi yhteen maksullinen MATLAB www Interaktiivinen komentotulkki octave Return Kurssilla editoidaan emacs *.m & Return Kurssilla ajetaan octave *.m Return Suosittu ainakin HY:n fysiikassa octave ehkä hiukan helpompi oppia kuin python Noin 60 tuntia lisää päätä seinään
17 Johdanto: Oma ja muut koneet Johdanto: Oma ja muut koneet Johdanto: Oma ja muut koneet Yhteys omaan koneeseen Kysyy avatessa salasana Yhteys Fysiikan laitoksen koneisiin ssh -X login.physics.helsinki.fi missä username on käyttäjätunnus Kysyy salasanaa Päädytte hakemistoon /home/username Tarkistakaa yhteyden toimiminen Yhteys tarvitaan, kun opetellaan tiedostojen siirtoa koneesta toiseen koneeseen Harjoitelkaa kurssilla käsiteltyjä asioita omalla ja muilla linux koneilla Varmuuskopiot oman koneen hakemistosta /home/username/ komennolla scp -r * koneennimi:/home/username/
18 A1: linux A1: linux A1: linux Tavoite: Kaikki oppivat linux:n perusteet Perusteet jo tutut Paikalla ainoastaan pakolliset harjoitukset (6 x 45 minuuttia) Yksi monista linux alkeisoppaista www linux: Komentotulkki Suorittaa käyttäjän terminaalilta kirjoittamia, komentoja, joita voi selata nuolinäppäimillä ja, sekä täydentää näppäimellä Jokainen komento tekee yhden asian hyvin: tulostus, tiedon siirtäminen, verkkoyhteys,.. Hyvin riippuu käyttäjästä, koska valinnanvaraa on loputtomiin Asioita ei tarvitse keksiä uudelleen. Vain pieni osa komennoista opeteltava ulkoa sujuvaa käyttöä ajatellen Käytännössä: Opeteltava yksi komento kerrallaan, s.o. mitä milloinkin sattuu tarvitsemaan Käytännössä: Monimutkaisemmat komennot kannattaa kirjoittaa muistiin tai ohjelmiin, koska vie aikansa ymmärtää ne ja saada ne toimimaan. Asenne: En muista...? Kerran ratkaistu OK!
19 A1: linux A1: linux Hakemistot linux komennoissa isot ja pienet kirjaimet merkittäviä (case sensitive) Kokeile komentoja pwd Return ja PWD Return ja PwD Return Käyttäjän kotihakemisto on /home/username/ Kotihakemiston pääsee mistä tahansa muusta hakemistosta komennolla cd Return Kotihakemiston voidaan lyhentää merkillä eli sinne pääsee myös komennolla cd Return Kotihakemistoon luodut hakemistot ja tiedostot kuuluvat käyttäjälle Kotihakemisto on käyttäjän henkilökohtainen työtila koneella linux:n tiedostorakenne on kuin puun (engl. directory tree). Sen juuri (engl. root) on hakemisto /. Juureen pääsee komennolla cd /. Return Tavallinen käyttäjä ei siellä tosin tee mitään? Käyttäjän oikeudet hakemistopuussa kotihakemiston ulkopuolella oleviin hakemistoihin ja tiedostoihin on tarkkaan rajattu Erilliset kiintolevyt ja muut vastaavat ovat osa hakemistopuuta, eivätkä ulkoisesti eroa hakemistoista
20 A1: linux A1: linux Hakemistot Tästä lähtien sanaa komento käytetään säästeliäästi, koska komennot pyritään kirjoittamaan violetilla. cd Return siirtää kotihakemistoon Fuksiläppärissä komentoltulkkiin ilmestyy $ pwd Return tulostaa /username/home/ pwd Return kertoo työhakemiston eli hakemiston jossa työskentelet nyt. Sen lyhenne on./ ls Return listaa työhakemiston sisällön eli saman tuloksen antaa siis myös ls./ Return Kaikkia tiedostoja ei kannata luoda kotihakemistoon. Tiedostot kannattaa luoda / jaotella / sijoittaa / siirtää... eri hakemistoihin esimerkiksi aiheen mukaan: linux, latex, ohjelmat,... Komennolla mkdir luodaan hakemistoja. Esimerkiksi mkdir ohjelmat Return luo työhakemistoon uuden hakemiston./ohjelmat/ cd kohdehakemisto siirtää työhakemistosta hakemistoon./kohdehakemisto Esimerkiksi yllä annettujen komentojen jälkeen cd ohjelmat Return siirtää työhakemistosta äsken luotuun uuteen hakemistoon./ohjelmat/
21 A1: linux A1: linux Hakemistot Absoluuttinen polku ilmaisee tiedoston tai hakemiston sijainnin hakemistopuussa juuresta lähtien. Esimerkiksi seuraavasti /home/username/kurssit/ Tähän hakemistoon voi siirtyä mistä tahansa työhakemistosta komennolla cd /home/username/kurssit/ Return Suhteellinen polku ilmaisee tiedoston tai hakemiston sijainnin hakemistopuussa työhakemistosta lähtien. Esim: Jos työhakemisto on /home/username/, riittää komento cd kurssit/ Return siirtymiseen hakemistoon /home/username/kurssit/ Esim: Jos työtiedosto on /home/username/, riittää komento cd.. Return siirtymiseen hakemistoon /home/ Esim: Jos työtiedosto on /home/username/ riittää komento ls./kurssit/ Return listaamaan hakemiston /home/username/kurssit/ sisällön clear Return tyhjentää linux komentotulkin näytön
22 A1: emacs A1: emacs A1: TAPA 2: Tiedoston nimi editointi komennolla emacs nimi & Return linux komentotulkki jää käyttöön Näyttöön ilmestyy editorin ikkuna Tiedostoon voi kirjoittaa... Tallennus Ctrl + x Crtl + s Sovellutuksia voi ajaa latex nimi.tex Return python nimi.py Return octave nimi.m Return samalla, kun editoi tiedostoa nimi toivottuun muotoon Tärkeimmät näppäimet Ctrl Alt emacs Pikaopaassa www M = Alt ja C = Ctrl
23 A1: emacs A1: emacs A1: emacs emacs on L A T E X, python ja octave ystävällinen tekstieditori Kopioidaan wget komennolla tiedosto A2bkesken.tex kurssin kotisivulta komennolla wget jetsu/tila/a2bkesken.tex Opetellaan samalla wget komennon ja Copy Link Location sujuva yhdistäminen Aloitetaan editointi emacs A2bkesken.tex & Return Tätä tiedostoa voi editoida kuten tahtoo. Alkuperäisen voi hakea aina uudestaan kotisivulta emacs: Näyttää kursorin rivinumeron. Kursori hyppii välillä. L A T E X komennot eri värisiä,... Editoidaan virhe mielivaltaisella rivillä emacs ilmoittaa virheestä (huom: ei aina) Tallennetaan virhe siitä huolimatta Ajetaan latex A2bkesken.tex Return L A T E X ilmoittaa millä A2bkesken.tex rivillä virhe on Voidaan löytää ja korjata virhe Pharjoitus4.py kotisivulta emacs Pharjoitus4.py & Return Kursori pomppii, värejä, tabulaattori tuntee ohjauskomennot, virhe... python Pharjoitus4.py Return... python ilmoittaa... Voidaan löytää ja korjata virhe Oharjoitus5.m kotisivulta emacs Oharjoitus4.m & Return Kursori pomppii, virhe... octave Oharjoitus4.m Return... octave ilmoittaa virheen rivin
24 A1: latex A1: L A T E X L A T E X dokumentin tuottaminen Kopioidaan A2bkesken.tex kotisivulta Käytetään linux komentotulkissa yhtä aikaa emacs ja evince ikkunaa ja ajatetaan L A T E X komentoja emacs A2bkesken.tex & Return latex A2bkesken Return dvips A2bkesken -o Return evince A2bkesken.ps & Return latex kääntää.tex tiedoston. dvips luo.ps tiedoston. evince www näyttää lopputuloksena syntyvän.ps tiedoston, jota voi lukea, tulostaa,... Yksi monista vaihtoehtoisista tavoista: emacs A2bkesken.tex & Return pdflatex A2bkesken Return evince A2bkesken.pdf & Return pdflatex kääntää.tex tiedoston, evince näyttää.pdf tiedoston, jota voi lukea,...
25 A1: latex L A T E X syötetiedoston rakenne L A T E X syötetiedostojen rakenne L A T E X syötetiedosto alkaa määrittelemällä toivotut optiot (loputtomasti vaihtoehtoja) \documentclass[optiot]{luokka} \usepackage[optiot]{paketti} \usepackage[optiot]{paketti}... \begin{document}...tekstiä... \end{document} Esimerkiksi kotisivun L A T E X syötetiedosto A2bkesken.tex alkaa riveillä % Latex ohittaa kaiken, mikä on merkin "%" oikealla puolella \documentclass[a4paper,10pt]{article} % Dokumentin muoto... \usepackage[english]{babel} % Paketti: skandeille ä,ö, \usepackage[utf8]{inputenc} % -"- : -"-... \begin{document} % Dokumentti alkaa... Tässä dokumentissa toimivat skandit: \\ Älyköt öisin ihmettelevät, miksi \LaTeX ~tökkii. Komentit alkavat L A T E X ohjausmerkillä%. Sen voi kirjoittaa tekstissä komennolla \% Muita erikoismerkkejä ovat\ # $ & _ ˆ { } Nämä erikoismerkit ohjaavat L A T E X ladontaohjelmaa. Koettakaa ottakaa itse selvää, kuinka ne voidaan kirjoittaa L A T E X dokumentin sisään, s.e. ne tulostuvat pelkkänä tekstinä kuten yllä
26 A1: tietokannat Tietokannat Tietokannat Ongelma: Joku Cubarsi on kirjoittanut jotain tähteen Sirius liittyvää vuonna 2014? Pitäisi löytää, lukea ja referoida sitä tulevassa artikkelissa Etsitään SIMBAD www : tietokannasta tietoa tähdestä Sirius Klikataan Display reference summary ja löydetään CUBARSI R. 2014A&A..561A.141C Klikataan send the bibcodes to ADS ja etsitään Cubarsi,... klikataan 2014A&A...561A.141C Etsitään ja klikataan Bibtex entry for this abstract ja author = {{Cubarsi}, R.}, title = "{Conditions of consistency for multicomponent axisymmetric stellar systems. Is an axisymmetri journal = {\aap}, keywords = {galaxies: kinematics and dynamics, solar neighborhood, galaxies: statistics}, year = 2014, month = jan, volume = 561, eid = {A141}, pages = {A141}, doi = { / / }, adsurl = { adsnote = {Provided by the SAO/NASA Astrophysics Data System} } emacs lahteet.bib & Return Kopioidaan hiirellä kaikki tuo tiedostoon lahteet.bib Kaikki tarkoittaa tässä jokaista merkkiä väliltä c ARTICLE{ ja yksinäinen }... Tähän artikkeliin viittaamista jossain L A T E X dokumentissa harjoitellaan myöhemmin
27 A1: tietokannat Ohjelmointi - perusteet Ohjelmoinnissa tarvitaan Tekstieditori ohjelmien lähdekoodin laadintaan: Tällä kurssilla emacs Kääntäjä: Kääntämään lähdekoodin koneen ymmärtämään muotoon Tällä kurssilla kahden ohjelmointi kielen alkeet: python ja octave Eräs monista python oppaista www Eräs monista octave oppaista www Ohjelmien lähdekoodi koostuu Muuttujista: www Muuttuvia suureita, kuten lukuja, tekstinpätkiä,... (Esimerkiksi a=1) Funktioista, aliohjelmista: www Ottavat vastaan muuttujia. Tekevät niiden avulla jotain toivottua. Luovat ja palauttavat uusia muuttujia,... (Esimerkiksi: b=cos(a)) Ohjausrakenteista: www Ohjaavat ohjelman toimintaa. Käskevät esimerkiksi toistamaan tiettyä ohjelman kohtaa useita kertoja (Esimerkiksi: for...) tai valitsemaan useista mahdollisista suorituspoluista vain yhden (Esimerkiksi: if... elseif)
28 A1: octave python ja octave python python Return käynnistää python komentotulkin >>> Poistuminen: >>> Crtl + d Kolme tapaa ajaa ohjelmia 1: linux komentotulkissa python file.py Return 2: python komentotulkissa >>> import os Return >>> os.system( python file.py ) Return 3: file.py:n ensimmäisenä rivinä #!/usr/bin/env python linux komentotulkissa./file.py Return Jos ei toimi? chmod u+x file.m Return Tällä kurssilla: 1. vaihtoehto octave octave Return käynnistää octave komentotulkin octave:*> Poistuminen: octave:*> exit Kolme tapaa ajaa ohjelmia 1: linux komentotulkissa octave file.m Return 2: octave komentotulkissa octave:*>file Return 3: file.py:n ensimmäisenä rivinä #!/usr/bin/env octave linux komentotulkissa./file.m Return Jos ei toimi? chmod u+x file.m Return Tällä kurssilla: 1. vaihtoehto Rivi 1: #!/usr/bin/env... vain malliohjelmissa Pharjoitus1.py ja Oharjoitus1.m
29 A1: octave python ja octave python python komentotulkissa >>> help( import ) Return kertoo mitä komento import tekee python komentotulkissa >>> help() Return vie interaktiiviseen python manuaaliin Jotkin ongelmat voivat johtua versiosta, jonka saa selville komennolla python - -version Return Esimerkiksi python litania >>> import os >>> os.system( python file.py ) korvasi python komennon >>> execfile( file.py ) octave octave komentotulkissa octave:*>help disp Return kertoo mitä komento disp tekee octave komentotulkissa octave:*>doc Return pitäisi viedä interaktiiviseen octave manuaaliin Myös tämä ongelma voi johtua versiosta, jonka saa selville komennolla octave - -version Return Käytännösssä python & octave komentojen sopivia muotoja mihin tahansa tarkoitukseen kannattaa etsiä useista manuaaleista ja webistä
30 A1: octave python ja octave python python komentotulkissa >>> aa=2 Return >>> Aa=1 Return >>>print(aa-aa) Return python: Case sensitive >>>ä=9 Return Onnistuu python :ssa Ei onnistunut python :ssa Monet ongelmat vältetään, kun ei käytetä skandeja, edes # merkin jälkeen >>> print(aa-aa) Return Kaatuu! Eli python:ssa myös tyhjillä merkkeillä merkitystä octave octave komentotulkissa octave:*>aa=2; Return octave:*>aa=1; Return disp(aa-aa); Return octave: Case sensitive Kokeile mitä tapahtuu ilman ; merkkiä ä=9; Return Ei onnistu octave :ssa Monet ongelmat vältetään, kun ei käytetä skandeja octave:*> disp(aa-aa); Return Ei kaadu! Eli octave:ssa tyhjillä merkkeillä ei merkitystä
31 A1: octave Ensimmäiset ohjelmat Ensimmäiset ohjelmat python: 1. ohjelma #! / usr / bin / env python # K o m e n t t i r i v i : Tama on ohjelmani P h a r j o i t u s 1. py p r i n t ( " Hello world! " ) python: Sama tulos print("hello") ja print( Hello ), s.o tai Kaikissa ohjelmatulostuksissa selventää, että kyseisessä kohdassa on yksi tyhjä merkki octave: 1. ohjelma #! / usr / bin / env octave # K o m e n t t i r i v i : Tama on octave ohjelmani Oharjoitus1.m clear # Poistetaan mahdollinen aiempi i n p u t.. disp ( Hello now world ) octave: Sama tulos disp("hello") ja disp( Hello ), s.o tai clear hävittää octave:ssa aiemmat muuttujat yms. Kertausta: clear Return tyhjentää näytön linux komentotulkissa»> import os ; os.system( clear ) tyhjentää näytön python komentotulkissa octave:*> clc tyhjentää näytön octave komentotulkissa python & octave: kommenttirivit alkavat merkillä #. Käytä niitä ohjelman selkeyttämiseen
32 A2: linux linux linux: rm, cp, mv ls Return listaa työhakemiston sisällön ls.dat Return tulostaa kaikki työhakemiston.dat loppuiset tiedostot merkki on jokeri cp nimi1 nimi2 Return kopioi työhakemiston tiedoston nimi1 työhakemiston tiedostoksi nimi2 mv nimi1 /home/username/hakemisto1/ Return siirtää työhakemiston tiedoston nimi1 hakemistoon /home/username/hakemisto1/ jos kyseinen hakemisto on jo olemassa Tämän jälkeen työhakemistossa ei ole tiedostoa nimi1 rm nimi Return tuhoaa työhakemistosta tiedoston nimi rmdir nimi Return tuhoaa työhakemistosta hakemiston nimi, jos hakemisto on tyhjä touch nimi Return luo työhakemistoon tyhjän tiedoston nimi touch /home/username/hakemisto1/nimi Return luo tyhjän tiedoston hakemistoon /home/username/hakemisto1/, jos kyseinen hakemisto on jo olemassa Laskuharjoitus A1a: Luodaan tiedostoja ja hakemistoja. Laskuharjoitus A2b: Tuhotaan niitä
33 A2: emacs emacs emacs: Peruskomentoja Pikaopas www Kertaus: Mikä Ctrl + x, Ctrl + c tai Ctrl + x, Crtl + s ero? Kts editorin yläpalkki: File wget komennolla A2bkesken.tex kotisivulta. Voidaan editoida miten tahansa, koska...? emacs A2bkesken.tex & (Tätä tiedostoa editoidaan laskuharjoituksessa A2b) Ctrl + s Kysyy I-search: Mitä etsit? Vastataan öt Return Toistamalla Ctrl + s löydät öt merkit kursorista eteen päin yksi kerrallaan Voit lopettaa etsinnän muuttamatta tiedostoa painamalla mitä tahansa näppäimista,, tai Ctrl + r etsii samalla tavalla tiedostosta merkkejä kursorista taakse päin Kuljeta kursori jonnekin keskelle tiedostoa A2bkesken.tex ja paina Crtl Spacebar Siirry tiedostoa ylös tai alas näppäimillä tai Osa tiedoston A2bkesken.tex riveistä tulee merkityksi Paina Ctrl + w Merkitty alue katosi Siirrä kursori toiseen paikaan tiedostoa ja paina Ctrl + y Kadonnut alue palasi tähän kohtaan tiedostoa Sama toiminto: Merkitään hiirellä Edit valikosta Copy Valitussa kohdassa Paste Sama toiminto: Merkitään hiirellä. Edit valikosta Cut Valitussa kohdassa Ctrl + y Sama toiminto: Merkitään hiirellä. Valitussa kohdassa klikataan hiiren keskeltä Johtopäätös: Jokainen päättää itse, mitkä kaikki emacs komennot opettelee (ulkoa?) Kertaus: emacs pieleen Tallennus vahingossa Poistu tallentamatta emacs
34 A2: latex L A T E X: perusteita L A T E X: perusteita (kuva:@play.google.com) L A T E X: ohittaa välilyönnit tai kommmentit merkin % jälkeen Yksi tai monta tyhjää riviä Uusi kappale Erikoismerkit \ # $ & _ ˆ { } varattuja. Ohjaavat ladontaa. Kaikki paitsi \ ja voi kirjoittaa komennolla \verb *, missä * on erikoismerkki Esimerkiksi \verb # tulostaa # Erikoismerkki $ rajaa matemaattisen merkinnän Esimerkiksi $a^{b + c}_{d+e}$ tulostaa a b+c d+e. Tekstin sisällä: esimerkiksi \% tulostaa % Jotkut komennot vaativat parametreja: Pakolliset { ja } väliin. Valinnaiset [ ja ] väliin Esimerkiksi \documentclass[a4paper,10pt]{article} parametri article (Pakollinen: dokumenttiluokka) ja parametri A4paper (Valinnainen: paperikoko) Dokumenttiluokkia: article, report, book, proc,... Lisäpaketteja: \usepackage[utf8]{inputenc},... Otsikkosivu: titlepage, notitlepage, Sivujenpuolisuus: twoside, oneside,... Kolumnit: twocolumn, onecolumn,... Voi määritellä omia komentoja. Esimerkiksi \newcommand{\omajuttu}{\ae\oe\ae} Komento \omajuttu tulostaa ÆŒæ
35 A2: latex L A T E X L A T E X Sivutyylejä: plain, headings ja empty Esim: \pagestyle{empty} jättää sivunumerot pois Rivien päättäminen: \\ tai \newline Sivujen päättäminen: \newpage tai \clearpage Tavutus: Englanti hyvin, Suomi: \usepackage[finnish]{babel} Sanassa toistuvia tavutus ongelmia Dokumentin alussa komento. Esim: \hyphenation{ta-vu-tus-on-gel-ma} Merkillä \- yksi ongelma dokumentin sisällä. Esim: yh\-dys\-sa\-na Tavutusesto: \mbox{sana...sanoja} Tavutus epäonnistuu Sana ylittää sivun marginaalin LAT E X varoittaa Overfull hbox Lisätään \- merkki L A T E X Kappalejako: \section{...}, \subsection{...}, \subsub... Sisällysluettelo: \tableofcontents{...} Tekstisyöte \title{elämää Ankkalinnassa} \author{leenu \and Liinu \and Tiinu} \date{ } \maketitle tuottaa tässä luentojen LAT E X ympäristössä Elämää Ankkalinnassa Leenu Liinu Tiinu
36 A2: latex L A T E X: verbatim L A T E X: verbatim Komento \verb $$%% tuottaa $$%%, koska LAT E X jättää käsittelemättä merkkien välissä olevan tekstin eli komentoja tai erikoismerkkejä ei huomioda Tekstisyöte \begin{verbatim} Mitä tahansa & _ ^ \ % Mitä tahansa & _ ^ \ % Mitä tahansa & _ ^ \ % \end{verbatim} tuottaa Mitä tahansa & _ ^ \ % Mitä tahansa & _ ^ \ % Mitä tahansa & _ ^ \ % Tätä ympäristöä voi käyttää esimerkiksi ohjelmien listaamiseen Käytetty näiden luentojen laatimiseen L A T E X: fontit, kirjasintyypit ja koot Fontti esimerkkejä \rmfamily What tuottaa What \sffamily What tuottaa What \ttfamily What tuottaa What Kirjaisin esimerkkejä \textbf Lihavointi Lihavointi \texttt Kirj...kone Kirj...kone \textit Kursiivi K ursiivi \underline Abc Abc Kirjaisin koko \tiny pientä tekstiä pientä tekstiä \Huge XYZ XYZ Muita näiden väliltä \scriptsize, \small, \normalsize,... \large, \Large...
37 A2: tietokannat Tietokannat: bibtex Tietokannat: bibtex L A T E X tunnistaa edellisellä luennolla tietokannasta haetusta tiedostosta emacs lahteet.bib lähteen 1. rivin merkeistä 2014A&A...561A.141C (engl. author = {{Cubarsi}, R.}, title = "{Conditions of consistency for multicomponent axisymmetric stellar systems. Is an axisymmetri journal = {\aap}, keywords = {galaxies: kinematics and dynamics, solar neighborhood, galaxies: statistics}, year = 2014, month = jan, volume = 561, eid = {A141}, pages = {A141}, doi = { / / }, adsurl = { adsnote = {Provided by the SAO/NASA Astrophysics Data System} } Kopioidaan A1bkesken.tex kotisivulta ja editoidaan neljä uutta riviä \documentclass{article} \newcommand{\aap}{a\&a} % uusi rivi \begin{document} This is my first latex file. I cite \cite{2014a&a...561a.141c} % uusi rivi \bibliographystyle{plain} % uusi rivi \bibliography{lahteet} % uusi rivi \end{document} Komennnot: latex A1bkesken Return, bibtex A1bkesken Return, latex A1bkesken Return, latex A1bkesken Return, dvips A1bkesken -o Return
38 A2: tietokannat Tietokannat: bibtex Tietokannat: bibtex Katsotaan lopputulosta komennolla evince A1bkesken.ps & Return Onnistuttiin siteeraamaan Cubarsia Luotiin lähdeluettelo Uusia lähteitä voi kerätä tietokannoista tiedostoon lahteet.bib ja siteerata label:n avulla Kaikki Bibtex entry:t täytyy kopioida ensimmäisestä viimeiseen merkkiin, eikä saa lisätä tai poistaa mitään Bibtex entry:ien väliltä Hyviä esimerkkejä \bibliography komennon käytöstä täältä www Loputtomasti vaihtoehtoja www Kokeile: korvaa [plain] tekstillä [alpha] ja toista edellisen sivun viisi komentoa Esimerkiksi ApJ (The Astrophysical Journal) formaatissa: \citet = Lähde ilman sulkuja = esim. Einstein (1906), \citep = Lähde suluissa = esim. (Einstein, 1906) Lauri Jetsu, Fysiikan label:n laitos, voi Helsingin muuttaa: yliopisto esimerkiksi 2014A&A...561A.141C muotoon Cub14 tiedostossa lahteet.bib ja referointi komennolla \cite{cub14}
39 A2: tietokannat Tietokannat: Bibtex Tietokannat: Bibtex LAT E X ei tunnistanut komentoa \aap tiedostossa lahteet.bib Komento määritettiin tiedoston A1bkesken.tex alussa rivillä \newcommand{\aap}{a\&a}, missä A\&A on lehdestä Astronomy & Astrophysics käytetty lyhennys \documentstyle{article} ja/tai \bibliographystyle{plain} ei tunnista \aap komentoa Useimpien lehtien makrot olisivat tunnistaneet \aap komennon ja kirjoittaneet lehden Astronomy & Astrophysics lyhenteen lähdeviitteisiin siinä muodossa, jota kyseinen julkaisusarja käyttää Yksi listaus referoiduista julkaisusarjoista käytetyistä lyhenteistä löytyy täältä www Tietokannat: Bibtex Komentoyhdistelmä latex tiedosto bibtex tiedosto latex tiedosto latex tiedosto dvips tiedosto -o voi mennä solmuun Jos alias \rm= \rm -i on voimassa, ongelma ratkeaa komennolla rm tiedosto.* Esim: tuloste rm: remove regular file tiedosto.aux? y rm: remove regular file tiedosto.bbl? y rm: remove regular file tiedosto.blg? y rm: remove regular file tiedosto.dvi? y rm: remove regular file tiedosto.log? y rm: remove regular file tiedosto.ps? y rm: remove regular file tiedosto.tex? n rm: remove regular file tiedosto.tex~? n Vastataan n vain kahteen Tulostuvat sivut voi rajata Esim: dvips -o -p3 -l5 tiedosto tiedosto.ps:ään vain sivut 3 5
40 A2: python ja octave python ja octave python Muuttuja: Olio koneen muistissa Kokeillaan python Return (jätetään >>> kirjoittamatta) Yksinkertaisin tapa luoda muuttuja on sijoitus: x=1 Return Muuttujan nimi=tunnus on x Muuttujan arvo on 1 Tyyppi on kokonaislukumuuttuja Toinen tapa on luoda tyypin avulla: x = int() Return luo tyhjän kokonaislukumuuttujan print(x) Return tulostaa arvon 0 Merkillä ; riville monta komentoa a=1;b=type(a);print(b) Return antaa arvon ja tyypin <class int > octave Kokeillaan octave Return (jätetään octave:*> kirjoittamatta) x=1 Return tulostaa x = 1 x=1; Return ; estää tulostuksen class(x) tulostaa ans = double x=[] tulostaa x = [](0x0) MatLab = Matrix Laboratory a=1;b=class(a);disp(b); Return tulostaa double Merkillä ; voidaan kirjoittaa python:ssa ja octave: komentoja samalle riville. Se estää myös octave:n ans tulostuksen Mielipide: Monta komentoa samalla rivillä on huonoa koodausta Vastaus: Luennoilla pitkäkin ohjelma saadaan näin esitettyä yhdellä sivulla
41 A2: python ja octave python ja octave python python jatkuu: jätetään myös Return kirjoittamatta x=[1,2] ; print(x[0]) tulostaa 1 eli python:ssa indeksit alkavat nollasta x=[1 2] Virheilmoitus type(x) tulostaa <class list > eli kyseessä on listamuuttujalue len(x) tulostaa 2 x=[1,2] ; y=x+1 Virheilmoitus import numpy ; x=numpy.arange(2)+1 print(x) tulostaa [1 2] Tälle muuttujalle yhteenlasku toimii y=x+1 ; print(y) tulostaa [2 3] x.size tulostaa 2 python: Muuttujien indekseistä www octave octave jatkuu... x=[1,2] toimii x=[1 2] sama tulos disp(x(0)) Virheilmoitus disp(x(1)) tulostaa 1 eli octave:ssa indeksit alkavat yhdestä class(x) tulostaa double size(x) tulostaa 1 2 eli 1 rivi ja 2 saraketta length(x) tulostaa 2 x = [1 2] ; y=x+1 tulostaa 2 3 octave: Muuttujien indekseistä www Käytännössä muuttujia, sekä niiden yhdistelmiä, on python:ssa ja octave:ssa lopputtomiin Jokainen opettelee tarpeen mukaan
42 A2: python ja octave python ja octave python a=1 ; b=1.0 ; c= ab type(a),type(b),type(c) tulostaa <type int >,<type float >,<type str > Muuttujatyypit: a = kokonaisluku = int b = reaaliluku = float c = stringi = str x=[1,[1,2],"abc"] toimii! type(x[0]) tulostaa <type int > type(x[1]) tulostaa <type list > type(x[2]) tulostaa <type str > python:ssa listat voivat sisältää lukuja, tekstiä, listoja,... Alkeet... EnOlKoTa octave a=1 ; b=1.0 ; c= ab class(a),class(b),class(c) tulostaa double, double, char Muuttujatyypit: a = reaaliluku = double b = reaaliluku = double c = string = char x=[1,[1,2],"abc] ei toimi! octave:ssa voidaan python;n listaa vastaava rakenne luoda komennolla x.a=1 ; x.b=[1,2]; x.c= ab ; disp(x) tulostaa scalar structure containing fields: a = 1 b = 1 2 c = ab Menee näpertelyksi... EnOlKoTa
43 B1: linux linux: komennoista linux Komentojen käyttö komento -opt1 -opt2 argumentti Esimerkiksi ls -s *.dat tulostaa työtiedoston.dat loppuiset tiedostot ja niiden koon Esimerkiksi ls -l *.dat tulostaa samojen tiedostojen, koon, viimeisen version ajan, yms Molemmat yhtä aikaa ls -l -s *.dat on sama kuin ls -ls *.dat on sama kuin ls -sl *.dat whatis arg lyhyt arg kuvaus man arg näyttää arg manuaalisivut info arg näyttää arg infosivut arg --help komennon opaste Kokeile whatis cp, man cp, info cp, cp --help (Poistuminen tarvittaessa: q) linux Luodaan kaksi tyhjää tiedostoa touch aaa ja touch bbb Annetaan komento cp -i aaa bbb tulostuu kysymys cp: overwrite bbb? johon voi vastata y tai n Sarkain täydentää komentoja Esimerkiksi ho tuottaa host täydentää myös tiedostojen tai hakemistojen nimiä Annetut komennot tallentuvat komentopinoon, jota voi selata nuolinäppäimillä ja Selattujen komentojen sisällä voi liikkua nuolinäppäimillä ja, sekä samalla edioida uusia merkkejä
44 B1: linux linux: komennoista linux Esimerkiksi history 10 tulostaa viimeiset 10 annettua komentoa Komennon ulosanti voidaan ohjata tiedostoon tai toiseen komentoon Esimerkki komennosta tiedostoon: ls > aaa tulostaa työhakemiston sisällön tiedostoon aaa Näin luodun aaa tiedoston voi tulostaa komennolla cat aaa Esimerkki komennosta komentoon: grep ab username/ sort - etsii hakemistosta username/ tiedostot *, joissa esiintyy merkkirivi ab Komento sort - tulostaa nämä tiedostot aakkosjärjestyksessä Useita komentoja voi siis putkittaa (engl. pipe) merkin avulla Pidempiä putkia EnOlKoTa linux Komennoilla on oletuskäyttäytyminen, jota voi muuttaa ja luoda eri muunnelmia cp file1 file2 kopioi tiedoston file1 sisällön tiedostoon file2, cp oletuskäyttäytyminen on, että file2:n päälle kirjoitetaan mitään kysymättä Komento cp -i file1 file2 kysyy cp: overwrite file2 alias cp= cp -i määrittelee uuden komennon cp, joka tekee kuten cp -i Editoidaan tiedosto emacs.myalias alias c= clear alias cp= cp -i alias rm= rm -i Ajetaan komennolla source.myalias Tämän jälkeen c tyhjentää näytön, sekä cp tai rm eivät kopioi tai tuhoa kysymättä ls -a listaa työtiedoston sisällön, mukaan lukien merkillä. alkavat tiedostot
45 B1: latex L A T E X: Matemaattiset kaavat L A T E X:Kaavat Matemaattiset kaavat rajataan merkillä $ Tekstin sisään (in line math) tarkoitetut kaavat rajataan kummaltakin puolelta $:llä Esim: tekstisyöte Mitä on $a_1 \sin{y},$ jos $a_1=7$ ja $y=89$. tuottaa Mitä on a 1 sin y, jos a 1 = 7 ja y = 89 Symbolit kursiivia: kts a 1, y yllä Luvut ja funktiot ei kursiivia: kts 7, sin yllä Kursiivin voi estää (esim: luonnon vakiot) Esim: valon nopeus $\mathrm{c}$ tuottaa valon nopeus c, mutta valon nopeus $c$ tuottaisi valon nopeus c L A T E X: Kaavat Tekstistä erottumaan (display math) tarkoitetut kaavat rajataan $$:llä Esim: tekstisyöte Mitä on $$a_1 \sin{y},$$ jos $a_1=7$ ja $y=89$. tuottaa Mitä on a 1 sin y, jos a 1 = 7 ja y = 89. Merkki _ tuottaa alaviitteen Esimi: $a_{b+c}$ tuottaa a b+c, missä { ja } rajaavat alaviitteen Esim: $a^{b+c}$ tuottaa yläviitteen a b+c Esim: $a^{b+c}_{d+e}$ tuottaa molemmat a b+c d+e
46 B1: latex L A T E X: Matemaattiset kaavat L A T E X: Kaavat (kuva:@ emacs on LAT E X ystävällinen Kursori pomppii editoidessa ${ { \sum_{i=1}^{n+1}\cos{i\pi\alpha} } \over { \sum_{i=1}^{n+1}\sin{i\pi\alpha} } }$ n+1 joka tuottaa i=1 cos iπα sin iπα n+1 i=1 Kreikkalaisille kirjaimille omat komennot: esim \alpha ja \pi yllä Matemaattisille funktiolle omat komennot: esim \cos ja \cos yllä Matemaattisille merkinnöille omat komennot: esim \sum ja \over yllä Mitään ei tarvitse/kannata opetella ulkoa, koska löytyvät esimerkiksi täältä www L A T E X: Kaavat Lähes minkä tahansa symbolin komento löytyy täältä www
47 B1: python ja octave python python python: paljon erilaisia valmiita moduleja, joita ladataan tarpeen mukaan Matemaattiset funktiot: Numpy www importoidaan komennolla import numpy Importoinnin jälkeen esimerkiksi tämän modulin sisällön voi aina tarkistaa komennolla dir(numpy) Nimeä voi muuttaa esimerkiksi python import numpy as np a=np.arange(3) print(a) tulostaa [0 1 2] Tieteellinen laskenta: Scipy www importointi import scipy Tulosten visualisointi: Pylab www importointi import pylab python Pythonista on olemassa interaktiivinen versio ipython www Kokeile linux komentotulkissa ipython -pylab In [1] ilmestyy a=numpy.ones(3) ; print(a) tulostaa [ ] Anna sen jälkeen komento a. ja ipython kertoo kaiken, mitä voit tehdä muuttujalle a, jos aloitat muodolla a. ipython:ssa voi vaikkapa kokeilla erilaisia komentoja ennen kuin kirjoittaa ne editoimansa ohjelman sisään Kokeile linux komentoa pwd. Se toimii ipython:ssa, mutta ei tavallisessa python:ssa octave: kaikki ladattu valmiiksi ja linux komennot toimivat
48 B1: python ja octave python ja octave python Numeeriset muuttujatyypit pitävät sisällään lukuarvoja. Esimerkkejä python:n numeerisia muuttujatyyppejä int = kokonaisluku esim a=4 float = reaaliluku esim a=3.45 complex = kompleksiluku esim a=complex(3,4) tai a=3.+4j Tyhjän muuttujan luominen: a=int(), a=float(), a=complex() Kokeillaan python:ssa a=1 ; b=1 ; c=a+b print(type(a),type(b),type(c)) tyyppi ei muutu Kokeillaan python:ssa a=1 ; b=2.2 ; c=a+b print(type(a),type(b),type(c)) tyyppi muuttuu tarkkuuden mukaan octave Kokeillaan octave:ssa a=1 ; class(a) tulostaa ans = double eli ei integer Kompleksiluvun luominen octave:ssa z=3+4*i ; abs(z) tulostaa ans = 5 eli z arvon Kokeillaan octave:ssa a=1 ; isnumeric(a) tulostaa ans = 1 eli kertoo, että a on numeroarvoinen muuttuja (s.o. joko kokonais-, reaali- tai kompleksiluku) Kokeillaan octave:ssa a=1 ; islogical(isnumeric(a)) tulostaa ans = 1 eli kertoo, että isnumeric(a) on looginen muuttuja (s.o. 1=True, 0=False) octave: tietoa numeerisista (myös muista) muuttujatyypeistä löytyy täältä www Muuttujatyyppejä ei tarvitse opetella ulkoa
49 B1: python ja octave python ja octave python ja octave Peruslaskutoimitukset python octave + + summa - - erotus * * kertolasku ** ** tai ˆ potenssiin korotus / / jakolasku python: lisää löytyy täältä www octave: lisää löytyy täältä www Vertailuoperaattorit samat python octave == == yhtä suuri < < pienempi > > suurempi >= >= suurempi tai yhtä suuri <= <= pienempi tai yhtä suuri! =! = ei yhtä suuri python ja octave Peruslaskutoimituksissa on eroja Kokeillaan python:ssa import numpy a=numpy.arange(2) ; b=2.+a print(a) tulostaa [0 1] print(b) tulostaa [2. 3.] print(a*b) tulostaa [0. 3.] Tulos: Vastaavien alkioiden tulot Kokeillaan octave:ssa a=[0 1] ; b=2.+a ; disp(a) tulostaa 0 1 disp(b) tulostaa 2 3 disp(a*b) tulostaa error... koska molemmat ovat vaakavektoreita disp(a*b ) tulostaa 3 koska b pystyvektori, saadaan pistetulo disp(a.*b) tulostaa 0 3 eli vastaavien alkioiden tulot
50 B1: python ja octave python ja octave python ja octave: funktiot python: Matemaattiset funktiot saadaan käyttöön import numpy käskymuoto numpy.cos(3.14) toimii python: Vain valitun funktion importointi Esim from numpy import cos käskymuoto cos(3.14) toimii octave: Funktiot valmiiksi ladattu Tavallisimmat funktiot molemmissa lähes samanlaisia python octave cos(x) cos(x) cos x sin(x) sin(x) sin x tan(x) tan(x) tan x power(x,y) realpow(x,y) x y sqrt(x) sqrt(x) x exp(x) exp(x) e x log(x) log(x) lnx Trigonometriset funktiot: [x] = radiaani python ja octave: funktiot Harjoitus: Laadi tätä octave ohjelmaa vastaava python ohjelma # Kommenttirivi : Tama on octave ohjelmani Oharjoitus4.m clear ; clc # Poistetaan.. Tyhjennetaan.. a=pi ; # Radiaanit t r i g o n. f u n k t i o i l l e b=sin ( a ) ; disp ( b ) ; # c=cos ( a ) ; disp ( c ) ; # d=tan ( a ) ; disp ( d ) ; # e=1 ; # f =asin ( e ) ; disp ( f ) ; # g=acos ( e ) ; disp ( g ) ; # h=atan ( e ) ; disp ( h ) ; # i =9 ; # j =sqrt ( i ) ; disp ( j ) ; # n e l i o j u u r i # i j a j symboleja kaytetaan kompleksi l u v u i l l e k=1 i 1 i ; disp ( k ) ; # l =1 j 1 j ; disp ( l ) ; # m=1+1 i ; # n=2+3 j ; # o=m+n ; disp ( o ) ; # p=abs ( o ) ; disp ( p ) ; # q=exp ( 1 ) ; # e r =log ( q ) ; disp ( r ) ; # l n s=log10 ( q ) ; disp ( s ) ; # log t= 3 ; # u=abs ( t ) ; disp ( u ) ; # i t s e i s a r v o v=t ^4 ; disp ( v ) ; # potenssi Ohjelmat monimutkaisempia Sitä vaikeampi tehdä yksi yhteen python ja octave versiot
51 B2: linux linux: Alias linux: Alias Pitkät usein käytetyt komennot alias nimi= pitkä komento kannattaa lyhentää Esimerkki 1: alias lyhennys alias Pr= lpr -PHP-Laserjet-1200 mahdollistaa tiedoston file printtauksen jonoon HP-Laserjet-1200 komennolla Pr file Muuten pitää jokaista tiedostoa * printatessa kirjoittaa lpr -PHP-Laserjet-1200 * Esimerkki 2: valinnalla alias python= python3 varmistetaan, että komennolla python käytetään uusinta (vuonna 2015) python versiota Toimivaa alias komentoa ei kannata keksiä/määritellä/etsiä uudestaan linux: alias Valitut alias komennot kannattaa tallentaa tiedostoon /home/username/.bashrc Tämä alustustiedosto luetaan aina istunnon alkaessa tai uuden linux komentotulkin käynnistyessä Tapa 1: editoidaan tiedostoon /home/username/.bashrc rivit alias c= clear alias cp= cp -i alias rm= rm -i alias python= python3 Tapa 2: editoidaan samat 4 riviä tiedostoon /home/username/.myalias ja 1 rivi source.myalias tiedostoon /home/username/.bashrc Tapa 2 parempi: Miksi? Ensin cp.bashrc.bashrcold Sitten emacs.bashrc & Miksi?
52 B2: latex L A T E X: Matemaattiset kaavat L A T E X: Kaavat $$ rajatuista kaavoista puuttuu numerointi Viittaaminen tekstin sisällä vaikeaa LAT E X tekstisyöte Tähän kaavaan \begin{equation} E = m \mathrm{c}^2 \label{ejuttu} \end{equation} voi viitata (Kaava \ref{ejuttu}) tuottaa Tähän kaavaan voi viitata (Kaava 1) E = mc 2 (1) Komento \ref{ejuttu} viittaa tunnisteeseen \label{ejuttu} Kaavan numero pysyy oikeana, vaikka lisätään uusia numeroituja kaavoja L A T E X: Kaavat LAT E X tekstisyöte \begin{eqnarray} a_x & = & \int_a^b x dx \\ \sin{x}& = & a_x \nonumber \\ d & = & x \end{eqnarray} tuottaa b a x = xdx (2) a sin x = a x d = x (3) Sarake vaihtuu = &, Rivi vaihtuu = \\ Ei numeroa komennolla \nonumber latex tiedosto ajettava kahdesti Numerointi kunnossa Ei tulostu kaavan ja viitenumeron kohdalla??
53 B2: python ja octave python ja octave Muuttujan tunnuksista Tunnus toimii osoittimena muuttujaan eli muuttujan nimenä Yhteen muuttujaan voi osoittaa monta tunnusta Tunnuksen voi kesken ohjelman vaihtaa osoittamaan johonkin toiseen muuttujaan Toisin kuin monissa kielessä, python:ssa tunnus ei ole sidottu mihinkään tiettyyn muuttujatyyppiin Kopioidaan kotisivulta Pharjoitus5.py ja Oharjoitus5.m ja vertaillaan niitä # Kommenttirivi: Tama on python ohjelmani Pharjoitus5.py import os ; os.system( clear ) # Tyhjennetaan naytto a = [1,2] ; b = a # Kaksi python kaskya samalla rivilla print( Vaihe I... ) # Merkilla "\" laaditaan kahden rivin pituinen kasky print( a[0]=,a[0],,a[1]=,a[1],\,b[0]=,b[0],,b[1]=,b[1]) a[1]=0 # Muutetaan a:n toisen alkion a[1] arvo print( Vaihe II: b[1] muuttunut! ) print( a[0]=,a[0],,a[1]=,a[1],\,b[0]=,b[0],,b[1]=,b[1]) # Ratkaisu 1: tuple tyyppista muuttujaa d ei voi muuttaa c = [1,2] ; d=tuple(c) print( Vaihe III... ) print( c[0]=,c[0],,c[1]=,c[1],\,d[0]=,d[0],,d[1]=,d[1]) c[1]=0 # Muutetaan c:n toisen alkion c[1] arvo print( Vaihe IV: d[1] ei muuttunut! ) print( c[0]=,c[0],,c[1]=,c[1],\,d[0]=,d[0],,d[1]=,d[1]) # Ratkaisu 2: Kopioidaan e:n kaikki alkiot muuttujaan f e = [1,2] ; f=e[:] print( Vaihe V... ) print( e[0]=,e[0],,e[1]=,e[1],\,f[0]=,f[0],,f[1]=,f[1]) e[1]=0 # Muutetaan e:n toisen alkion e[1] arvo print( Vaihe VI: f[1] ei muuttunut! ) print( e[0]=,e[0],,e[1]=,e[1],\,f[0]=,f[0],,f[1]=,f[1])
54 B2: python ja octave python ja octave Muuttujan tunnuksista python Pharjoitus5.py Vaihe I... a[0]= 1,a[1]= 2,b[0]= 1,b[1]= 2 Vaihe II: b[1] muuttunut! a[0]= 1,a[1]= 0,b[0]= 1,b[1]= 0 Vaihe III... c[0]= 1,c[1]= 2,d[0]= 1,d[1]= 2 Vaihe IV: d[1] ei muuttunut! c[0]= 1,c[1]= 0,d[0]= 1,d[1]= 2 Vaihe V... e[0]= 1,e[1]= 2,f[0]= 1,f[1]= 2 Vaihe VI: f[1] ei muuttunut! e[0]= 1,e[1]= 0,f[0]= 1,f[1]= 2 Tunnukset a ja b viittasivat samaan muuttujaan. a:n alkion a[1]=1.0 arvon ja tyypin muutos muutti b[1]:n arvon ja tyypin Muuttujaan d kopioitiin c:n alkioiden arvot. d=tuple(c) teki listan, jonka alkioita ei voi muuttaa. Siksi c[1]:n muutos ei muuta alkiota d[1]= cd Muuttujaan f kopioitiin e:n kaikki alkiot e[1]:n muutos ei muuta alkiota f[1]= ef Muuttujan tunnuksista Vastaava octave ohjelma Oharjoitus5.m kotisivulta # Kommenttirivi: Tama on octave ohjelmani Oharjoitus5.m clear ; clc # Poistetaan... Tyhjennetaan... a = [1,2] ; b = a ; # Kaksi octave kaskya samalla rivilla # Nayttotulostus=printf, Siirry seuraavalle riville=\n printf("vaihe I... \n"); # Merkeilla "{" ja "}" laaditaan kahden rivin pituinen kasky {printf("a(1)=%4.1f,a(2)=%4.1f,b(1)=%4.1f,b(2)=%4.1f\n", a(1),a(2),b(1),b(2))}; a(1) = 0; # Muutetaan a:n toisen alkion a(1) arvo printf("vaihe II: b(2) ei muuttunut!\n"); {printf("a(1)=%4.1f,a(2)=%4.1f,b(1)=%4.1f,b(2)=%4.1f\n", a(1),a(2),b(1),b(2))}; octave Oharjoitus5.m tulostaa Vaihe I... a(1)= 1.0,a(2)= 2.0,b(1)= 1.0,b(2)= 2.0 Vaihe II: b(2) ei muuttunut! a(1)= 0.0,a(2)= 2.0,b(1)= 1.0,b(2)= 2.0 octave:ssa tätä python:n ongelmaa ei ole Käytännössä tämä tarkoittaa, että kaikki python ohjelmat pitää laatia ja tarkastaa huolellisesti
55 B2: python ja octave python ja octave Kommentit Kaikki merkin # jälkeen tuleva lasketaan kommentiksi Kommentit ovat tekstiä jonka python tai octave jättää huomiotta Kommentit auttavat muita ymmärtämään koodin toimintaa Käytännössä vähemmän käytetyt komennot unohtuvat Komennot voi tarkistaa koodin kommenteista Kommentit vähentävät tulevaa työtä. Ei tarvitse keksiä pyörää uudestaan Malliohjelmissa on pyritty selkeään kommentoitiin Mikäli edes ohjelma/komento löytyy? grep disp /home/username/*/*.m etsii ohjelmat *.m joissa disp komento
56 C1: linux linux: Ympäristömuuttujat linux: Ympäristömuuttujat linux komentotulkkki toimii asetettujen ympäristömuuttujien mukaan env kertoo asetetut ympäristömuuttujat Yksi tulostuvista riveistä on tyypillisesti HOME=/home/username s.o. käyttäjän nykyisen kotihakemiston Saman tiedon kertoisi echo $HOME Ympäristömuuttujia voi muuttaa Esimerkiksi komentotulkin rivin alun voi muuttaa muotoon <My own prompt> komennolla export PS1= <My own prompt> Ympäristömuuttujien muutokset kannattaa kirjata.bashrc tiedostoon samalla tavoin kuin jo mainitut alias komennot Selkeä esitys ympäristömuuttujien käytöstä löytyy täältä www linux: Selauskomentoja Tiedostoja voi selata editoimatta grep abc file etsii merkit abc tiedostosta file less file tulostaa näyttöön space bar jatkaa ja q lopettaa head -5 file tulostaa tiedoston file 5 ensimmäistä riviä tail -15 file tulostaa tiedoston file 15 viimeistä riviä wc -l file file:n rivien määrä wc -w file file:n sanojen määrä wc -m file file:n merkkien määrä wc file samalla kertaa file:n rivien, sanojen ja merkkien määrä Näistä käyttökelpoisin on ollut grep, kun on haettu jotain komentoa, tiedostoa,...
57 C1: latex L A T E X: Ympäristöt L A T E X: Ympäristöt Ympäristö otetaan käyttöön komennolla \begin{aaa}... \end{aaa} Esimerkkejä vaihtoehdoista aaa:lle \itemize, \enumerate, \center, \figure, \tabular, \table, Esim: tekstisyöte \begin{enumerate} \item Ensimmäinen juttu \item Toinen juttu \item {Kolmas juttu \label{ab}} \end{enumerate} Monesko juttu \ref{ab} se oli? tuottaa numeroidun listan 1. Ensimmäinen juttu 2. Toinen juttu 3. Kolmas juttu Monesko juttu 3 se oli? missä listan kolmanteen juttuun viitataan tekstissä labelin {AB} avulla L A T E X: Ympäristöt Taulukkoympäristöön siirrytään \begin{tabular}{asettelu} Komennot ovat Tasaus: l = vasen, r = oikea ja c = keski Viivat: = pysty ja \hline = vaaka Vaihda: & = sarake ja \\ = rivi Esim: tekstisyöte \begin{tabular}{ l cr } \hline now & lets & play \\ 1 & 2 & 3 \\ \hline \end{tabular} tuottaa tälläisen taulukon now lets play 1 2 3
58 C1: latex L A T E X: Taulukot L A T E X: Taulukot tabular sijoittaa taulukon paikkaan siihen paikkaa, mihin se on tiedostossa kirjoitettu tabular ympristössä taulukkoon ei voi viitata tai lisätä taulukon sisältöä selittävää tekstiä Tekstisyöte \begin{table}[h] \caption[]{taulukon kuvaus} \begin{tabular}{lcr} \hline aaa & bbb & ccc \\ 1 & 2 & 3 \\ \hline \end{tabular} \label{cd} \end{table} Luvut ovat taulukossa \ref{cd}. tuottaa L A T E X: Taulukot Taulukko 1: Taulukon kuvaus aaa bbb ccc Luvut ovat Taulukossa 1. \ref{cd} etsii tunnisteen \label{cd} Taulukot numeroituvat automaattisesti siinä järjestyksessä, jossa ne ovat tiedostossa Taulukoiden caption ja teksti numerointi pysyy oikeana lisättäessä uusia taulukoita table = yhden kolumnin leveys table* = kahden kolumnin leveys \begin{table}[sijainti] määrittää minne taulukko yritetään sijoittaa tekstissä sijainti: h = tähän (here), t = sivun yläreunaan (top), b = sivun alareunaan (bottom),... paljon vaihtoehtoja
59 C1: python ja octave python ja octave python Alkioiden indeksit esimerkkejä: Muuttuja x sisältää n alkiota x[0] = 1. alkio, x[n-1] = n:s alkio x[i:j] = Osa alkioista i = ensimmäisen valitun alkion indeksi j = monesko viimeinen valittu on kaikista alkioista. Esim: x=[1,2,3] print(x[0:1]) tulostaa [1] print(x[0:2]) tulostaa [1, 2] print(x[0:3]) tulostaa [1, 2, 3] print(x[0:0]) tulostaa [] print(x[1:1]) tulostaa [] print(x[1:2]) tulostaa [2] print(x[1:3]) tulostaa [2,3] print(x[1:30]) tulostaa [2,3] eli yläraja SAA ylittää n:n print(x[1 :]) tulostaa [2,3] Lisäksi negatiiviset indeksit print(x[-1]) tulostaa [3] octave Muuttuja x sisältää n alkiota x(1) = 1. alkio, x(n) = n:s alkio x[i:j] = Osa alkioista i = ensimmäisen valitun alkion indeksi j = viimeisen valitun alkion indeksi Esim: x=[1,2,3] disp(x(1:1)) tulostaa 1 disp(x(1:2)) tulostaa 1 2 disp(x(1:3)) tulostaa disp(x(2:2)) tulostaa 2 disp(x(2:3)) tulostaa 2 3 disp(x(2:30)) tulostaa error:... eli yläraja EI SAA ylittää n:ää disp(x(-1)) tulostaa error:... disp(x(1,1)) tulostaa 1 disp(x(1,2)) tulostaa 2 disp(x(2,1)) tulostaa error:... koska kyseessä on vaakavektori s.o. Rivi 2, Sarake 1 ei ole olemassa
60 C1: python ja octave python ja octave python x= Abc ; type(x) tulostaa <class str > Tämä muuttuja on merkkijono eli stringi Sarjatyyppinen muuttuja on muuttuja, joka osoittaa listaan muita muuttujia Sarjatyyppisten muuttujat luokitellaan sen mukaan voidaanko niiden alkioita muuttaa list = alkiot muutettavissa. Esim: a=[1,2] ; a[-1]= ok ; print(a) tulostaa [1, ok ] tuple = alkiot ei muutettavissa. Esim: a=(1, ok ) ; a[0]= ok ; print(a) tulostaa...typeerror: tuple... list rajataan [...] tuple rajataan (...) list: lisätään muita muuttujia. Esim: a=[1,2]; b=[ c, d ]; a[-2]=b; print(a) tulostaa [[ c, d ], 2] octave x= Abc ; disp(class(x)) tulostaa char eli tämä muuttuja on merkkijono a=[1,2] ; a(2)= ok tulostaa error:... eli sarjatyyppisen muuttujan kaltaisen muuttujan luominen ei tällä tavoin onnistu x.a=1; x.b= ab ; disp(x); disp(class(x)) tulostaa a = 1 b = ab struct Tämä, struct, muistuttaa python:n sarjatyyyppistä list muuttujaa help tuple tulostaa error: help: tuple not found Vaikka tähän mennessä en ole onnistunut löytämään tuple:a vastaavaa, se ei tarkoita, että sitä ei ole... EnOlKoTa
61 C1: python ja octave python ja octave python ohjelman peruselementit Muuttujat ( int, float, list,...) Operaattorit ( +, -, *,...) Funktiot ( cos(), exp(),...) Aliohjelmat: samoja ohjelman rivejä ei tarvitse toistaa uudelleen ja uudelleen Ohjausrakenteet Sisennys vain if, for,... Kommentit ( # tämä tarkoittaa...) Modulit ( math, numpy,...) import numpy as np np.sin(x) from numpy import sin sin(x) Luokat ( numpy.array,...) Metodit ( string.find(),...) octave ohjelmat peruselementit Muuttujat: eroavaisuuksia, esim indeksit Operaattorit: lähes samat Funktiot: lähes samat Aliohjelmat: samoja ohjelman rivejä ei tarvitse toistaa uudelleen ja uudelleen Ohjausrakenteet Ei sisennystä endfor, endif,... Kommentit: samat Modulit: kaikki valmiina Luokat: ( class(a),...) Metodit: ( display(a),...) Ei tarvitse opetella ulkoa, koska näitä opetellaan tarpeen mukaan usean esimerkin avulla
62 C1: python ja octave python ja octave python: Ohjauskomento if Sisennetyt lohkot erottavat ohjauskomennot muusta koodista. Sisennys on 4 tyhjää merkkiä Aloittava rivi päättyy merkkiin : emacs sisentää automaattisesti if esimerkki Pharjoitus6.py if, elif ja else yhdistelmä octave: Ohjauskomento if Sisennystä ei tarvita, mutta sitä voi käyttää koodin selventämiseen if loppuu komentoon endif if, elseif, else ja endif esimerkki Oharjoitus7.m
63 C1: python ja octave python python # K o m e n t t i r i v i : Tama on python ohjelmani Pharjoitus6. py import os ; os. system ( clear ) # Tyhjennetaan naytto a=2 ; b=1 ; c=2 ; d=1 # 1. kombinaatio #a=2 ; b=1 ; c=1 ; d=2 # 2. kombinaatio #a=1 ; b=2 ; c=2 ; d=1 # 3. kombinaatio #a=1 ; b=2 ; c=1 ; d=2 # 4. kombinaatio p r i n t ( a=,a, b=,b, c=, c, d=, d ) # Tulostetaan a, b, c, d p r i n t ( Kaydaan aina r i v i l l a L7 ) # # Ohjausrakenteen a l o i t u s r i v i t p a a t t y v a t merkkiin " : " # Muut ohjausrakenteen r i v i t s i s e n n e t t y i f (a > b ) : # 1. ohjausrakenne alkaa p r i n t ( Koska a>b, kaydaan r i v i l l a L12 ) p r i n t ( T a r k i s t u s : a=,a, b=, b ) i f ( c > d ) : # 2. ohjausrakenne alkaa p r i n t ( Koska a>b j a c>d kaydaan r i v i l l a L15 ) p r i n t ( T a r k i s t u s : a=,a, b=,b, c=, c, d=, d ) p r i n t ( Koska a>b kaydaan r i v i l l a L17 ) p r i n t ( T a r k i s t u s : a=,a, b=, b ) Kaksi merkkiin : päättyvää ohjausrakennetta Kaksi sisennystä: 4 ja 8 tyhjää octave Tehtävänä laatia tätä vastaava Oharjoitus6.m a=1 ; b=2 Vihjeitä Kaksi if ja endif paria Kokeile interaktiivisessa octave:ssa komentoja printf("tarkistus: a=%2i,b=%2i\n",a,b) jotka tuottavat näyttöön formatoitua tulostusta Kokeile mitä tapahtuu ilman osaa \n Kokeile mitä tapahtuu, jos muutat osaa %2i muotoon %10i
64 C2: linux linux linux: käyttäjän oikeudet Käyttäjällä, username, on käyttöoikeus rajattuun levytilaan du -h /home/username/ tulostaa käytetyn levytilan. Yhteenvedon antaa du -h /home/jetsu/ -summarize df tulostaa sekä vapaan että käytetyn levytilan. Käytännöllinen alias on alias Tila= df -h /home/username/ Käyttäjillä rajatut oikeudet suorittaa komentoja ja käsitellä tiedostoja linux:ssa käyttäjä kuuluu ainakin yhteen ryhmään. groups kertoo mihin Käyttäjälle: u, Ryhmälle: g & Muille: o on erilaiset oikeudet seuraaviin: Luku: r, Kirjoitus: w & Suoritus: x Listaa tiedostosi komennolla ls -ls linux: käyttäjän oikeudet Esimerkiksi -rwxr-x- -x tarkoittaa: käyttäjällä on rwx oikeudet ryhmällä on r-x oikeudet muilla on - -x oikeudet d:llä alkava tulostus (Esim: drwxr-x- -x) tarkoittaa, että kyseessä on hakemisto Oikeuksia voi muuttaa komennolla chmod [ugoa] (+-) [rwx] nimi (u)ser, (g)roup, (o)thers, (a)ll ( a on kaikki u, g ja o yhdessä) + lisää ja - poistaa oikeuksia (r)ead, (w)rite, e(x)ecute Esimerkkki 1: chmod g+rwx nimi lisää ryhmällä rwx-oikeudet tiedostoon tai hakemistoon nimi Esimerkkki 2: chmod go-wx nimi poistaa ryhmältä ja muilta wx-oikeudet tiedostoon tai hakemistoon nimi
65 Johdanto A1 A2 B1 B2 C1 C2 D1 D2 E1 C2: latex L A T E X: kuvat L A T E X: kuvat Dokumentin alussa ladataan paketti. Esim: \usepackage[dvips]{graphicx} jossa kuvan lataus \includegraphics[]{tiedosto} [] sisään optioita: width, height,... Tässä luentojen LAT E X ympäristössä syöte \includegraphics[width=5.0cm, height=1.5cm]{pharjoitus17.pdf} tuottaa tämän kuvan 1.0 L A T E X: kuvat Tässä luentojen LAT E X ympäristössä syöte \begin{figure} \caption[]{kuvan teksti} \includegraphics[width=1.0cm, height=1.0cm]{pharjoitus17.pdf} \label{ef} \end{figure} Kuvan \ref{ef} sini-käyrät tuottaa Kuva 1: Kuvan teksti \figure (leveys yksi kolumni) ja \figure* (leveys kaksi kolumnia) ympäristöt: numero, teksti ( caption) ja viittaus tunniste ( label) Kuvan 1 sini-käyrät Kuvat numeroituvat automaattisesti... latex: kuvat ps- tai eps muodossa pdflatex: kuvat jpg-, png- tai pdf
66 C2: python ja octave python octave ohjauskomento if, elseif, else # Kommenttirivi : Tama on octave ohjelmani Oharjoitus7.m clear ; clc # Poistetaan... Tyhjennetaan... a=rand (1) 360. ; # Tasajakauma p r i n t f ( " Arvottu kulma on = %7.1 f astetta \ n ",a ) # T a r k i s t u s b=(a /180.) pi ; # Asteet r a d i a a n e i k s i if (cos (b) >=0 & sin (b) >=0) # Alkaa p r i n t f ( " 1 neljannes \ n " ) # elseif (cos (b) <0 & sin (b) >0) # p r i n t f ( " 2 neljannes \ n " ) # elseif (cos (b) <=0 & sin (b) <=0) # p r i n t f ( " 3 neljannes \ n " ) # else # p r i n t f ( " 4 neljannes \ n " ) # endif # Paattyy Neljän vaihtoehdon if ja elseif rakenne Sisennykset vain selkeyttämisen vuoksi rand(1) tuottaa yhden satunnaisluvun tasajakaumasta välillä [0, 1] Laskuharjoitus: Laadi tätä vastaava python ohjelma Pharjoitus7.py
67 C2: python ja octave python ja octave python: Ohjauskomento for Ohjauskomennon for rivi päättyy merkkiin : Lohkon sisennys loopin loppuun Esimerkki: Seuraavan sivun ohjelma Pharjoitus8.py octave: Ohjauskomento for Ohjaus komento alkaa merkillä for Ei tarvita sisennystä Looppi päättyy komentoon endfor Laskuharjoitus: Laadi python ohjelmaa Pharjoitus8.py vastaava octave ohjelma Oharjoitus8.m
68 C2: python ja octave python python ohjauskomento for # K o m e n t t i r i v i : Tama on python ohjelmani Pharjoitus8. py import os ; os. system ( clear ) # Tyhjennetaan naytto for i in range ( 3 ) : # 1. Looppi : indeksilla p r i n t ( i =, i ) # a =[ A, B, C ] # for b in a : # 2. Looppi a l k i o i l l a p r i n t ( b=, b ) # p r i n t ( b. f i n d ( "A" ) ) # k=0 # Kahdessa sisakkaisessa l o opissa muuttuva luku for j in range ( 2 ) : # 3. Looppi for b in a : # 4. Looppi print ( b=,b,,k=,k ) # 4. Looppi : print k=k+1 # 4. Looppi : k=k+1 p r i n t ( j =, j,, k=, k ) # 3. Looppi : p r i n t k=k+1 # 3. Looppi : k=k+1 Neljä merkkiin : päättyvää ohjausrakennetta Neljä sisennystä: 4 ja 8 tyhjää octave Tehtävänä laatia tätä vastaava Oharjoitus8.m Vihjeitä Neljä for ja endfor paria Voit korvata python komennon print(b.find("a")) octave komennolla disp(strfind(b,"a")) Kokeile interaktiivisessa octave:ssa komentoja a=1 ; b=2 printf("tarkistus: a=%2i,b=%2i\n",a,b) jotka tuottavat näyttöön formatoitua tulostusta
69 C2: python ja octave python ja octave python: Ohjauskomento while Ohjauskomennon while rivi päättyy merkkiin : Lohkon sisennys Laskuharjoitus: Laadi ohjelma Pharjoitus9.py, joka tekee saman kuin Oharjoitus9.m seuraavalla sivulla octave: Ohjauskomento while Ohjaus komento alkaa merkillä while Ei tarvita sisennystä while päättyy komentoon endwhile Esimerkki: Seuraavan sivun octave ohjelma Oharjoitus9.m
70 C2: python ja octave octave ohjauskomento while octave ohjauskomento while # Kommenttirivi : Tama on octave ohjelmani Oharjoitus9.m clear ; clc # Poistetaan... Tyhjennetaan... k=20 ; # Kokeile muuttujan a rvo ja k= 11, 9 j a 20 p r i n t f ( " Alussa k= %i \ n ", k ) # k alussa while ( k >=10) # Ohjausrakenne p r i n t f ( " 1. ehdolla j a t k e t a a n j a k= %i \ n ", k ) k=k 4 ; # Vahenna 4 endwhile # while ( k > 10.5 & k <10) # Ohjausrakenne p r i n t f ( " 2. ehdolla j a t k e t a a n j a k= %i \ n ", k ) k=k 3 ; # Vahenna 3 endwhile # p r i n t f ( " Lopussa k= %i \ n ", k ) # lopussa
71 C2: python ja octave python ja octave python: Ohjauskomento try catch Ohjauskomennon try catch rivi päättyy merkkiin : Lohkon sisennys Käytetään koodin korjaamiseen EnOlKoTa Tästä ei laskuharjoitusta Esimerkki: python ohjelma Pharjoitus10.py seuraavalla sivulla octave: Ohjauskomento try catch Ei tarvita sisennystä Päättyy komentoon end_try_catch Tästä ei laskuharjoitusta Esimerkki: Sitä seuraavan sivun octave ohjelma Oharjoitus10.m
72 C2: python ja octave python python ohjauskomento try catch # K o m e n t t i r i v i : Tama on python ohjelmani Pharjoitus10. py import os ; os. system ( clear ) # Tyhjennetaan naytto a = [ 1, 2 ] # a [0]= 1,a[1]=2 mutta a l k i o t a a [ 2 ] e i ole! # # " p r i n t a [ 2 ] " komennon v i r h e v i e s t i o l i s i n o r m a a l i s t i # " IndexError : l i s t index out of range " # Esimerkki 1 try : # t r y alkaa print (a [ 2 ] ) # Komento y r i t y s except : # Jos ei onnistu, print ( " Ei onnistu. " ) # p r i n t a t a a n tama # Esimerkki 2 try : # t r y alkaa print (a [ 2 ] ) # Komento y r i t y s except IndexError : # Jos virhetyyppi IndexError, print ( " Virhe t u n n i s t e t t u " ) # n i i n p r i n t a t a a n tama. except : # Jos virhetyyppi ei IndexError, p r i n t ( " Virhe t u n n i s t a m a t t a " ) # n i i n p r i n t a t a a n tama. # Esimerkki 3 try : # Ohjauskomento alkaa p r i n t ( a [ 2 ] ) # Sisennys except TypeError : # Jos v i r h e t y y p p i TypeError, print ( " Virhe t u n n i s t e t t u " ) # n i i n p r i n t a t a a n tama. except : # Jos virhetyyppi ei TypeError, p r i n t ( " Virhe t u n n i s t a m a t t a " ) # n i i n p r i n t a t a a n tama.
73 C2: python ja octave octave: # Kommenttirivi : Tama on octave ohjelmani Oharjoitus10.m clear ; clc # Poistetaan... Tyhjennetaan... a = [1 2] ; # a (1)=1, a (2)=2 mutta a l k i o t a a ( 3 ) e i ole! # " disp (a ( 3 ) ) " virheviesti : "A( I ) : Index exceeds matrix dimension " # Esimerkki 1 t r y # t r y alkaa disp (a ( 3 ) ) # Komento y r i t y s catch # Jos ei onnistu, disp ( " Ei onnistu. " ) # p r i n t a t a a n tama end_try_catch # t r y loppuu # Esimerkki 2 t r y # t r y alkaa disp (a ( 3 ) ) # Komento y r i t y s catch # msg = l a s t e r r o r. message ; # V i r h e v i e s t i t a l t e e n q=strfind (msg, " index out " ) ; # T a r k i s t e t a a n msg i f ( q >0) # Jos " Inde.. " loytyy, disp ( " Virhe t u n n i s t e t t u " ) # n i i n p r i n t a t a a n tama. else # Jos " Inde.. " e i loydy, disp ( " Virhe t u n n i s t a m a t t a " ) # n i i n p r i n t a t a a n tama endif # end_try_catch # t r y loppuu # Esimerkki 3 t r y # t r y alkaa disp (a ( 3 ) ) # Komento y r i t y s catch # msg = l a s t e r r o r. message ; # V i r h e v i e s t i t a l t e e n q=strfind (msg, " Olisikohan tuo " ) ; # T a r k i s t e t a a n msg i f ( q>0) # Jos " Olis.. " loytyy, disp ( " Virhe t u n n i s t e t t u " ) # n i i n p r i n t t a a tama else # Jos " Olis.. " ei loydy, disp ( " Virhe t u n n i s t a m a t t a " ) # n i i n p r i n t a a n tama endif # end # t r y loppuu
74 D1: linux linux: Prosessit linux: Prosessit Jokainen komento käynnistää vähintään yhden prosessin Jokaiselle prosessilla tunniste PID, jolla prosessiin voidaan viitata. Jokaisella prosesilla on prioriteetti PRI. Se kertoo paljonko prosessi käyttää koneen resursseja muihin prosesseihin nähden Normaalisti komento käynnistää prosessin aktiiviseksi komento & käynnistää prosessin taustalle Esimerkki: emacs nimi & siirtää editorin taustalle ja linux komentotulkissa voi edelleen antaa muita komentoja ps tulostaa aktiiviset prosessit Ctrl + c lopettaa aktiivisen prosessin kill PID lopettaa prosessin PID, jos siihen on oikeudet linux: Prosessit jobs tulostaa käynnissä olevat työt. Tulostus voi olla vaikkapa [1] Running emacs tila2015.tex & [5]- Running evince tila2015.pdf & top listaa tietoa käynnissä olevista prosessit prosessorin käytön mukaan Prioriteetti välillä 20 PRI +19. Pienempi PRI Tärkeämpi prosessi Käyttäjien PID 0 (Oletus = 0) nice -n arvo komento käynnistää komennon prioriteetilla PRI=arvo. Esimerkki: nice -n +3 python käynnistää python:n prioriteetilla PRI=3 ps -lx grep python kertoo, että prosessilla on PID=6632 renice muuttaa PRI=5:een PRI arvoa voi vain kasvattaa (vähentää prosessin tärkeyttä) Miksi ja milloin?
75 D1: python ja octave String manipulointi python Useita python komentoja Esimerkki 1 A= abcd ; x=a.find( c ); print(x) tulostaa 2 Esimerkki 2 B= o,1,p ; x=b.split(, ); print(x) tulostaa [ o, 1, p ], = Erotin Esimerkki 3 B= o 1 p ; x=b.split(); print(x) tulostaa [ o, 1, p ] tyhjä= Oletus (default) erotin Mahdotonta muistaa ulkoa vuoden (päivän, tunnin?) päästä grep.split *.py Malli! octave Vastaavia octave komentoja Esimerkki 1 A= abcd ; x=strfind(a, c ); disp(x) tulostaa 3 Esimerkki 2 B= o,1,p ; x=strsplit(b,, ); disp(x) tulostaa { } [1,1] = o [1,2] = 1 [1,3] = p Esimerkki 3 (Kokeile itse) tyhjä= Oletus (default) erotin Laskuharjoitus: Oharjoitus11.m Laadi vastaava Pharjoitus11.py
76 D1: python ja octave String manipulointi # Kommenttirivi : Tama on octave ohjelmani Oharjoitus11.m # J o i t a k i n esimerkkeja s t r i n g i e n m a n i p u l o i n n i s t a # clear ; clc # Poistetaan... Tyhjennetaan... a= " karhunkierros " ; b= s t r f i n d ( a, " karhu " ) ; # E t s i t e k s t i p r i n t f ( " b= %f \ n ", b ) # Tulos d= "AbCd" ; e=toupper ( d ) ; # I s o i k s i k i r j a i m i k s i p r i n t f ( " d= %s, e= %s \ n ",d, e ) # Tulos f = EfGh ; g= tolower ( f ) ; # P i e n i k s i k i r j a i m i k s i p r i n t f ( " f = %s, g= %s \ n ", f, g ) # Tulos # Korvaa j okaisen s t r i n g i n merkit u u s i l l a m e r k e i l l a ============== j = xku xnkkx ; k=strrep ( j, " x ", " a " ) ; # Korvaa p r i n t f ( " j = %s, k= %s \ n ", j, k ) # Tulos # Poistetaan merkkijonosta t o i v o t u t merkit. l = ABNyt OKABAB ; m=strrep ( l, "AB", " " ) ; # Poistetaan "AB" p r i n t f ( " l = %s,m= %s \ n ", l,m) # Tulos Tulostaa b= d= AbCd,e= ABCD f= EfGh,g= efgh j= xku xnkkx,k= aku ankka l= ABNyt OKABAB,m= Nyt OK
77 D1: python ja octave Formatointi python octave Reaaliluvun muunnos stringiksi Reaaliluvun muunnos stringiksi a=9.89 ; b=num2str(a); printf("%s\n",b) a=9.89 ; b=str(a) ; print(b) tulostaa 9.89 tulostaa 9.89 printf("class(a)=%s\n",class(a)) print(type(a)) ; print(type(b)) tulostaa class(a)=double tulostaa printf("class(b)=%s\n",class(b)) <class float > <class str > tulostaa class(a)=char Reaaliluvun formatointi stringiksi Reaaliluvun formatointi stringiksi a=4.567 ; b= %7.5f %a ; print(b) a=4.567 ; b=sprintf("%7.5f",a); tulostaa printf("%s\n",b) tulostaa Reaali- ja kokonaisluku stringiksi Reaali- ja kokonaisluku stringiksi a=1.23; b=78; c= %3.1f%3i %(a,b) a=1.23 ; b=78 ; c=sprintf("%3.1f%3i",a,b) print(c) tulostaa printf("%s\n",c) tulostaa Mahdotonta muistaa ulkoa vuoden (päivän, tunnin?) päästä Lähes mahdotonta... grep f% *.m Malli! grep %i *.py Malli!
78 D1: python ja octave Formatointi # K o m e n t t i r i v i : Tama on python ohjelmani Pharjoitus12. py # J o i t a k i n f o r m a t o i n t i esimerkkeja # import os ; os. system ( clear ) # Tyhjennetaan naytto # Reaaliluvun muunnos s t r i n g i k s i ============================ a=1.458 # Luku b= str ( a ) # Muunnos s t r i n g i k s i p r i n t ( b=,b,, type ( b)=, type ( b ) ) # T a r k i s t u s # Reaaliluvun f o r m a t o i n t i : leveys =6, desimaalit=1 =========== c =7.89 # Luku d= %8.5 f %c # F o r m a t o i n t i print ( d=,d ) # T a r k i s t u s # Kokonaisluvun f o r m a t o i n t i : leveys=4 ======================= e=71 # Luku f = %6i %e # F o r m a t o i n t i p r i n t ( f =, f ) # T a r k i s t u s # Reaaliluvun j a kokonaisluvun y h d i s t e t t y f o r m a t o i n t i ======= g=2.34 ; h= 912 # Luvut i = %4.1 f%5i %(g, h ) # F o r m a t o i n t i p r i n t ( i =, i ) # T a r k i s t u s # Reaaliluku, string ja kokonaisluku yhdistetty ============= j =9.84 ; k= tekstia ; l =812 # Y h d i s t e t t a v a t m= %6.0 f%10s%7i %(j, k, l ) # F o r m a t o i n t i print ( m=,m) # T a r k i s t u s # Reaaliluku, string, kokonaisluku ja \& yhdistetty === n=9.23 ; o= 87 ; p= \ \ \ \ # Y h d i s t e t t a v a t q= %8.3e & %3i %2s %(n, o, p ) # F o r m a t o i n t i print ( q=,q ) # T a r k i s t u s Tulostaa b= 1.458, type(b)= <class str > d= f= 71 i= m= 10 tekstia 812 q= 9.230e+00 & -87 \\ Laskuharjoitus: Laadi octave ohjelma, joka TULOSTAA saman eli b = 1.468, class(b)= char d = f = 71 i = m = 10 tekstia 812 q = 9.230e+00 & -87 \\ Ainoa ero type(b)= <class str > muotoon class(b)= char Useita vaihtoehtoisia ratkaisuja!
79 D1: python ja octave Formatointi, datan lukeminen ja kirjoittaminen Paimentolaisuus ja turismi ovat sukua toisilleen. Toisen synnytti hätä ja toisen pitkästyneisyys. (Schopenhauer: Pessimistin elämän filosofia ) Formatointi ja datan lukeminen tai kirjoittaminen ovat sukua toisilleen. Toisen synnytti järjestelmällisyys ja toisen tallennettavuus. (Allekirjoittaneen yritelmä) Tärkeintä on lopputulos Sama lopputulos monilla eri tavoilla Sama lopputulos monilla eri ohjelmointikielillä Kotisivu: Mallit: yritys erehdys n. 30 tuntia OPharjoitus14.dat lukeminen Pharjoitus14.py Oharjoitus14.m Pharjoitus14A.py, Pharjoitus14B.py Oharjoitus14A.m Pharjoitus15.py Laskuharjoitus Pharjoitus16.py ja Oharjoitus16.m Näistä on teille (toivottavasti) myöhemmin hyötyä
80 D1: python ja octave Datan lukeminen OPharjoitus14.dat muotoa (Tulostus: Toinen näyttö!) OPharjoitus14.dat HJD Year M D H M # K o m e n t t i r i v i : Tama on python ohjelmani P h a r j o i t u s 1 4. py # import os ; os. system ( clear ) # Tyhjennetaan naytto date = [ ] # Tyhja muuttuja f i l e = open ( OPharjoitus14. dat, r ) # Avaa OPharjoitus14. dat r i v i = f i l e. r e a d l i n e ( ) # LUETAAN RIVI KERRALLAAN while ( len ( r i v i ) > 0 ) : # Ei t y h j a r i v i osat= r i v i. s p l i t ( ) # Tyhjien mukaan o s i k s i osa=osat [ 0 ] # 1 a l k i o q=osa. f i n d ( " 245 " ) # E t s i "245" t e k s t i a i f ( q> 1): # Jos l o y t y y..., # String muutetaan desimaaliluvuksi kaskylla " f l o a t " date. append ( f l o a t ( osa ) ) # Lisaa arvo muuttujaan date print ( date ) # Nayta nykyinen date r i v i = f i l e. r e a d l i n e ( ) # Lue seuraava r i v i f i l e. close ( ) # S u l j e OPharjoitus14. dat p r i n t ( " date = ", date ) # T a r k i s t u s p r i n t ( " type ( date )= ", type ( date ) ) # T a r k i s t u s
81 D1: python ja octave Datan lukeminen OPharjoitus14.dat muotoa (Tulostus: Toinen näyttö!) OPharjoitus14.dat HJD Year M D H M # Kommenttirivi : Tama on octave ohjelmani Oharjoitus14.m # clear ; clc # Poistetaan... Tyhjennetaan... date = [ ] ; # Tyhja muuttuja f i l e =fopen ( " OPharjoitus14. dat ", " r " ) ; # Avaa OPharjoitus14. dat r i v i =fgets ( f i l e ) ; # LUETAAN RIVI KERRALLAAN while i s c h a r ( r i v i )==1 # Onko s t r i n g? osat= s t r s p l i t ( r i v i, ) ; # Tyhjien mukaan o s i k s i osat= s t r j o i n ( osat ( 1 ), ) ; # 1 a l k i o sopivaan muotoon q=index ( osat, " 245 " ) ; # E t s i "245" t e k s t i a i f ( q > 0) # Jos l o y t y y.., # String muutetaan desimaaliluvuksi kaskylla " f l o a t " date =[ date, str2double ( osat ) ] ; # l i s a a arvo muuttujaan date endif # i f loppuu disp ( date ) # Nayta date r i v i =fgets ( f i l e ) ; # Lue seuraava r i v i endwhile # while loppuu fclose ( f i l e ) ; # S u l j e OPharjoitus14. dat p r i n t f ( " date = %f,%f,% f \ n ", date ) # T a r k i s t u s p r i n t f ( " class ( date )= %s \ n ", class ( date ) ) # T a r k i s t u s
82 D1: python ja octave Datan lukeminen OPharjoitus14.dat muotoa (Tulostus: Toinen näyttö!) OPharjoitus14.dat HJD Year M D H M # K o m e n t t i r i v i : Tama on python ohjelmani Pharjoitus14A. py # import os ; os. system ( clear ) # Tyhjennetaan naytto f = open ( OPharjoitus14. dat, r ) # Avaa OPharjoitus14. dat data = f. readlines ( ) # LUETAAN RIVILISTANA f. close ( ) # Sulje OPharjoitus14. dat date = [ ] # Luo t y h j a l i s t a for r i v i in data : # Looppi datan r i v e i l l e osat= r i v i. s p l i t ( ) # Tyhjien mukaan o s i k s i osa=osat [ 0 ] # 1 a l k i o q=osa. f i n d ( " 245 " ) # E t s i "245" t e k s t i a i f ( q> 1): # Jos l o y t y y..., # String muutetaan desimaaliluvuksi kaskylla " f l o a t " date. append ( f l o a t ( osa ) ) # Lisaa arvo muuttujaan date print ( date ) # Nayta nykyinen date p r i n t ( " date = ", date ) # T a r k i s t u s p r i n t ( " type ( date )= ", type ( date ) ) # T a r k i s t u s
83 D1: python ja octave Datan lukeminen OPharjoitus14.dat muotoa OPharjoitus14.dat HJD Year M D H M # # Kommenttirivi : tama on python ohjelmani Pharjoitus14B. py # import os ; os. system ( c l e a r ) # Tyhjennetaan n aytto import numpy as np # numpy i m p o r t o i t u f i l e = OPharjoitus14. dat # Tiedoston nimi # Komennolla " skiprows =2" jatetaan lukematta 2 ensimmaista r i v i a date=np. l o a d t x t ( f i l e, skiprows =2, usecols = ( 0, ) ) # Lue 1. kolumni p r i n t ( " date = ", date ) # T a r k i s t u s p r i n t ( " type ( date )= ", type ( date ) ) # T a r k i s t u s p r i n t ( np. cos ( date ) ) # T a r k i s t u s Tulostus date = [ ] type(date)= <class numpy.ndarray > [ ] date on numpy vektori, josta voi ottaa np.cos(date) Käytännöllinen tulevissa laskuharjoituksissa
84 D1: python ja octave Datan lukeminen OPharjoitus14.dat muotoa OPharjoitus14.dat HJD Year M D H M # Kommenttirivi : Tama on octave ohjelmani Oharjoitus14A.m clear ; clc # Poistetaan... Tyhjennetaan... filename = OPharjoitus14. dat ; f i d =fopen ( filename, r ) ; [ x, nx ]= fscanf ( f i d, %s, [ 1, 1 ] ) ; [ y, ny ]= fscanf ( f i d, %s%s%s%s%s%s, [ 6, 1 ] ) ; [ z, nz ]= fscanf ( f i d, %g%g%g%g%g%g, [ 6, I n f ] ) ; fclose ( f i d ) ; p r i n t f ( " x = %s, nx = %f \ n ", x, nx ) # T a r k i s t u s p r i n t f ( " y = %s, ny = %f \ n ", y, ny ) # T a r k i s t u s date=z ( 1, : ) ; # 1 Sarake p r i n t f ( " date = %f,%f,% f \ n ", date ) # T a r k i s t u s p r i n t f ( " class ( date )= %s \ n ", class ( date ) ) # T a r k i s t u s Tulostus x = OPharjoitus14.dat,nx = y = HJDYearMDHM,ny = date = , , class(date)= double
85 D2: linux linux: arkistointi tar liittää useampia tiedostoja yhteen samaan arkistoon (engl. archive) Esimerkki 1 tar cvf arkisto.tar *.DAT luo arkiston arkisto.tar, joka sisältää kaikki.dat loppuiset tiedostot tar -xvf arkisto.tar purkaa arkiston takaisin yksittäisiksi tiedostoiksi Esimerkki 2 tar cvzf arkisto.tar.gz *.DAT luo kompressoidun (engl. compress) arkiston, joka vie vähemmän levytilaa tar -xvzf arkisto.tar.gz purkaa arkiston yksittäisiksi tiedostoiksi Useimmiten nämä riittävät, eikä näitäkään kannata/tarvitse opetella ulkoa. Lisää esimerkkejä löytyy vaikkapa täältä www Käyttö: Lähettäjä luo ja lähettää arkiston, jonka vastaanottaja purkaa linux: koneelta toiselle scp komento Esimerkki 1: Työskentelet koneessa sky1 hakemistossa username/. Komento scp *.DAT sky2:/home/username/dir1/ kopioi kaikki työhakemistosi.dat päätteiset tiedostot toisen koneen sky2 hakemistoon /home/username/dir1/ Huom: sky2 kysyy salasanaa! Selvennys: sky1 tiedostot sky2 Esimerkki 2: Työskentelet koneessa sky1 hakemistossa user/dir2/. Komento scp user@sky2: user/dir1/*.pro user/dir2/ kopioi kaikki koneen sky2 hakemistossa user/dir1/ olevat.pro loppuiset tiedostot koneen sky1 hakemistoon user/dir2/ Huom: sky2 kysyy salasanaa! Selvennys: username lyhennetty user Selvennys: sky2 tiedostot sky1 Jälleen loputtomasti vaihtoehtoja www Paljon dataa: Ensin tar. Sitten scp
86 D2: python ja octave Datan kirjoittaminen # K o m e n t t i r i v i : Tama on python ohjelmani P h a r j o i t u s 1 5. py # K i r j o i t e t a a n t i e d o s t o o n r i v i k e r r a l l a a n # import os ; os. system ( clear ) # Tyhjennetaan n a y t t o import numpy # Importoidaan Numpy x=numpy. arange ( 3. ) ; p r i n t ( " x= ", x ) # Luodaan 1 v e k t o r i y=numpy. s i n ( x ) ; p r i n t ( " y= ", y ) # Luodaan 2 v e k t o r i # # K i r j o i t e t a a n vain l u k u j a f =open ( Pharjoitus15a. dat, w ) # Avaa t i e d o s t o n for i in range ( len ( x ) ) : # f o r l o o p p i f. w r i t e ( " %6.1 f %8.4 f \ n " %(x [ i ], y [ i ] ) ) # K i r j o i t t a a r i v i n f. close ( ) # Sulkee t i e d o s t o n # # K i r j o i t e t a a n l u k u j a j a s t r i n g e j a esim : Latex kayttoon f =open ( Pharjoitus15b. dat, w ) # Avaa t i e d o s t o n for i in range ( len ( x ) ) : # f o r l o o p p i f. w r i t e ( " %6.1 f%3s%8.4 f%4s \ n "%(x [ i ], &, y [ i ], \ \ \ \ ) ) f. close ( ) # Sulkee t i e d o s t o n Pharjoitus15a.dat muotoa (Tulostus: toinen näyttö) Pharjoitus15b.dat muotoa (Laskuharjoitus: Vastaava Oharjoitus15.m?) 0.0 & \\ 1.0 & \\ 2.0 & \\
87 D2: python ja octave Datan kirjoittaminen # K o m e n t t i r i v i : Tama on python ohjelmani P h a r j o i t u s 1 6. py # Eras nopea tapa k i r j o i t t a a k e r r a l l a k a i k k i data # import os ; os. system ( clear ) # Tyhjennetaan n a y t t o import numpy as np # Importoidaan Numpy x=np. arange ( 3. ) ; p r i n t ( " x= ", x ) # Luodaan 1 v e k t o r i y=np. s i n ( x ) ; p r i n t ( " y= ", y ) # Luodaan 2 v e k t o r i # np. s a v e t x t ( Pharjoitus16a. dat, ( x, y ), fmt= %10.3 f ) np. s a v e t x t ( Pharjoitus16b. dat, np. transpose ( ( x, y, ) ), fmt= %10.3 f ) Pharjoitus16a.dat muotoa Pharjoitus16b.dat muotoa Tulostus x= [ ] y= [ ] Nopea tapa tallentaa: yhden rivin komento!
88 D2: python ja octave Datan kirjoittaminen # Kommenttirivi : Tama on octave ohjelmani Oharjoitus16.m # Eras nopea tapa k i r j o i t t a a k e r r a l l a k a i k k i data # clear ; clc # Poistetaan... Tyhjennetaan... x = [ 0 : 2 ] ; p r i n t f ( " x = %f,%f,% f \ n ", x ) # Luodaan 1 v e k t o r i y=sin ( x ) ; p r i n t f ( " y = %f,%f,% f \ n ", y ) # Luodaan 2 v e k t o r i a =[ x ; y ] ; # Data m a t r i i s i i n # dlmwrite ( Oharjoitus16a. dat, a, d e l i m i t e r, \ t, p r e c i s i o n, %10.3 f ) dlmwrite ( Oharjoitus16b. dat,a, d e l i m i t e r, \ t, p r e c i s i o n, %10.3 f ) Oharjoitus16a.dat muotoa Oharjoitus16b.dat muotoa Tulostus x = , , y = , , Nopea tapa tallentaa: jälleen vain yhden rivin komento!
89 D2: python ja octave Datan graafinen esitys # Kommenttirivi : Tama on octave ohjelmani Oharjoitus17.m # P lo t ta a n ensimmaisen kerran kuvan # clear ; clc # Poistetaan... Tyhjennetaan... x=pi ( ( 0 : 9 9 ) / 4 9. ) ; # x v e k t o r i y=sin ( x ) ; # y v e k t o r i z=cos ( x ) ; # z v e k t o r i hold on ; # p l o t e i p o i s t a e d e l l i s t a plot ( x, y, r ) # x, y p l o t t i plot ( x, z, b ) # x, z p l o t t i hold o f f ; # uusi p l o t p o i s t a i s i... p r i n t ( Oharjoitus17. pdf, dpdf ) # Tallenna pdf t i e d o s t o o n waitforbuttonpress ; # Odota : Nappain poistaa Katsotaan tuotettua kuvaa evince Oharjoitus17.pdf hold on ja hold off Laskuharjoitus: Laadi vastaava python ohjelma Pharjoitus17.py Ideoita: import pylab... Kokeilkaa nettihakuja! Ideoita: Tarkastelkaa kotisivulla olevia seuraavia python malliohjelmia
90 D2: python ja octave Datan graafinen esitys python Kurssin kotisivu: Pharjoitus18.py Yli sivun Toinen näyttö! evince Pharjoitus18.pdf pl.axes kuvan paikka pl.xlim x-rajat pl.ylim y-rajat pl.errorbar x,y,e (e=error bars) pl.title pääteksti (LAT E X) pl.xlabel x-teksti (LAT E X) pl.xlabel y-teksti (LAT E X) pl.text asemoitu teksti (LAT E X) pl.savefig( Pharjoitus18.pdf ) Lopetus (kaivettu netistä) pl.ion() pl.show() pl.waitforbuttonpress(timeout=-1) octave Kurssin kotisivu: Oharjoitus18.m Yli sivun Toinen näyttö! evince Oharjoitus18.pdf subplot(6,10,[2 19]); kuvan paikka axis([0.0,2.0*pi,... xy-rajat plot1=errorbar(x,y,e, ); x,y,e set(plot1,... formaatti title([ Funktio,... pääteksti xlabel(... x-teksti (LAT E X Ei?) ylabel(... y-teksti (LAT E X Ei?) text(0.0,... asemoitu (LAT E X: Kyllä?) print( Oharjoitus18.pdf, -dpdf ) waitforbuttonpress;... kaivettu... Uusi octave versio neliöt katosi! Uusi octave versio LAT E X Ei & Kyllä!
91 D2: python ja octave Aliohjelmat Funktio/Aliohjelma Funktio on aliohjelma. Funktio syö jotain sisäänsä. Tämä input voi olla muuttujia, tiedostoja, jne.. Funktio palauttaa jotain syömänsä perusteella. Tämä output voi olla muuttujia, jne.. Funktio voi myös muokata input tietoa Funktioiden tarkoitus on jakaa ja jäsentää ohjelmaa, sekä vähentää koodin toistoa Funktiot on loogisinta määritellä ohjelman alussa, mutta yleensä toimivat muuallakin Muuallakin = Funktio pitää olla määritetty ennen kuin sitä kutsutaan/käytetään python def funktio(a,b,..): Sisennys: komennot... Sisennys: return A,B,.. octave function [A,B,..]=funktio(a,b,..) Ei sisennystä: komennot Ei sisennystä: endfunction python & octave Funktioiden toiminnoissa on eroja Kokeillaan kotisivun Psub.py Kokeillaan kotisivun Osub.m
92 D2: python ja octave python ja octave python # Ohjelma / A l i o h j e l m a : Psub. py def koe ( a, b ) : # summa=a+b ; erotus=a b # a=a 9 # I n p u t muutos # return a, b,summa # # # # Kokeilu 1 # a=1 ; b=2 ; c=koe ( a, b ) # # # # Kokeilu 2 # #a=1 ; b=2 ; a, b, c=koe ( a, b ) # # # p r i n t ( a=,a, b=,b, summa=, c ) p r i n t ( type ( c ) ) # # # # Kokeilu 3 # # p r i n t ( erotus ) # Ei output! # octave # Ohjelma / A l i o h j e l m a Osub.m function [ a, b,summa]= koe ( a, b ) # summa=a+b ; erotus=a b ; # a=a 9 ; # I n p u t muutos # endfunction # # # # Kokeilu 1 # a=1 ; b=2 ; c=koe ( a, b ) ; # # # # Kokeilu 2 # #a=1 ; b=2 ; [ a, b, c ]= koe ( a, b ) # # # p r i n t f ( " a=%3.1 f b=%3.1 f c=%3.1 f \ n ",a, b p r i n t f ( " class ( c ) = %3.1 f \ n ", c ) # # # Kokeilu 3 # # disp ( erotus ) # Ei output! #
93 D2: python ja octave Aliohjelmat python Laadi aliohjelma, joka laskee Rayleigh n testi parametrin ( n ) z(f ) = 1 2 ( n ) 2 cos θ i + sin θ i n i=1 i=1 aikapisteille t 1, t 2,..t n frekvenssillä f = 1, missä vaihekulmat ovat θ i = 2πft i, sekä antaa aikapisteiden määrän n. Oleta, että aikapisteet ovat jakautuneet satunnaisesti välille [0, 10]. Input: t = t 1, t 2,..., t n = aikapisteet Input: f = f = Frekvenssi Output: z= z(f ) = Testi parametri Output: n= Aikapisteiden määrä Random Walk: z = R 2 /n, missä R = r i ja r i = [cos Θ i, sin Θ i ] Kuvassa L = 1 ja D = R Laskuharjoitus: Kotisivulla on Paliohjelma.py. Laadi vastaava octave ohjelma Oaliohjelma.m
94 D2: python ja octave Aliohjelmat # K o m e n t t i r i v i : Tama on python ohjelmani Paliohjelma. py import numpy as np # numpy i m p o r t o i t u def r a y l e i g h t e s t ( t, f ) : # Funktio alkaa p i =np. p i ; x=2.0 p i f t ; n=len ( t ) z = ( 1. 0 / n ) (sum( np. cos ( x )) 2+sum( np. s i n ( x )) 2) return n, z # import os ; os. system ( clear ) # Tyhjennetaan n aytto t =10. np. random. sample ( 10) # Satunnaisajat 0 < t _ i < 10 ( n=10) f =1. # Frekvenssi on f =1. n, z= r a y l e i g h t e s t ( t, f ) # Rayleigh t e s t i n n j a z ( f ) p r i n t ( n=, n ) # T a r k i s t u s p r i n t ( z=, z ) # T a r k i s t u s m= r a y l e i g h t e s t ( t, f ) # Koe : Kaytetaan vain yhta muuttujaa print ( m=,m) # Tulos : Antaa MOLEMPIEN a r v o t p r i n t ( type (m)=, type (m) ) # Tuple, s. o a rvoja e i v o i muuttaa Tulos on aina erilainen, koska aina arvotaan uudet aikapisteet n= 10 z= m= (10, ) type(m)= <class tuple >
95 Pienimmän Neliösumman Sovitus Pienimmän Neliösumman Sovitus (PNS) n = Havaintojen määrä x i = Havaintojen ajat/paikat/... (i = 1,..., n) y i = y(x i) = Havaintojen arvot (i = 1,..., n) σ i = Havaintojen tarkkuus (i = 1,..., n) w i = σ 2 i = Havaintojen painot (i = 1,..., n) Malli havainnoille ȳ ± σ on g( β) = g(x, β) β = [β1, β 2,..., β Q] = Mallin vapaat parametrit, joita on Q kappaletta ɛ i = y i g(x i, β) = Residuaalit = Havainnot miinus malli PNS etsii parhaat β arvot β 1,...β Q, jotka minimoivat χ 2 ( β) n n [ ] 2 = w iɛ 2 ɛi n [ yi g(t i, i = = β) ] 2. σ i=1 i=1 i σ i=1 i Summattu residuaalit jaettuina virheillään korotettuna toiseen potenssiin. Siitä nimi PNS. Hyvässä mallissa χ 2 n.miksi?
96 Pienimmän Neliösumman Sovitus Malleista Malli ḡ on lineaarinen, jos sen kaikki osoittaisderivaatat g/ β i ovat riippumattomia kaikista vapaista parametreista β j. Jos näin ei ole, malli on epälineaarinen. Esimerkki: lineaarinen malli g( β, x) = M + A sin x + B cos x, β = [M, A, B], g/ M = 1, g/ A = sin x, g/ B = cos x Esimerkki: epälineearinen malli g = Ae Bx, β = [A, B], g/ A = e Bx, g/ B = ABe Bx Lineaarisilla malleilla PNS antaa β:lle yksikäsitteisen ratkaisun. Epälineaarisilla malleilla β:n ratkaisu β 1 riippuu siitä, mikä annetaan (etsitään tavalla tai toisella) ratkaisun alkuarvoksi β 0.
97 Pienimmän Neliösumman Sovitus python python: PNS Data: OPpns.dat # # Kommenttirivi : Python ohjelmani Ppns. py # Pienimman neliosumman s o v i t u s # import os ; os. system ( clear ) # Tyhjennetaan... import numpy as np # Importoidaan import scipy # " from scipy import optimize # Miksi outoa? # def r e s i d u a l s ( beta, y, x ) : epsilon= y (beta [ 0 ] + beta [1] x ) return e p s i l o n # f i l e = OPpns. dat #Data x=np. loadtxt ( file, skiprows=0, usecols = (0, ) ) #Data y=np. loadtxt ( file, skiprows=0, usecols = (1, ) ) #Data beta0=np. ones (2) # Alkuarvo p r i n t ( beta0=, beta0 ) # Alkuarvo tu=optimize. l e a s t s q ( r e s i d u a l s, beta0, args =( y, x ) ) beta1=tu [ 0 ] # Loppuarvo print ( beta1=, beta1 ) # Loppuarvo Tulostaa beta0= [ 1. 1.] beta1= [ ] python: PNS n = 3 x = [x 1, x 2, x 3 ] = x ȳ = [y 1, y 2, y 3 ] = y ḡ = g(x, β) = a + bx = Malli β = [a, b] = Vapaat parametrit ɛ = ȳ ḡ = epsilon = sovituksen residuaalit optimize.leastq tarvitsee aliohjelman residuals β 0 = beta0 = sovituksen tarvitsema alkuarvo β 1 = beta1 = sovituksen antama loppuarvo Lineaarinen malli loppuarvo ei riipu alkuarvosta Kurssilla: Sovitus ilman painoja. Loputtomasti vaihtoehtoja www
98 Pienimmän Neliösumman Sovitus octave octave: PNS Data: OPpns.dat # # Kommenttirivi : Octave ohjelmani Opns.m # Pienimman neliosumman s o v i t u s # clear ; clc # Poistetaan... Tyhjennetaan... # function y=ffun (x, beta ) ; # y=beta (1)+ beta (2) x ; # Ilman " ; " tulostaa! endfunction ; # # filename= OPpns. dat ; # Data f i d =fopen ( filename, r ) ; # Data [ z ]= fscanf ( f i d, %g%g, [ 2, I n f ] ) ; # Data x=z ( 1, : ) ; y=z ( 2, : ) ; # Data beta0 =[1 1 ] ; # Alkuarvo p r i n t f ( " beta0=%6.2f%6.2f \ n ", beta0 ) # Alkuarvo [ y f i t beta1 ] = l e a s q r ( x, y, beta0, " f f u n " ) ; p r i n t f ( " beta1=%6.2f%6.2f \ n ", beta1 ) # Loppuarvo Pitäisi tulostaa beta0= beta1= Omalla koneella tulostaa yfit arvoja joka iteraatiolla Samaa ongelmaa ei ole ohjelmalla Oharjoitus19.m octave: PNS n = 3 x = [x 1, x 2, x 3 ] = x ȳ = [y 1, y 2, y 3 ] = y ḡ = g(x, β) = a + bx = Malli β = [a, b] = Vapaat parametrit leasqr tarvitsee aliohjelman function β 0 = beta0 = sovituksen tarvitsema alkuarvo β 1 = beta1 = sovituksen antama loppuarvo Lineaarinen malli loppuarvo ei riipu alkuarvosta Kurssilla: Sovitus ilman painoja Loputtomasti vaihtoehtoja www Varokaa mustaa laatikkoa
99 Pienimmän Neliösumman Sovitus python ja octave octave: PNS Laskuharjoitus: Annettu octave ohjelma Oharjoitus19.m. Laadittava vastaava python ohjelma Pharjoitus19.py Oharjoitus19.m toinen näyttö Looppia for i=1:4 ennen n = n = 10, 10, 50, 50 s = σ = 0.1, 1.0, 1.0, 5.0 subplot komennon z1 ja z2 z1 = 3, 7, 35, 39 z2 = 17, 21, 49, 53 subplot idea: piirrä Vastaava python komento helpompi Vain kolme muuttujaa/riviä tms MUUTTUU!!!... loopin sisällä octave: PNS Loopin for i=1:4 sisällä Simuloidaan data x ja y n0 = n, x0 = 0 x 1,..., x n 2π Satunnaisotos s0 = σ 1,..., σ n N(0, s 0 ) normaalijaumasta Datan y0 simulointimalli on g0 = g(x, β SIM ) = a cos x + b sin x, missä β SIM = [a, b] = [1, 2] Kuvat: g0 = siniset ympyrät y0 = g0 + s0 = simuloitu data Kuvat: y0 = punaiset ympyrät PNS dataan x ja y... leasqr... beta0 = β 0 = alkuarvo beta1 = β 1 = loppuarvo
100 Pienimmän Neliösumman Sovitus python ja octave octave: PNS Loopin for i=1:4 sisällä Plotattavat käyrät yy ja gg xx = 0 xx 1,..., xx 100 2π = tiheä tasavälinen plottien argumentti yy = g(xx, β 1 ) sovitetty käyrä Kuvat: yy = punainen viiva gg = g(xx, β SIM ) simulointimallin käyrä Kuvat: gg = sininen viiva Varsinaiset plotit subplot(8,8,[z1(i),z2(i)]) = plottien paikat axis([x1,x2,y1,y2]) = xy rajat set(gca, fontsize,5) = xy-akselien numeroiden koko octave: PNS Loopin for i=1:4 sisällä hold on ja hold off pari plot(x0,g0, ob, markersize,3) = siniset ympyrät plot(xx,gg, b ) = sin... jatkuva viiva plot(x0,y0, or, markersize,3) = punaiset ympyrät plot(xx,yy, r ) = pun... jatkuva viiva txt1=sprintf... = formatoitu stringi text(x1+... = stringin tulostus kuvaan Loopin for i=1:4 jälkeen print( Oharjoitus19.pdf, -dpdf ) = kuvan tallennus pdf muodossa
101 Pienimmän Neliösumman Sovitus python ja octave PNS Mitä opittiin? n = 10, σ = 0.1 Vähän tarkkaa dataa PNS tulos OK n = 10, σ = 1.0 Vähän epätarkkaa dataa PNS tulos sinne päin n = 50, σ = 1.0 Paljon epätarkkaa dataa PNS tulos OK n = 50, σ = 5.0 Paljon huonoa dataa PNS tulos sinne päin Sovita väärä malli tähän dataan (esim. suora) Musta laatikko n= 10 ja s0= 0.10 Simuloitu A= 1.00 ja B= 2.00 Sovitettu A= 1.02 ja B= n= 50 ja s0= 1.00 Simuloitu A= 1.00 ja B= 2.00 Sovitettu A= 1.02 ja B= n= 10 ja s0= 1.00 Simuloitu A= 1.00 ja B= 2.00 Sovitettu A= 0.81 ja B= n= 50 ja s0= 5.00 Simuloitu A= 1.00 ja B= 2.00 Sovitettu A= 2.57 ja B=
102 Pienimmän Neliösumman Sovitus python ja octave PNS Epälineaariset mallit Jetsu & Pelt (1999) A&AS 139, 629 TSPA = Three Stage Period Analysis Samalle datalle monta sopivaa mallia Mikä niistä on oikea?
Tieteellinen laskenta I (Scientific Computing I)
Tieteellinen laskenta I (Scientific Computing I) koodi: 53398, laajuus: 5 op Johdanto Johdanto (kuva:@work.chron.com) Klikkaa tätä www merkkiä Pääset siinä mainitun aiheen www-sivulle Kurssin kotisivu
linux linux: rm, cp, mv ls Return listaa työhakemiston sisällön
L3: linux linux linux: rm, cp, mv (kuva:@funny-pictures.picphotos.net) ls Return listaa työhakemiston sisällön ls.dat Return tulostaa kaikki työhakemiston.dat loppuiset tiedostot merkki on jokeri cp nimi1
linux linux: rm, cp, mv ls Return listaa työhakemiston sisällön
L3: linux linux linux: rm, cp, mv (kuva:@funny-pictures.picphotos.net) ls Return listaa työhakemiston sisällön ls.dat Return tulostaa kaikki työhakemiston.dat loppuiset tiedostot merkki on jokeri cp nimi1
linux: komennoista linux linux
L4: linux linux: komennoista linux Komentojen käyttö komento -opt1 -opt2 argumentti Esimerkiksi ls -s *.dat tulostaa työtiedoston.dat loppuiset tiedostot ja niiden koon Esimerkiksi ls -l *.dat tulostaa
linux: komennoista linux linux
L4: linux linux: komennoista linux Komentojen käyttö komento -opt1 -opt2 argumentti Esimerkiksi ls -s *.dat tulostaa työtiedoston.dat loppuiset tiedostot ja niiden koon Esimerkiksi ls -l *.dat tulostaa
L2: linux linux: Komentotulkki
(kuva:@www.glasbergen.com) Tavoite: Kaikki oppivat linux:n perusteet Perusteet jo tutut Luennoille ja laskuharjoituksiin osallistuminen vapaaehtoista Monia linux alkeisoppaita www linux: Komentotulkki
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
Tähtitieteen käytännön menetelmiä Kevät 2009
Tähtitieteen käytännön menetelmiä Kevät 2009 2009-01-12 Yleistä Luennot Luennoija [email protected] Aikataulu Observatoriolla Maanantaisin 10.00-12.00 Ohjattua harjoittelua maanantaisin 9.00-10.00
linux: Ympäristömuuttujat
L5: linux linux: Ympäristömuuttujat linux: Ympäristömuuttujat linux komentotulkkki toimii asetettujen ympäristömuuttujien mukaan env kertoo asetetut ympäristömuuttujat Yksi tulostuvista riveistä on tyypillisesti
linux: Ympäristömuuttujat
L5: linux linux: Ympäristömuuttujat linux: Ympäristömuuttujat linux komentotulkkki toimii asetettujen ympäristömuuttujien mukaan env kertoo asetetut ympäristömuuttujat Yksi tulostuvista riveistä on tyypillisesti
linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia
L6: linux linux linux: käyttäjän oikeudet Käyttäjällä, username, on käyttöoikeus rajattuun levytilaan du -h /home/username/ tulostaa käytetyn levytilan. Yhteenvedon antaa du -h /home/jetsu/ - -summarize
linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia
L6: linux linux linux: käyttäjän oikeudet Käyttäjällä, username, on käyttöoikeus rajattuun levytilaan du -h /home/username/ tulostaa käytetyn levytilan. Yhteenvedon antaa du -h /home/jetsu/ - -summarize
linux: Prosessit kill PID lopettaa prosessin PID, jos siihen on oikeudet Ctrl + c lopettaa aktiivisen prosessin L7: linux
L7: linux linux: Prosessit linux: Prosessit Jokainen komento käynnistää vähintään yhden prosessin Jokaiselle prosessilla tunniste PID, jolla prosessiin voidaan viitata. Jokaisella prosesilla on prioriteetti
linux: Prosessit kill PID lopettaa prosessin PID, jos siihen on oikeudet Ctrl + c lopettaa aktiivisen prosessin L7: linux
L7: linux linux: Prosessit linux: Prosessit Jokainen komento käynnistää vähintään yhden prosessin Jokaiselle prosessilla tunniste PID, jolla prosessiin voidaan viitata. Jokaisella prosesilla on prioriteetti
Metropolia Ammattikorkeakoulu
Metropolia Ammattikorkeakoulu UNIX-käyttöjärjestelmä TX00BW20 Sami Sainio [email protected] Kurssin rakenne ja arvostelu 7 x luennot ja laboratorioharjoitukset Pieni projekti? Kurssin lopussa tentti
Est.kand Kandidaatintyö ja seminaari: L A T E Xin käyttöönotto
Est.kand Kandidaatintyö ja seminaari: L A T E Xin käyttöönotto Luis R.J. Costa Aalto-yliopisto Sähkötekniikan korkeakoulu Syksy 2015 Sisältö Yleistä Minimaalinen suomenkielinen esimerkki Tärkeimmät yksityiskohdat
Luento 3. Timo Savola. 7. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 3 Timo Savola 7. huhtikuuta 2006 Osa I Käyttöoikeudet Käyttöoikeudet Monen käyttäjän järjestelmä Prosessit kuuluvat eri käyttäjille Tiedostot kuuluvat
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 2: Linux
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 2: Linux 2009-01-19 Lähtökohdat Mikä Linux? Linux on Ilmainen Unix-tyylinen käyttöjärjestelmä Perusajatuksena lähdekoodin vapaus (=ilmaisuus, luotettavuus,
SCI- A0000: Tutustuminen Linuxiin, syksy 2015
SCI- A0000: Tutustuminen Linuxiin, syksy 2015 Sisältö SCI- A0000: Tutustuminen Linuxiin, syksy 2015... 1 1. Mikä Linux?... 1 2. Linuxin käyttö graafisesti... 1 3. Pari sanaa komentorivistä... 2 4. Kalapankki...
Luento 5. Timo Savola. 28. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke
Johdatus Ohjelmointiin
Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin
IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
Ohjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014
18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
Julkaiseminen verkossa
Julkaiseminen verkossa H9T1: Tiedostojen vienti internetiin Yliopiston www-palvelin, kielo Unix käyttöjärjestelmästä hakemistorakenne etäyhteyden ottaminen unix-koneeseen (pääteyhteys) komentopohjainen
Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.
Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.
1. HARJOITUS harjoitus3_korjaus.doc
Word - harjoitus 1 1. HARJOITUS harjoitus3_korjaus.doc Kopioi itsellesi harjoitus3_korjaus.doc niminen tiedosto Avaa näyttöön kopioimasi harjoitus. Harjoitus on kirjoitettu WordPerfet 5.1 (DOS) versiolla
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja
Harjoitus 1 -- Ratkaisut
Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin
Hieman linkkejä: http://cs.stadia.fi/~kuivanen/linux/kom.php, lyhyt ohje komentoriviohjelmointiin.
Linux-harjoitus 9 Linuxin mukana tulevat komentotulkit (mm. bash, tcsh, ksh, jne ) sisältävät ohjelmointikielen, joka on varsin tehokas ja ilmaisuvoimainen. Tähän yhdistettynä unix-maailmasta tutut tehokkaat
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
linux: koneelta toiselle
L8: linux linux: arkistointi tar liittää useampia tiedostoja yhteen samaan arkistoon (engl. archive) Esimerkki 1 tar cvf arkisto.tar *.DAT luo arkiston arkisto.tar, joka sisältää kaikki.dat loppuiset tiedostot
Valitse ruudun yläosassa oleva painike Download Scilab.
Luku 1 Ohjeita ohjelmiston Scilab käyttöön 1.1 Ohjelmiston lataaminen Ohjeet ohjelmiston lataamiseen Windows-koneelle. Mene verkko-osoitteeseen www.scilab.org. Valitse ruudun yläosassa oleva painike Download
Luento 4. Timo Savola. 21. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 4 Timo Savola 21. huhtikuuta 2006 Osa I Shell Lausekkeet Komentoriville kirjotettu komento on lauseke echo "foo" echo $USER MUUTTUJA=1 ls -l Rivinvaihto
Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto
Opiskelijan pikaopas STACK-tehtäviin Lassi Korhonen, Oulun yliopisto 21.3.2016 SISÄLLYSLUETTELO Oppaan käyttäminen... 2 Vastauksen syöttämisen perusteet... 2 Operaatiot... 2 Luvut ja vakiot... 3 Funktiot...
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python 15. helmikuuta 2009 Merkkijonot Yleistä Käsittely Muotoiltu tulostus Tiedostot Käsittely Lukeminen Kirjoittaminen Modulit Käyttö Seuraava luento
Komentotulkki. Kysymyksiä
Komentotulkki Komentotulkki ja avustustoiminnot Tux-pingviinin kuva: Larry Ewing, Simon Budig ja Anja Gerwinski Kysymyksiä 1. Miten työskentelen komentotulkilla? 2. Miten komennot annetaan ja käsitellään?
4. Lausekielinen ohjelmointi 4.1
4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,
Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006
Harjoitus 1: Matlab Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tutustuminen Matlab-ohjelmistoon Laskutoimitusten
5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
ATK tähtitieteessä. Osa 2 - IDL perusominaisuudet. 12. syyskuuta 2014
12. syyskuuta 2014 IDL - Interactive Data Language IDL on tulkattava ohjelmointikieli, jonka vahvuuksia ovat: Yksinkertainen, johdonmukainen komentosyntaksi. Voidaan käyttää interaktiivisesti, tai rakentamalla
Perusohje vi-editorin käyttöön
Perusohje vi-editorin käyttöön Aapo Rista 22.9.2000 Sisältö 1 Johdanto 1 2 vi:n komento- ja kirjoitustilat 2 3 vi:n käynnistäminen ja siitä poistuminen 2 4 Liikkuminen tekstissä 3 5 Merkkien lisääminen
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
Jypelin käyttöohjeet» Ruutukentän luominen
Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen
Unix. Markus Norrena
Unix Markus Norrena Kotitehtävä 1 Mikä on Unix? Kirjoittakaa lyhyesti 10 asiaa (väittämää) mitä Unix on, tai mitä Unix ei ole. Tehtävän 2. osa: Edellisen perusteella ryhmätyö jolla laajennatte Unix-tietämystänne
Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.
Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python 7. helmikuuta 2009 Ohjelmoinnista Ohjelman peruselementtejä Koodin kommentointi Lohkorakenne Ohjausrakenteet If For While Try Funktiot Käyttö
Versionhallinta MIKSI?
Versionhallinta MIKSI? Versionhallinta Miten jakaa tiedostot ihmisten kesken? Miten pitää tiedostot ajan tasalla? Miten hoitaa päällekkäiset muutokset samaan tiedostoon? Miten muistaa, mitä on tehty? Miten
6.1 Tekstialueiden valinta eli maalaaminen (tulee tehdä ennen jokaista muokkausta ym.)
6. Tekstin muokkaaminen 6.1 Tekstialueiden valinta eli maalaaminen (tulee tehdä ennen jokaista muokkausta ym.) Tekstin maalaaminen onnistuu vetämällä hiirellä haluamansa tekstialueen yli (eli osoita hiiren
Hakemistojen sisällöt säilötään linkitetyille listalle.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ
Tähtitieteen käytännön menetelmiä: I
Kevät 2011 1- Johdanto Luennot Luennoija [email protected] Yleistä Paikka: Physicum D211 Maanantaisin kello 10.15-12.00: 17.1-2.5.2011 Aikataulun muutokset ilmoitetaan luennoilla ja kurssin kotisivulla.
KAAVAT. Sisällysluettelo
Excel 2013 Kaavat Sisällysluettelo KAAVAT KAAVAT... 1 Kaavan tekeminen... 2 Kaavan tekeminen osoittamalla... 2 Kaavan kopioiminen... 3 Kaavan kirjoittaminen... 3 Summa-funktion lisääminen... 4 Suorat eli
UpdateIT 2010: Uutisten päivitys
UpdateIT 2010: Uutisten päivitys Käyttäjätuki: Suomen Golfpiste Oy Esterinportti 1 00240 HELSINKI Puhelin: (09) 1566 8800 Fax: (09) 1566 8801 E-mail: [email protected] 2 Sisällys Uutisen lisääminen... 1
Harjoitus 10: Mathematica
Harjoitus 10: Mathematica Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tutustuminen Mathematica-ohjelmistoon Mathematican
Java-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero
PIKAOHJE Web of Science tietokantojen käyttöön
PIKAOHJE Web of Science tietokantojen käyttöön SCIENCE CITATION INDEX Monitieteinen tietokanta, joka sisältää biologian, lääketieteen ja psykiatrian alalta n. 7100 lehteä SOCIAL SCIENCES CITATION INDEX
Korpusten käsittely clt131, P Luento 4
Korpusten käsittely clt131, P2 2006 Luento 4 Nicholas Volk 24.11.2006 Humanistinen tiedekunta Säännölliset lausekkeet: ryhmittely Sulkujen avulla voidaan osoittaa määrällistäjille
Ohjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 3.10.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 3.10.2018 1 / 27 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten ohjelma voidaan jakaa pienempiin osiin käyttämällä
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon
ASCII-taidetta. Intro: Python
Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.
UpdateIT 2010: Editorin käyttöohje
UpdateIT 2010: Editorin käyttöohje Käyttäjätuki: Suomen Golfpiste Oy Esterinportti 1 00240 HELSINKI Puhelin: (09) 1566 8800 Fax: (09) 1566 8801 E-mail: [email protected] Sisällys Editorin käyttöohje...
Käyttöjärjestelmämme on Windows XP, kaikki tietokoneemme ovat kytketty lähiverkkoon ja Internettiin.
Oulun seudun ammattikorkeakoulu Luonnonvara-alan yksikkö Jouko Karhunen Tietotekniikan peruskäyttö 2010 YLEISTÄ Käyttöjärjestelmämme on Windows XP, kaikki tietokoneemme ovat kytketty lähiverkkoon ja Internettiin.
L9: Rayleigh testi. Laskuharjoitus
L9: Rayleigh testi Laskuharjoitus Data on tiedoston H7binput.dat 1. sarake: t = t i Ajan hetket ovat t = t 1, t 2,..., t n, missä n n = 528 Laske ja plottaa välillä f min = 1/P max ja f max = 1/P min z(f
Johdatus ohjelmointiin
Johdatus ohjelmointiin EXAM tentin liitetiedostojen lataaminen, käyttäminen ja palauttaminen Kerro mahdolliset puutteet tai parannusehdotukset: [email protected] Tällä sivulla on selitetty lyhyesti
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen
Harjoitus 1 -- Ratkaisut
Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin
Octave-opas. Mikä on Octave ja miksi? Asennus
Octave-opas Mikä on Octave ja miksi? Asennus Käynnistys ja käyttöliittymä Komennot tiedostojen hallintaan SciTE-editor.m-tiedostot Ohjeita muualla Mikä on Octave ja miksi? Octave on numeeriseen laskentaan
Tärkeimmät toiminnot. Kertausta ja uusia toimintoja Wordistä sekä tiedostonhallinnasta. Tärkeimmät toiminnot jatkuu...
Tärkeimmät toiminnot Kertausta ja uusia toimintoja Wordistä sekä tiedostonhallinnasta Kun hiiren jättää kuvakkeen päälle vähäksi ajaksi Word selittää toiminnon Avaa tiedosto Tallenna Kumoa, nuolesta aiemmat
Web of ScienceTM Core Collection (1987-present)
Tampereen yliopiston kirjasto 2014 Web of ScienceTM Core Collection (1987-present) Science Citation Index Expanded (1987-present): Monitieteinen tietokanta, joka sisältää 8,500 tieteellistä lehteä luonnontieteiden,
Ohjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
Ylläpitoalue - Etusivu
Crasmanager 5.2 Ylläpitoalue - Etusivu Sivut osiossa sisällön selaus ja perussivujen ylläpito. Tietokannat osiossa tietokantojen ylläpito. Tiedostot osiossa kuvien ja liitetiedostojen hallinta. Työkalut
Luento 2. Timo Savola. 31. maaliskuuta 2006
UNIX-käyttöjärjestelmä Luento 2 Timo Savola 31. maaliskuuta 2006 Osa I Prosessit Prosessien hierarkia Jokaisella prosessilla on numero (process ID, pid) Jokaisella prosessilla on
Kappale 18: Teksti-editori
Kappale 18: Teksti-editori 18 Johdanto: Tekstitoiminnot... 304 Text-editori-istunnon aloittaminen... 305 Tekstin syöttäminen ja muokkaaminen... 307 Erikoismerkkien syöttäminen... 311 Komentokielisen ohjelman
Sangen lyhyt L A T E X-johdatus
Sangen lyhyt L A T E X-johdatus Lari Koponen ja Eetu Ahonen 23.1.2013 Koulutuksen tavoitteet Koulutuksen jälkeen pystyy kirjoittamaan työselostuksen L A T E X:illa, eli Dokumentin rakenne tutuksi Tekstin
Unix-perusteet. Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet
Unix-perusteet Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet Mikä on unix? Monen käyttäjän käyttöjärjestelmä Siis monta käyttäjää ja monta ohjelmaa jokaisella Kaikkiin koneisiin mikrosta supertietokoneeseen
Java-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
Listarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
Muuttujien roolit Kiintoarvo cin >> r;
Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,
Harjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
Matriiseista. Emmi Koljonen
Matriiseista Emmi Koljonen 3. lokakuuta 22 Usein meillä on monta systeemiä kuvaavaa muuttujaa ja voimme kirjoittaa niiden välille riippuvaisuuksia, esim. piirin silmukoihin voidaan soveltaa silmukkavirtayhtälöitä.
Ohjeet asiakirjan lisäämiseen arkistoon
Ohjeet asiakirjan lisäämiseen arkistoon 1. Jos koneellesi ei vielä ole asennettu Open Office ohjelmaa, voit ladata sen linkistä joka löytyy Arkisto => Asiakirjapohjat sivulta seuran kotisivuilta. Jos ohjelma
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen [email protected] 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
TEEMA 2 TAULUKKODATAN KÄSITTELY JA TIEDON VISUALISOINTI
TEEMA 2 TAULUKKODATAN KÄSITTELY JA TIEDON VISUALISOINTI Aulikki Hyrskykari & Juhani Linna LUENTO 3 11.9.2018 TÄMÄ VIIKKO o o Ensimmäinen vertaisarvioinnin määrä-aika umpeutui eilen arviointiin saa lisä-aikaa,
Johdatus L A TEXiin. Dept. of Mathematical Sciences. Tunti 1: Alkeet. Markus Harju, markus.harju at oulu.fi, M207
Johdatus L A TEXiin Tunti 1: Alkeet Markus Harju, markus.harju at oulu.fi, M207 Dept. of Mathematical Sciences Kurssista Tarkoitus: johdattaa opiskelija L A TEX-ladontaohjelman käyttöön, jotta hän kykenee
2 Konekieli, aliohjelmat, keskeytykset
ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä
http://www.microsoft.com/expression/
Verkkojulkaisuharjoitus1 TAVOITE Harjoituksen tarkoituksena on opiskella käyttämään verkkojulkaisueditoria (Microsoft Expression Web) ja käynnistämään verkkosivu internetissä. VERKKOSIVUEDITORIN KÄYTTÖOHJEITA
Uuden Peda.netin käyttöönotto
Sisällysluettelo Uuden Peda.netin käyttöönotto...2 Sisään- ja uloskirjautuminen...2 OmaTila...3 Peda.netin yleisrakenne...4 Työvälineet - Sivut...5 Sivun lisääminen omaan profiiliin:...5 Sivun poistaminen
SSH Secure Shell & SSH File Transfer
SSH Secure Shell & SSH File Transfer TIETOHALLINTO Janne Suvanto 1.9 2002 Sisällysluettelo Sisällysluettelo... 1 Yleistä... 2 SSH Secure Shell ohjelman asetukset... 3 POP3 tunnelin asetukset... 6 Yhteyden
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 23.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 23.2.2009 1 / 44 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta
