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 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 username@fuksi: 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,...
L5: 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
L5: 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 1 2 3 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
python ja 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] 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 1 2 3 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
python ja 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] 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
python ja 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(),...) 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
python ja python: Ohjauskomento if (kuva:@www.programiz.com) Sisennetyt lohkot erottavat ohjauskomennot muusta koodista. Sisennys on 4 tyhjää merkkiä Aloittava rivi päättyy merkkiin : emacs sisentää automaattisesti if esimerkki: Pmalli3.py if, elif ja else esimerkki: H5akesken.py alussa : Ohjauskomento if Sisennystä ei tarvita, mutta sitä voi käyttää koodin selventämiseen if loppuu komentoon endif esimerkissä Omalli3.m if, elseif, else ja endif esimerkki: H5akesken.m alussa
python python # K o m e n t t i r i v i : Tama on python ohjelmani Pmalli3. py import os ; os. system ( c l e a r ) # 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 L8 ) # # 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 ) python Eri kombinaatiolla päätyy eri riveille Kaksi merkkiin : päättyvää ohjausrakennetta Kaksi sisennystä: 4 tai 8 tyhjää
# Kommenttirivi : Tama on ohjelmani Omalli3.m clear ; clc # Poistetaan... Tyhjennetaan 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 f ( " a=%2i, b=%2i, c=%2i, d=%2 i \ n ",a, b, c, d ) ; disp ( Kaydaan aina r i v i l l a L8 ) ; # Ohjausrakenne kokonaisuus paattyy r i v i i n " end " i f ( a>b ) # 1. ohjausrakenne alkaa disp ( Koska a>b, kaydaan r i v i l l a L11 ) ; p r i n t f ( " T a r k i s t u s : a=%2i, b=%2 i \ n ",a, b ) ; i f ( c>d ) # 2. ohjausrakenne alkaa disp ( Koska a>b j a c>d kaydaan r i v i l l a L14 ) p r i n t f ( " T a r k i s t u s : a=%2i, b=%2i, c=%2i, d=%2 i \ n ",a, b, c, d ) ; endif # 2. ohjausrakenne paattyy disp ( Koska a>b kaydaan r i v i l l a L17 ) p r i n t f ( " T a r k i s t u s : a=%2i, b=%2 i \ n ",a, b ) ; endif # 1. ohjausrakenne paattyy Kokeile interaktiivisessa :ssa komentoja a=1 ; b=2 printf("tarkistus: a=%2i,b=%2i\n",a,b) jotka tuottavat näyttöön formatoitua tulostusta Eri kombinaatiolla päätyy eri riveille Kaksi if ja endif paria Kokeile mitä tapahtuu ilman osaa \n Kokeile mitä tapahtuu, jos muutat osaa %2i muotoon %10i
python python # K o m e n t t i r i v i : Tama on python ohjelmani H5akesken. py import os ; os. system ( c l e a r ) # Tyhjennetaan naytto import numpy as np # numpy moduli import random as ra # random moduli x=ra. uniform ( 0, 1 ) # Tasajakauma 0 1 p r i n t ( A r v o t t u luku, x ) # T a r k i s t u s i f ( x < = 1. / 3. ) : # Alussa? p r i n t ( " on alueen ( 0, 1 ) alussa " ) # " e l i f ( x > 1. / 3. and x < = 2. / 3. ) : # Keskella? p r i n t ( " on alueen ( 0, 1 ) k e s k e l l a " ) # " else : # Lopussa? p r i n t ( " on alueen ( 0, 1 ) lopussa " ) # " a=10000.0 ra. uniform ( 0, 1 ) # Tasajakauma 0 10000 a s t e t t a p r i n t ( A r v o t t u kulma =,a, a s t e t t a ) # T a r k i s t u s # Tehtava alkaa t a s t a ======================================
# Kommenttirivi : Tama on ohjelmani H5akesken.m clear ; clc # Poistetaan... Tyhjennetaan... x=rand ( 1 ) ; # Tasajakauma ( 0, 1 ) # T a r k i s t e t a a n arvonnan t u l o s # p r i n t f ( "%16s%6.4 f \ n ", A r v o t t u luku =, x ) # i f ( x < = 1. / 3. ) # Alussa? p r i n t f ( " on alueen ( 0, 1 ) alussa \ n " ) # " e l s e i f ( x > 1. / 3. & x < = 2. / 3. ) # Keskella p r i n t f ( " on alueen ( 0, 1 ) k e s k e l l a \ n " ) # " else # Lopussa? p r i n t f ( " on alueen ( 0, 1 ) lopussa \ n " ) # " endif # a=10000.0 rand ( 1 ) ; # Tasajakauma 0 10000 a s t e t t a # T a r k i s t e t a a n arvonnan t u l o s # p r i n t f ( "%16s%6.4 f%8s \ n ", A r v o t t u kulma =,a, a s t e t t a ) # Tehtava alkaa t a s t a ======================================
python ja python: Ohjauskomento for (kuva:@www.tutorialspoint.com) Ohjauskomennon for rivi päättyy merkkiin : Lohkon sisennys loopin loppuun Esimerkki: Seuraavan sivun ohjelma Pmalli4.py : Ohjauskomento for Ohjaus komento alkaa merkillä for Ei tarvita sisennystä Looppi päättyy komentoon endfor Esimerkki: Kaksi sivua eteen päin ohjelma Omalli4.m
python python ohjauskomento for # K o m e n t t i r i v i : Tama on python ohjelmani Pmalli4. py import os ; os. system ( c l e a r ) # Tyhjennetaan n aytto for i in range ( 3 ) : # 1. Looppi : i n d e k s i l l a 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 p r i n t ( b=,b,, k=, k ) # 4. Looppi : p r i n t 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 tai 8 tyhjää Komento b.find("a") etsii A kirjainta muuttujasta b
ohjauskomento for # Kommenttirivi : Tama on ohjelmani Omalli4.m clear ; clc # Poistetaan... Tyhjennetaan... for i =0:2 # 1. Looppi : i n d e k s i l l a p r i n t f ( " i = %i \ n ", i ) # endfor # a =[ A, B, C ] ; # for b=a # 2. Looppi a l k i o l l a p r i n t f ( " b= %s \ n ", b ) # disp ( s t r f i n d ( b, "A" ) ) # endfor # k =0; # Kahdessa sisakkaisessa l o opissa muuttuva luku for j =0:1 # 3. Looppi for b=a # 4. Looppi p r i n t f ( " b=%s, k=%i \ n ",b, k ) # 4. Looppi : p r i n t k=k +1; # 4. Looppi : k=k+1 endfor # 4. Looppi : loppuu p r i n t f ( " j=%i, k=%i \ n ", j, k ) # 3. Looppi : p r i n t k=k +1; # 3. Looppi : k=k+1 endfor # 3. Looppi : loppuu Neljä for ja endfor paria Komento strfind(b,"a") etsii A kirjainta muuttujasta b
python ja python: Ohjauskomento while (kuva:@www.tutorialspoint.com) Ohjauskomennon while rivi päättyy merkkiin : Lohkon sisennys Esimerkki: Pmalli5.py seuraavalla sivulla : Ohjauskomento while Ohjaus komento alkaa merkillä while Ei tarvita sisennystä Esimerkki: kaksi sivua eteen päin ohjelma Omalli5.m
python ohjauskomento while python ohjauskomento while # K o m e n t t i r i v i : Tama on python ohjelmani Pmalli5. py import os ; os. system ( c l e a r ) # Tyhjennetaan naytto print ( Kokeile muuttujan arvoja k= 11, 9 j a 20 ) # Luetaan k t e k s t i n a k=input ( " Anna luku k = " ) # k muutetaan l u v u k s i k= f l o a t ( k ) p r i n t ( Alussa k =, k ) # k alussa while ( k >=10): # Ohjausrakenne print ( 1. ehdolla jatketaan ja k=, k ) # 1. sisennys k=k 4 # Vahenna 4 while ( k> 10.5 and k <10): # Ohjausrakenne print ( 2. ehdolla jatketaan ja k=, k ) # 2. sisennys k=k 3 # Vahenna 2 p r i n t ( Lopussa k =, k ) # k lopussa Kaksi : merkkiä Kaksi sisennystä input lukee k:n tekstinä float muuttaa k:n luvuksi Eri k arvoilla eri tulos
ohjauskomento while ohjauskomento while # Kommenttirivi : Tama on ohjelmani Omalli5.m clear ; clc # Poistetaan... Tyhjennetaan... disp ( Kokeile muuttujan arvoja k= 11, 9 j a 20 ) ; # Luetaan k t e k s t i n a k=input ( " Anna t e k s t i k = ", " s " ) # k muutetaan l u v u k s i k= str2double ( k ) 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 Kaksi while endwhile paria Ei sisennystä input lukee k:n tekstinä str2double muuttaa k:n luvuksi Eri k arvoilla eri tulos
Ohjauskomennot for ja while ohjauskomento while python laskuharjoitus: Mitä vialla? # K o m e n t t i r i v i : Tama on python ohjelmani H5bkesken. py import os ; os. system ( clear ) # Tyhjennetaan naytto for i in range ( 5 ) p r i n t (2 i ) j =20 while ( j >10): p r i n t ( j =, j ) j = j 2 laskuharjoitus: Mitä vialla? # Kommenttirivi : Tama on ohjelmani H5bkesken.m clear ; clc # Poistetaan... Tyhjennetaan for i =0:4 disp (2 i ) j =20; while ( j >10) p r i n t f ( "%3s%2i \ n ", j =, j ) j = j 2;