muuttujat.pl muuttujat.pl Printed by tero toivonen Mar 03, 04 16:56 Page 1/2 #!/usr/bin/perl w
|
|
- Yrjö Siitonen
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 Mar 03, 04 16:56 Page 1/2 # muuttujat.pl by Tero Toivonen <tero.toivonen@cc.jyu.fi> # Esimerkki perlin muuttujista. Tulostelee epämääräisesti muuttujien # arvoja. Lisää aiheesta: perldoc perlvar # käyttö: muuttujat.pl # strict moduli käyttöön. Se "sitoo" muuttujat paikallisiksi, eikä eri # ohjelmalohkoissa esitellyt muuttujat ole muualla # käytössä. Muuttujien esittelu my tai local funktioilla. # Muuttujan esittely... ilman alustuksia. my $muuttuja; # Muuttujien esittelyitä... alustuksilla. my $eka = 1; my $toka = 2; # Laskee muuttujien osamäärän, tulostaa tuloksen ja rivinvaihdon. print $eka / $toka. "\n"; # Muuttujaan tekstiä... $muuttuja = "tekstiä"; print "muuttuja: $muuttuja\n"; muuttujat.pl # Konkatenointi... toinen tapa: $muuttuja = $muuttuja. "plaaplaa" $muuttuja.= " lisää tekstiä perään\n"; print("konkatenointi ja muuttuja nyt: $muuttuja"); # Muuttujaan numeroita.. "muuttujan tyyppi vaihtuu lennosta". $muuttuja = ; print "toinen tyyppi muuttujaan: $muuttuja\n"; # Taulukon esitteleminen ja tietoja alustuksessa.. # viittaa koko taulukkoon $muuttuja[n] sen alkioon. = ("eka","toka"); print # Taulukon alkiot yritetään konkatenoida, # kun se on lainausmerkkien sisällä. print "array: ".@array."\n"; # Vrt. tämä.. alkioiden lkm. # Push funktiolla taulukkoon lisää alkioita. Ne lisätään taulukon # loppuun. push(@array,"kolmas"); print "\"kolmas\" array ja taulukon toinen alkio: ". "\"$array[2]\"\n"; # Shift funktiolla taulukon ensimmäinen alkio "pullautetaan" pois # taulukosta. Vrt. aliohjelmakutsuissa shift, jolloin käytetään # print "shift arraysta (ensimmäinen): \"".shift(@array)."\" ja loput \"@array\" \n"; Mar 03, 04 16:56 Page 2/2 # Useamman dimensioiset taulukot vastaavasti kuin muissa # ohjelmointikielissä, paitsi ettei tyypeillä ole väliä # perlissä. Taulukon alkio voi olla mitä tyyppiä vaan. Esimerkiksi # tässä $array2[1][1] on eo taulukko. $array2[0][0]="jotain"; $array2[0][1]="juttua"; $array2[1][0]=234; $array2[1][1]=\@array; print "print print "\$array2[1][0]: $array2[1][0]\n"; print muuttujat.pl # Hajautustauluun (hashtable) viitataan %hajautustaulu ja sen # "alkioon" $hajautustaulu{avain. # Esitellään hajautustaulu ja asetetaan kolme avain arvo paria. my %hash = ( 1 => yksi, 2 => kaksi, 3 => kolme, ); # Asetetaan muuttujaan hash:n arvo, kun avain on "1" ja tulostetaan # se. Kyseinen arvo voitaisiin tulostaa myös suoraan eli muuttujaan # sitä ei käyttämistä varten tarvitse erikseen laittaa. $muuttuja = $hash{1; print "\$hash{1: $muuttuja\n"; # Asetetaan muuttujaan viittaus hash:iin. Tästä tulostuksesta ei # seuraa mitään kaunista... $muuttuja = \%hash; print "\\%hash: $muuttuja\n"; #... vaan se pitäisi tehdä näin, jos halutaan tulostaa hajautustaulun # arvo. Lisää aiheesta: perlref ja perlreftut. print "\$muuttuja >{ 2 : ".$muuttuja >{ 2."\n"; # Hajautustaulun avaimet (vast. arvot) saa taulukoksi keys funktiolla # (vast. arvot values funktiolla), jolloin niitä voi käsitellä kuin # mitä tahansa taulukon alkioita. # Seuraavan voisi tehdä myös: while(my ($avain,$arvo) = each # %$muuttuja) { print "$avain => $arvo\n"; foreach my $avain (keys %$muuttuja) { $muuttuja >{$avain="neljä" if $muuttuja >{$avain eq "yksi"; print "avain: $avain => arvo: ".$muuttuja >{$avain."\n"; # $#taulukko kertoo viimeisen indeksin numeron.. $muuttuja = $#array; print("arrayn viimeinen indeksi (lukumäärä 1): ", "$muuttuja\n"); $muuttuja print "arrayn alkioiden lukumäärä: $muuttuja\n"; Wednesday March 03, 2004 muuttujat.pl 1/11
2 Mar 03, 04 15:11 Page 1/2 # aliohjelma.pl by Tero Toivonen <tero.toivonen@cc.jyu.fi> # Esimerkki aliohjelmien käytöstä perlissä. # Käyttö: aliohjelma.pl <numero> <+ */> <numero> # aliohjelma.pl <numero><+ */><numero> # Aliohjelma laske sub laske { my ($eka, $oper, $toka) # Hajautustauluun aliohjelmaviittaukset suoritettavan # laskutoimituksen mukaan. my %lasku=( " " => \&vahennys, "+" => \&yhteen, "*" => \&kerto, "/" => \&jako ); # Haetaan viittaus oikeaan aliohjelmaan, jos haluttua operaatiota ei # löydy hajautustaulusta, se palauttaa undef eli $oikea_aliohjelma # ei ole tämän jälkeen määritelty. my $oikea_aliohjelma = $lasku{$oper; if(defined $oikea_aliohjelma) { aliohjelma.pl # Jos aliohjelma löytyy, suoritetaan se ja parametreiksi # ensimmäinen ja kolmas komentoriviltä saatu (tai pilkottu) # parametri. my $tulos = (&{$oikea_aliohjelma($eka,$toka)); return $tulos; else { # Pieleen meni. # Tämä vastaa esimerkiksi javan "return null;" lausetta. return undef; # Komentorivin parametrit muuttujasta. Jos halutaan # tehdä ohjelma, joka käyttää laajemmin parametreja niin kannattanee # käyttää parametrien hallintaan Getopt::* moduleja, koska muuten # parametrilistojen hallinta on kohtuullisen työlästä. Esimerkiksi: # kuinka parsitaan *nix:ien ls komennon parametrit: ls la == ls al # == ls a l == ls l a == ls all l ja niin edellen. Mar 03, 04 15:11 Page 2/2 # regexpeissä) ja niitä numeroita on vähintään yksi (+ regexpissä) # ja <merkki> on joku näistä: "+ */". Lisäksi ne on ryhmitelty # suluilla jolloin "osumat" saadaan suoraan oletusmuuttujiin $1...$9 # löytymis järjestyksessä. Kenoviivalla "suojataan" erikoismerkit # tai "merkitään" tietyntyyppisiä merkkejä. Perldoc:t perlre ja # perlretut kertovat lisää.. if(@argv == 1 and $ARGV[0] =~ /(\d+)([\ \+\*\/])(\d+)/ ) { # Jos ennettu parametri on oikeaa muotoa, niin kutsutaan # aliohjelmaa "laske" ja sen palauttama tulos laitetaan # muuttujaan. Esim. kirjaimet parametreina eivät nyt kelpaa. $tulos = &laske(($1,$2,$3)); # Vain ohjelman tulosteen siistimistä.. $lasku = "$1 $2 $3"; # Tapaus 3 parametria. Tässä jokainen parametri testataan # erikseen. elsif($argv[0] =~ /\d+/ and $ARGV[1] =~ /[ +\*\/]/ and $ARGV[2] =~ /\d+/) { # Parametrit ovat jo oikeassa järjestyksessä, ne ovat # oikeanmuotoisia ja niitä on oikea määrä, jolloin # laske aliohjelmaa voidaan kutsua suoraan parametrit välittävällä # taulukolla. $tulos = &laske(@argv); $lasku = "@ARGV"; else { # Jotain väärää parametreina.. print "väärä syöte\n"; exit 1; # Tulostellaan lasku ja sen tulos, jos tulos muuttuja on määritelty. print "$lasku = $tulos\n" if defined $tulos; else { print "plaah, ja ".@ARGV." parametria\n"; exit 1; exit 0; # Laskurutiinit sisältävät aliohjelmat: aliohjelma.pl sub yhteen { my ($eka, $toka) = (shift,shift); return $eka + $toka; sub vahennys { my ($eka, $toka) = (shift,shift); return $eka $toka; sub kerto { my ($eka, $toka) = (shift,shift); return $eka * $toka; sub jako { my ($eka, $toka) = (shift,shift); return $eka / $toka; # Parametrit välitetään aliohjelmalle josta # shift funktiolla otetaan 2 ensimmäistä muuttujiin. # Tämän ohjelman "main" funktio... # Testataan parametrien lukumäärä if(@argv == 3 == 1) { my ($lasku,$tulos); # Jos parametreja yksi, niin testataan onko se muotoa # <numero><merkki><numero>, missä <numero> on mikä vaan numero (\d Wednesday March 03, 2004 aliohjelma.pl 2/11
3 Mar 03, 04 16:51 Page 1/2 # regexpeja.pl by Tero Toivonen <tero.toivonen@cc.jyu.fi> # Esimerkki perlin säännöllisistä lauseista. Tulostelee epämääräisesti # muuttujien arvoja. Lisää aiheesta: perlre ja perlretut. # käyttö: regexpeja.pl my $muuttuja = "jotain tekstiä ja muuta sellasta"; my $lkm=0; my ($alku,@loppu); regexpeja.pl # Ehtolauseessa, kun säännöllisen lauseen ehto täyttyy if ($muuttuja =~ /teksti/ ) { #tulostaa löytyi. #if ($muuttuja =~ /foo/ ) { #tulostaa ei löytynyt. #if ($muuttuja =~/^\S+/ ) { #tulostaa löytyi \S ==non whitespace. #if ($muuttuja =~ /^\s+$/ ) { #tulostaa ei löytynyt \s == whitespace, #^ == rivin alku ja $ == rivin loppu. #if ($muuttuja =~/^(.*\s+.*){3,/g ) { # tulostaa löytyi. #if ($muuttuja =~ /^(.*\s+.*){5,/g ) { #tulostaa ei löytynyt. print "löytyi\n"; else{ print "ei löytyny\n"; Mar 03, 04 16:51 Page 2/2 print "$lkm regex \"ja\" alku: $alku + $lkm = ($alku,@loppu) = $muuttuja =~ m/([^t]+)/g; print "$lkm regex \"t\" alku: $alku + # s funktiolla (substitute) vaihdetaan muuttujan säännöllinen lause # toiseen. Huom. etsimisessä ryhmitellyt "osumat" oletusmuuttujiin # $1..$9, joita voi käyttää sujuvasti. # Esim $x="foo"; $x=~s/foo/bar/; Niin $x=="bar". # Tässä vaihdetaan lauseen osat ja sanan kohdalta päikseen.. $muuttuja =~ s/^(.*)( ja )(.*)$/$3$2$1/; print "$muuttuja\n"; regexpeja.pl # sed tyyppinen edelliseen oletusmuuttujien osalta.. toimii # perlissäkin, mutta jos on varoitus optio päällä, niin tulkki # valittaa: # $muuttuja =~ s/^(.*)( ja )(.*)$/\3\2\1/; # tr funktiolla voi vaihtaa merkkien paikkaa. # Tämä vaihtaa kaikki j kirjaimet X kirjaimiksi ja a:t Y:ksi. $lkm = $muuttuja =~ tr/ja/xy/; print "muutoksia: $lkm\nmuuttuja nyt: \"$muuttuja\"\n"; $lkm = $muuttuja =~ tr/xy/ja/; print "muutoksia: $lkm\nmuuttuja nyt: \"$muuttuja\"\n"; # rot13 "kryptaus" tr:llä. $lkm = $muuttuja =~ tr/[a za Z]/[n za m][n ZA M]/; print "muutoksia: $lkm\nmuuttuja nyt: \"$muuttuja\"\n"; # ajetaan sama uudestaan muuttujalle > pitäisi olla alkuperäinen... $lkm = $muuttuja =~ tr/[a za Z]/[n za m][n ZA M]/; print "muutoksia: $lkm\nmuuttuja nyt: \"$muuttuja\"\n"; # split funktiolla katkaistaan muuttuja annetun säännöllisen lauseen # kohdalta. Jos "katkaisukohtaa" halutaan mukaan, niin sen ympärille # on laitettava kaarisulut. Tässä katkaistaan $muuttuja sanan "ja" # kohdalta. $lkm = ($alku,@loppu) = split(/ja/, $muuttuja); print "$lkm split \"ja\" alku: $alku + # Nyt katkaistaan $muuttuja kirjaimien "t" kohdalta. $lkm = ($alku,@loppu) = split(/t/, $muuttuja); print "$lkm split \"t\" alku: $alku + # Ja samat regexpin m funktiolla (match).. Nämä eivät ole yleispäteviä # split funktion korvaajia. $lkm = ($alku,@loppu) = $muuttuja =~ m/^(.*)ja(.*)/g; Wednesday March 03, 2004 regexpeja.pl 3/11
4 Mar 03, 04 16:04 Page 1/2 # tiedosto.pl by Tero Toivonen <tero.toivonen@cc.jyu.fi> # Esimerkki tiedostojen käyttämisestä perlillä. Lisää aiheesta: # perldoc perlfunc, IO ja IO::*. Kannattanee käyttää noita # IO moduleja.. # käyttö: tiedosto.pl # Tämä ohjelma lukee syötteitä STDIN:stä (näppäimistö, putki, jne) # Poistuminen ctrl c... # Autoflush päälle.. varmuuden vuoksi. perlfunc, perlipc ja perlport # perldoc:it kertovat lisää.. $ =1; tiedosto.pl # Luetaan STDIN:stä rivi kerrallaan oletusmuuttujaan $_. Tämän voisi # tehdä myös: while(defined (my $rivi = <STDIN>)) { ja käsitellään # $rivi muuttujaa... while(<stdin>) { # Palataan silmukan alkuun paitsi, jos syötteessä on syötteessä on # jotain muitakin kuin "whitespace" merkkejä. next unless /\S+/; Mar 03, 04 16:04 Page 2/2 print FD $_; # Suljetaan tiedostokahvat. close(fd); close(fh); $rivit[0]="$params[0] kopioitu tiedostoon $params[1]\n"; elsif(uc($komento) eq "CAT") { open(fh,"<$params[0]") or die "$params[0] ei voinu aukasta: = <FH>; close(fh); # Toinen tapa tehdä eo lukeminen... silmukan sisällä voi tietoa # käsitellä niinkuin haluaa. # while(defined (my $rivi = <FH>)) { chomp($rivi); # # print "$rivi\n"; # # Tulostuksia.. if(defined $rivit[0]) { foreach my $rivi (@rivit) { chomp $rivi; print "$rivi\n"; tiedosto.pl # Poistetaan mahdolliset rivinvaihdot rivin lopusta. chop funktio # poistaa oletuksena viimeisen merkin... chomp; # Jaetaan syöte komentoon ja parametreihin. my($komento,@params) = split(/\ /,$_); # Vastaava kuin $komento =~ /^dir$/i.. if(uc($komento) eq "DIR") { # Avataan hakemisto DIR nimiseen tiedostokahvaan. Tiedostokahvan # nimi ei ole merkitsevä. opendir(dir,$params[0]) or die "$params[0] ei voinu aukasta: $!\n"; # Luetaan hakemiston sisältö (tiedostojen nimet) = readdir(dir); # Suljetaan tiedostokahva. closedir(dir); elsif(uc($komento) eq "CP") { # Avataan ensimmäisenä parametrina annettu tiedosto lukemista # varten FH nimiseen tiedostokahvaan. open(fh,"<$params[0]") or die "$params[0] ei voinu aukasta: $!\n"; # Avataan toisena parametrina annettu tiedosto kirjoittamista # varten FD nimiseen tiedostokahvaan. open(fd,">$params[1]") or die "$params[1] ei voinu aukasta: $!\n"; # Luetaan FH tiedostokahvasta (tiedostosta)... while(<fh>) { #... ja kirjoitetaan se FD tiedostokahvaan (tiedostoon) Wednesday March 03, 2004 tiedosto.pl 4/11
5 Mar 03, 04 15:54 Page 1/1 # testi.cgi by Tero Toivonen <tero.toivonen@cc.jyu.fi> # Esimerkki perl modulien käyttämisestä ja cgi skriptistä. # käyttö: cgi ohjelmana www palvelimelta. # moduli, joka huolehtii siita ettei kayteta maarittelemattomia # muuttujia, vaatii my funktion, jolla maaritellaan muuttujat lokaaleiksi # lohkon tai nimiavaruuden sisalla. Mm. nopeuttaa tulkkaamista. use Tulosta; # Oma moduli, ja vaatii etta samasta alihakemistosta loytyy tiedosto # Tulosta.pm # Esimerkkina 2 tapaa luoda uusi tulosta tyyppinen muuttuja. my $t1 = new Tulosta("asia 1"); my $t2 = Tulosta >new("toinen juttu"); print "Content type: text/html\n\n"; # tulostetaan mita on muuttujissa ennen muutosta $t1 >tulosta(*stdout); print "<br>"; $t2 >tulosta(*stdout); print "<br>"; # suoritetaan katenointi $t1 >katenoi(" plaaah hiihoo"); $t2 >katenoi(" joo ja nii"); # tulostetaan lopputulos print "<br>katenoinnin jälkeen:<br><br>\n"; $t1 >tulosta(*stdout); print "<br>"; $t2 >tulosta(*stdout); print "<br>"; exit (0); testi.cgi Wednesday March 03, 2004 testi.cgi 5/11
6 Mar 03, 04 15:11 Page 1/1 # Tulosta.pm by Tero Toivonen <tero.toivonen@cc.jyu.fi> # Esimerkki omien modulien tekemisestä perlissä. # package maaraa mihin pakettiin kuuluu vrt. use Tulosta package Tulosta; # konstruktori jota kutsutaan kun luodaan # $uusitallainen = new Tulosta("alkuarvo"); # voi olla eriniminenkin,mutta new on vakiintunut sub new { my $this = shift; my $self = {; if(@_) { $self >{TIETO = $_[0] Tulosta.pm # bless:lla saadaan olio tietamaan missa paketissa se on. bless ($self, $this); return $self; # tulostaa itsensa sinne minka saa parametrinaan, aliohjelmakutsu # pitaa sisallaan sen itsensa, joka otetaan parametreista $self:iin. sub tulosta { my ($self, $fh) print $fh "$self >{TIETO" if ($fh and exists $self >{TIETO); # katenoi aliohjelma lisaa merkkijonon olion tiedon loppuun. sub katenoi { my ($self, $lisays) $self >{TIETO.= $lisays if ($lisays and exists $self >{TIETO); # HUOM! Moduleissa totuusarvo palautettava!= 0 1; Wednesday March 03, 2004 Tulosta.pm 6/11
7 Mar 03, 04 15:53 Page 1/2 # dbtesti.cgi by Tero Toivonen <tero.toivonen@cc.jyu.fi> # Esimerkki perl modulien käyttämisestä ja cgi skriptistä. # käyttö: cgi ohjelmana www palvelimelta. # Otetaan CGI moduli käyttöön. Lisää ko. modulista perldoc CGI use CGI; # Otetaan pari omaa modulia käyttöön. Näistä ei ole sen kummempia # dokumentaatioita :) Yleensä perldoc:it kirjoitetaan itse skriptiin # ja aiheesta lisää perldoc perlpod ja perlpodspec. use luettelodb; use User; # Uusi CGI "olio". Moduleista ja niiden käytöstä lisää: perldoc # perltoot. my $q=new CGI; my %users; # Uusi tietokantamoduli "olio". my $sql = new luettelodb(); # Haetaan tietokanta modulilta sinne varastoidut tiedot. Jokainen # sivun lataaminen hakee tietokannasta tiedot uudelleen. = $sql >hae_tyyppi(); my %nimet=(" " => " Valitse "); dbtesti.cgi Mar 03, 04 15:53 dbtesti.cgi Page 2/2 my $haettu; # Jos mukana on jotain parametreja (nyt: valittu jotain valikosta). if($q >param) { # haetaan arvo muuttujaan. $haettu = $users{$q >param( valinta ); # Tulostetaan tulos html tauluun. CGI modulista olisi varmasti # löytynyt myös taulujen muodostamiseen apuja, mutta voi ne tehdä # itsekin kirjottamalla haluamansa STDOUT:iin. print " <table border=1> <tr><td> $haettu >{ etunimi $haettu >{ sukunimi </td>"; foreach my $numero (keys %{$haettu >{ numerot ) { print "<td>$haettu >{ numerot >{$numero</td>\n"; print " </td></tr> </table>\n"; # Loppuun kiitokset ja kumarrukset. print $q >end_html; print "\n"; # Cgi ohjelman varsinkin on hyvä palauttaa jotain (0 == kaikki meni # ok). Palautusarvoja on muutenkin hyvä käyttää, niin niitä skriptejä # voi käyttää osana muita skriptejä ja niillä voi tehdä tarkistuksia # ko. ohjelman onnistumisesta. exit 0; # Käydään tiedot läpi. foreach my $tyyppi (@tyypit) { # $tyyppi on User modulin esiintymä. Perldoc UNIVERSAL kertoo # erimodulien tunnistamisesta ajon aikana yms. Nyt pistetään # jokainen $tyyppi hajautustauluun myöhempää (nopeaa) käyttöä # varten. $users{"$tyyppi >{ uid "=$tyyppi; # Tiedot pariin apumuuttujaan valikon rakentamista varten. push(@uids, "$tyyppi >{ uid "); $nimet{"$tyyppi >{ uid "="$tyyppi >{ etunimi $tyyppi >{ sukunimi "; # Tulostetaan (se näkyvä) sivu CGI modulin avulla. print $q >header, $q >start_html("luettelo"), $q >h3("otsikko tähän"), $q >start_form, $q >p("luettelo"), $q >popup_menu( name=> valinta, values=>[,@uids], labels=>\%nimet, default=> Valitse ), $q >p($q >submit( Kattotaas! )), $q >end_form(),$q >hr; Wednesday March 03, 2004 dbtesti.cgi 7/11
8 Mar 03, 04 15:13 Page 1/1 # Tulosta.pm by Tero Toivonen <tero.toivonen@cc.jyu.fi> # Esimerkki omien modulien tekemisestä perlissä. # Tämä moduli on puhelinluettelo esimerkin "User luokka". package User; my $uid; my $etunimi; my $sukunimi; my %numerot; sub new { my $proto = shift; my $class = ref($proto) $proto; my $this = {; bless($this,$proto); return $this; sub set_tiedot { my($this,$id,$etu,$suku) $this >{ uid =$id; $this >{ etunimi =$etu; $this >{ sukunimi =$suku; 1; User.pm Wednesday March 03, 2004 User.pm 8/11
9 Mar 03, 04 16:50 Page 1/3 # luettelodb.pm by Tero Toivonen <tero.toivonen@cc.jyu.fi> # Esimerkki perl modulien tekemisestä. # käyttö: perl ohjelman osana. Vrt. use luettelodb.pm # Tämä ei ole lähellekään valmis saatika hyvä esimerkki, mutta näin # tietokantaan saa yhteyden : ) Esimerkiksi perl modulit kannattaisi # nimetä isolla kirjaimella alkavaksi, tietokantahakuja suorittavat # osuudet voisi ehkä kirjoittaa järkevämmin (yleiskäyttöisemmin) jne. # Kerrotaan modulille mihin "pakettiin" se kuuluu. package luettelodb; use User; # Tietokantaliittymän ja tietokanta ajuri modulit käyttöön. use DBI; use DBD::Pg; my $driver = "DBI:Pg"; my $dbname = "luettelo"; my $hostname = "localhost"; my $port=5432; my $user="tietokantakäyttäjä"; my $pass="tietokantakäyttäjän_salasana"; # Luodaan tietokantayhteys... my $conn = DBI >connect("$driver:dbname=$dbname; host=$hostname; port=$port", "$user","$pass"); # "Konstruktori" sub new { my $proto = shift; my $class = ref($proto) $proto; my $this = {; bless($this,$proto); return $this; # Aliohjelma henkilötietojen hakemiseen. sub hae_henkilo { my $lause=shift; # Valmistellaan kysely... vrt. jdbc ja java.sql.preparedstatement. # Jos tulee monta samanlaista kyselyä peräkkäin, voidaan valmistella # kyselyn runko erikseen ja kertoa arvot erikseen. Lisää infoa # perldoc DBI. Tässä esimerkissä tätä ominaisuutta ei oikeasti edes # käytetä ennenkuin päivitetään johonkin useampia samanmoisia # tietoja (käyttäjän lisäyksessä useampi numero yhdellä # kertaa). Numeroiden haut voisi myös toteuttaa tätä ominaisuutta # hyväksikäyttäen. my $kasittelija = $conn >prepare($lause) die "pieleen meni.. suorita prepare.. ". luettelodb.pm Mar 03, 04 16:50 Page 2/3 $conn >errstr."\nsql: $lause\n"; # Suoritetaan kysely. $kasittelija >execute() die "pieleen meni.. suorita execute.. ". $kasittelija >errstr."\nsql: $lause\n"; my (@userit, $user); # Haetaan kyselyn tulokset rivi kerrallaan taulukkoon, jossa # jokainen tieto on erillinen taulukon alkio. = $kasittelija >fetchrow_array()) { # Luodaan uusi User esiintymä ja laitetaan sille juuri haetut # tiedot. Tämän jälkeen laitetaan uusi käyttäjä users taulukkoon. $user = User >new; $user >set_tiedot($rivi[0],$rivi[1], $rivi[2]); push(@userit,$user); # Palautetaan taulukko, jossa alkioina on haetut käyttäjät. # Aliohjelma numeroiden hakuun.. Pääasiassa samanlainen kuin # henkilötietojen hakuun käytetty aliohjelma. Tulos vain laitetaan # hajautustauluun. sub hae_numerot { my $lause=shift; my $kasittelija = $conn >prepare($lause) die "pieleen meni.. suorita prepare.. ".$conn >errstr."\nsql: $lause\n"; $kasittelija >execute() die "pieleen meni.. suorita execute.. ".$kasittelija >errstr."\nsql: $lause\n"; %nrot); while(@rivi = $kasittelija >fetchrow_array) { $nrot{$rivi[0] = $rivi[1]; return %nrot; # Aliohjelma käyttäjien lisäämiseen... Vastaava kuin eo. aliohjelmat. sub lisaa_henkilo { my $lause=shift; my $kasittelija = $conn >prepare($lause) die "pieleen meni.. suorita prepare.. ".$conn >errstr."\nsql: $lause\n"; $kasittelija >execute() die "pieleen meni.. suorita execute.. ".$kasittelija >errstr."\nsql: $lause\n"; my = $kasittelija >fetchrow_array) { $rivi = "@rivit"; return $rivi; # Aliohjelma yhden henkilön hakuun... Tämä konsultoi hae_tyypit # aliohjelmaa sujuvasti, jos on aihetta. sub hae_tyyppi { my ($this,$uid)=(shift, shift); luettelodb.pm Wednesday March 03, 2004 luettelodb.pm 9/11
10 Mar 03, 04 16:50 Page 3/3 if($uid!~ /\d+/) { return undef; return (&hae_tyypit($this,$uid)); # Aliohjelma yhden tai useamman henkilön hakuun... sub hae_tyypit { my ($this,$uid,@tyypit)=(shift, shift,undef); # Generoidaan sql kyselylause... HUOM! Puolipiste sql lauseen # loppuun! my $sql="select uid,etunimi,sukunimi FROM henkilo"; if(defined $uid and $uid =~ /\d+/) { $sql.= " WHERE uid=$uid;"; else { $sql.= ";"; # Haetaan henkilöt = (&hae_henkilo($sql)); luettelodb.pm # Haetaan jokaiselle tyypille erikseen puhelinnumerot. Tämän voisi # varmaan tehdä myös tuossa edellisen haun aliohjelmassa.. for(my $i=0;$i<@tyypit;$i++) { $sql="select pid,numero FROM puhelin WHERE uid=$tyypit[$i] >{ uid ;"; %{$tyypit[$i] >{ numerot = &hae_numerot($sql); # Aliohjelma uuden henkilön lisäämiseen tietokantaan. sub lisaa_tyyppi { my $this = shift; my ($etunimi,$sukunimi) = (shift,shift); my $sql = "INSERT INTO henkilo (etunimi,sukunimi) VALUES ( $etunimi, $sukunimi ); SELECT CURRV AL( henkilo_seq );"; # lisaa aliohjelma palauttaa uuden henkilön uid:n. my $uid = &lisaa("$sql"); return $uid; sub lisaa_numero { # Toteuttamatta... ; 1; Wednesday March 03, 2004 luettelodb.pm 10/11
11 Mar 03, 04 17:00 Table of Content Page 1/1 Table of Contents 1 muuttujat.pl... sheets 1 to 1 ( 1) pages lines 2 aliohjelma.pl... sheets 2 to 2 ( 1) pages lines 3 regexpeja.pl... sheets 3 to 3 ( 1) pages lines 4 tiedosto.pl... sheets 4 to 4 ( 1) pages lines 5 testi.cgi... sheets 5 to 5 ( 1) pages lines 6 Tulosta.pm... sheets 6 to 6 ( 1) pages lines 7 dbtesti.cgi... sheets 7 to 7 ( 1) pages lines 8 User.pm... sheets 8 to 8 ( 1) pages lines 9 luettelodb.pm... sheets 9 to 10 ( 2) pages lines Wednesday March 03, 2004 Table of Content 11/11
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
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=
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,
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 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.
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
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla
Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
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
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta
Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,
Ctl160 490160-0 Kolmas luento, 10.2.2003 Nicholas Volk Yleisen kielitieteen laitos, Helsingin yliopisto Ctl160 490160-0Kolmas luento, 10.2.2003 p.1/28 Unohtui viime kerralla... Skriptin ajaminen edellyttää
Harjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Makrojen mystinen maailma lyhyt oppimäärä
Makrojen mystinen maailma lyhyt oppimäärä Makrot osana SAS-teknologiaa Yleiskuva Jouni Javanainen Aureolis lyhyesti Aureolis on jatkuvia Business Intelligence -palveluita tuottava asiantuntijaorganisaatio
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
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
Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100
Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).
Korpusten käsittely clt131, P Luento 5
Korpusten käsittely clt131, P2 2006 Luento 5 Nicholas Volk 1.12.2006 Humanistinen tiedekunta Perl Perl niminen ohjelmointikieli mahdollistaa tekstin monipuolisen muokkaamisen helposti
Tietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava
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ä
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat
Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
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
Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu
Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on
Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b
Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')
Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)
VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,
TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 14.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 14.2.2011 1 / 55 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
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 raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
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
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
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
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
Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen
Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka
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ö
Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);
Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);
Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun
Sisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
1. Mitä tehdään ensiksi?
1. Mitä tehdään ensiksi? Antti Jussi i Lakanen Ohjelmointi 1, kevät 2010/ Jyväskylän yliopisto a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla
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
Sisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 24.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 24.1.2011 1 / 36 Luentopalaute kännykällä alkaa tänään! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
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
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,
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
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
20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)
Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä
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
17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
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
PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009
PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)
PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014
PHP-kielen perusteet 3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. Heredoc on ominaisuus PHP-koodaamisessa, jolla voidaan kirjoittaa pitkiä tekstejä
1 Tehtävän kuvaus ja analysointi
Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.
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
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
Liitokset - haut useaan tauluun
Liitokset Liitokset - haut useaan tauluun Tavallisin liitos on valintaliitos ehtona =,!=, yhtäläisyysliitos (=) yleisin (vrt. Inner join) taulut liitetään toisiinsa yleensä avaimilla (perus-
Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito
Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat.2 2. Asennusohje..2 3.
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
ASENNUS- JA KÄYTTÖOHJE
ASENNUS- JA KÄYTTÖOHJE YKSIKKÖHINTA SOPIMUKSEN TOTEUTUNEET MÄÄRÄT-SOVELLUS CMPRO5 VERSIO 2.8 PÄIVITETTY HEINÄKUU 2010 COPYRIGHT 2010 ARTEMIS FINLAND OY. ALL RIGHTS RESERVED. KÄYTTÖOHJE SIVU 2 (12) SISÄLLYSLUETTELO
PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki
PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet
Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:
KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee
C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys
Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,
1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
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
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
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);
Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun
Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008
Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)
Java-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä www.turkuamk.fi
Markku Suni Turun ammattikorkeakoulu Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä SAS Makrokieli SAS Makrokieli on kieli SAS-kielen laajennus datavaihetta muistuttavia lauseita ja funktioita
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
Kuva 7.2 vastaustaulu harjoitukseen 7.2
Harjoitus 7. Lataa tiedosto http://users.metropolia.fi/~pasitr/opas/ran13b/data/ran13b.zip levylle Z: ja pura se. Kun olet tehnyt kaikki seuraavat 17 tehtävää palauta Tuubiin harjoituksen 7 vastauksena
Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina
Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
Taustaa. CGI-ohjelmointi
Taustaa CGI-ohjelmointi CGI = Common Gateway Interface Hyvin yksinkertainen ja helppo tapa toteuttaa dynaamisuutta ja interaktivisuutta htmldokumentteihin Kehitetty tiedon siirtoon palvelimen ja asiakasselaimen
Ohjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 16.10.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 16.10.2019 1 / 25 Oppimistavoitteet: tämän luennon jälkeen Tunnet erilaisia tapoja käsitellä merkkijonoja. Osaat esimerkiksi
JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)
JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos
17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
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ä.
Mikä yhteyssuhde on?
1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä
Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen
Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not
etunimi, sukunimi ja opiskelijanumero ja näillä
Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi
Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006
TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa
Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)
HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n
Java ja tietokannan käsittely (JDBC)
Java ja tietokannan käsittely (JDBC) Javan tietokannan käsittely luokat (java.sql.*) Yhteys tietokantaan Tietokannan yhteyden sulkeminen Tiedon haku tietokannasta Tiedon päivitys tietokantaan Transaktio
Matlab- ja Maple- ohjelmointi
Perusasioita 2. helmikuuta 2005 Matlab- ja Maple- ohjelmointi Yleistä losoaa ja erityisesti Numsym05-kurssin tarpeita palvellee parhaiten, jos esitän asian rinnakkain Maple:n ja Matlab:n kannalta. Ohjelmien
Pikaohje formaatin valmistamiseen
Pikaohje formaatin valmistamiseen Esko Otava Oy ver.1.0 Pääikkunasta (tulostusikkunasta) valitaan Cards-Show cards manager Paina Add 2 Paina New Kortinsuunnitteluikkuna on jaettu kolmeen osaan: Vasemmalla
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