Silloinen ohjelma koostui rivinumeroiduista komennoista, jotka ohjelma suoritti peräjälkeen

Koko: px
Aloita esitys sivulta:

Download "Silloinen ohjelma koostui rivinumeroiduista komennoista, jotka ohjelma suoritti peräjälkeen"

Transkriptio

1 BASIC-ohjelmointikieli E.Korhonen Katsaus Basic-ohjelmointikielen kehitykseen: Basic-ohjelmointikieli levisi opiskelijoiden ohjelmoinnin harjoittelukieleksi luvulla ja jokaiseen kotitietokoneeseen mikrotietokoneiden myötä 1980-luvun alussa. Joissakin koneissa, kuten legendaarisessa Commodore 64:ssa, se oli oikeastaan käyttöjärjestelmän asemassa. Ohjelmoituja sovellutuksia: tekstinkäsittelyä ja pelejä, ajettiin kääntävän BASIC-tulkin avulla. Silloinen ohjelma koostui rivinumeroiduista komennoista, jotka ohjelma suoritti peräjälkeen 100 PRINT KERRO NIMESI 110 INPUT N$ 120 PRINT HASSU NIMI ;N$ Ohjelmaan kuuluivat rivinumerot, ja käyttöliittymä järjesti ohjelman aina rivinumeroiden mukaiseen järjestykseen. Hyppyosoitteena käytettiin rivinumeroita. 130 GOTO 100 Ensimmäiset työstökoneiden tietokoneliitännät Suomessa, tietokoneille talletettujen ohjelmien vaihdot NC-koneille, ja ohjelmointi NC-kooditekstinä, tehtiin 1980-luvun alussa näillä koneilla ja BASIC-ohjelmilla, Ylivieskan teknillisen oppilaitoksen vanhimman robotin, 1980-luvulla tehdyn portaalirobotin, ohjelmointikieli on hyvin lähellä perus-basicia lisättyinä liikekäskyillä: 200 MOVEXYZ(1000,1000,200) Ja tulojen ja lähtöjen lukemista ja asettamista 300 IF INP(47)=0 THEN GOTO OUT(45)=1 (Jos tulon 47 arvo on nolla, hypätään takaisin riville 300. Kun tulon arvo muuttuu

2 ykköseksi, jatketaan eteenpäin, ja asetetaan päälle lähtö 45.) Muuttujien nimillä on portaalirobotissa sama rajoitus kuin joissakin laskimissa: Vain isoja kirjaimia ja korkeintaan kirjain ja numero 400 X1=X0+I* MOVEX(X1) IBM PC:n ja myöhemmin AT:n myötä 1980-luvun puolivälissä tulivat tietokoneisiin mukaan kehittyneemmät Basicin versiot, Basica ja GWBasic. Niiden mukana tulleet asialliset parannukset ohjelmointiin olivat pienet, ympäristö vain muuttui standardisoiduksi PC:ksi edellisten merkkikohtaisten viritelmien jälkeen luvun loppupuolella Borland toi markkinoille menestyksekkäitten Turbo Pascalin ja Turbo C:n rinnalle Turbo Basic-ohjelmointikielen ja Microsoft kilpailevan Quick Basicin. Nämä tekivät teknillisen hyppäyksen Basic-kielen kehityksessä tarjotessaan rivinumeroista riippumattoman ohjelmoinnin ja kääntäjän, jotka kilpaileviin Pascal ja C-kieliin kuuluivat luonnostaan. Kääntäjän avulla alunperin tekstinä laadittu ohjelmakoodi muutetaan konekieliseksi, itsenäisenä ajettavaksi.exe sovellutukseksi, DOS tai nykyisin Windows-ympäristössä. Käännetty ohjelma on huomattavasti tulkkaavaa nopeampi toiminnaltaan, millä on merkitystä paljon laskentaa, porttiliikennettä tms. vaativissa sovellutuksissa. Käännösvaiheessa voidaan myös ottaa käyttöön ohjelmalle valmiiksi laadittuja lisäkirjastoja, lisätoimintoja. Visual Basicin.exe koodi ei kylläkään ole konekieltä, vaan sitä tulkataan ajon aikana ja siksi se on hidasta Quick Basicin ilman kääntäjää oleva, tulkkaava versio QBasic on kuulunut Doskäyttöjärjestelmäpakettiin 80-luvun lopusta lähtien Rivinumeroinnista riippumaton ohjelmakoodi puolestaan tekee mahdolliseksi rakenteellisen ohjelmoinnin, ohjelman pilkkomisen erilaisiin toiminnallisiin osiin, aliohjelmiin, joita kutsutaan parametrien avulla, ja jotka palauttavat arvon. Rivinumeroinnista luopumisen jälkeen ohjelman etenemistä ohjataan pääasiassa aliohjelmakutsuilla ja tarvittaessa hyppyosoitteilla: ON ERROR GOTO LOPPU

3 määrittely ohjelman alussa. Ohjelmakoodia.. LOPPU: sanan tuntee osoitteeksi kaksoispisteestä : close suljetaan tiedostot ja portit END Ohjelman loppu Aiemmin mainituissa Basic-versioissa ääkköset kelpasivat vain merkkijonojen sisältöön, ei vielä muuttujiin eikä hyppyosoitteisiin. Visual Basic 1990-luvun puolivälissä läpimurron tehnyt Microsoftin Visual Basic (Markkinoilla on nyt versio 6.0, jonka erot edellisiin 3.0 ja 4.0 versioihin ovat pienet) tuntee lähes koko vanhempien Basic-kielten käskykannan ja paljon lisää ja osaa seurata enimmäkseen vanhojenkin ohjelmien rakennetta. Ongelmia aiheuttavat lähinnä suorat laiteohjaukset portteihin, muistiin ja näyttöön ja muuttujien näkyvyysalueet. Vanha viivekomento Delay on myös jätetty syrjään, mikä hankaloittaa laiteohjauksessa tarpeellisten viiveiden ohjelmointia. Ajatuksellisesti Visual Basic lähestyy käyttäjää eri tavalla kuin aikaisemmat ohjelmat: Vanhat Basic-ohjelmat (Niin myös Pascal, C, Fortran ja LISP) etenevät käynnistyksen jälkeen rivi riviltä, jäävät johonkin odottamaan käyttäjän syöttämää arvoa ja jatkavat edelleen, hyppäävät ehtojen mukaan mahdollisesti alkuun. Visual Basic-käyttöliittymä reagoi tapahtumiin, keskeytyksiin Visual Basic on rakennettu käyttöliittymältään keskeytysajatuksen pohjalle. Ohjelman käyttöliittymä odottaa käyttäjän tekemää tapahtumaa, esim. johonkin kontrolliin vaikuttamista, painikkeen klikkaamista. Painikkeen klikkaaminen aktivoi painikkeeseen liitetyn aliohjelman suorittamisen. Visual Basicin kilpailijoiksi ovat ilmestyneet Borlandin Delphi (tehty Pascal-pohjalle ja Visual C++, tehty C-kielen pohjalle) Kontrolleihin vaikuttamisella käynnistettävät aliohjelmat ovat rakenteeltaan sitten

4 perinteisempää Basic-koodia muistuttavia, SUB(). END SUB aliohjelmia. Selvimpinä eroina perinteisiin Basic-ohjelmiin ovat viittaukset lomakkeella oleviin kontrolleihin: Leveys = Val(Text1.Text) Sijoituslause toimii niin kuin perinteisen Basicin sijoituslause: Oikean puolen arvo sijoitetaan vasemman puolen muuttujalle. Text1.Text viittaa teksti-ikkunaan Text1 (kontrollin nimi) kirjoitettuun ominaisuuteen.text, joka voi olla käyttäjän syöttämä lukuarvo, näkyy tekstinä Jotta tekstiä voidaan käsitellä lukuna Leveys, sen arvo, value pitää lukea funktiolla Val( ) Toinen ero on muuttujien näkyvyys: Välillä Sub().. End Sub siellä käsitellyllä muuttujalla, esim Leveys on sille syötetty arvo. Muualla ohjelmassa, muissa aliohjelmissa, muuttujan Leveys arvoa ei tunneta ja sitä pidetään todennäköisesti nollana. (Jos ei erikseen käydä määrittelemässä ohjelmalle muuttuja Leveys sellaiseksi, että sen arvo tunnetaan kaikkialla) Visual Basic on samalla myös Microsoft Accessin ja Excelin sovellutusten ohjelmointikieli. Haluttaessa voidaan näihin ohjelmoida tapahtumia esim. laskun viitenumeron tarkistussumman laskenta koodaamalla tapahtuma Access-raporttiin Basicin käskyillä. Ohjelman pilkkominen kontrolleja seuraavaksi rivi riviltä etenevän, pääohjelman ja aliohjelmakutsujen mukaan etenevän sijasta tekee siitä helposti sekavan, vaikean hallita. Siksi Visual Basic sopii lähinnä pieniin, yhden ihmisen tekemiin sovellutusohjelmointitehtäviin, koneiden käyttöliittymiin jne.

5 Basicin muuttujat: Kaikilla ohjelmassa käytettävillä muuttujilla on nimi, muutaman merkin mittainen merkkijono. Aikaisemmin ääkkösiä piti välttää, mutta ei enää Windows95 ympäristöstä ja Visual Basicista alkaen Muuttujanimissä ei edelleenkään siedetä välilyöntejä, väliviivoja (sekoittuu miinusmerkkiin) eikä pisteitä. Väliviivan sijasta voidaan haluttaessa käyttää alaviivaa Suurin_Arvo = 1000 Basic toisin kuin C ja Lisp ei erottele suuria ja pieniä kirjaimia, joten niiden käytölle ei ole sääntöjä. Luettavuutta helpottaa erikokoisten kirjainten sopiva yhdistely Portaalirobotin MS Basic ei hyväksi lainkaan pieniä kirjaimia (Sama koskee yleisesti NC-koneita ja osin liikeohjaimia) Muuttujanimet ovat useimmiten kirjaimien ja numeroiden yhdistelmiä: A, A1, Alku, loppu, kerroin jne ovat lukuja Tarkemmin ottaen lukutyyppisiä muuttujia on vielä muutamaa eri lajia, kokonaislukuja ja liukulukuja eri pituisina. A=10 Muuttujalle A sijoitetaan lukuarvo 10 Kerroin=0.5 Desimaalipiste eikä pilkku Input "Montako ",Loppu Kysymys ja talletus muuttujaan Loppu A%, Alku% jne% % tarkoittaa kokonaislukuja, Integer (edellisiä nopeampia käsitellä, vähemmän muistiavieviä, alue n ) A%=8

6 DIM Lavoja as Integer Muuttujan esittely kokonaisluvuksi Kokonaislukujen lukualue Integer kattaa luvut n ( Jos nämä eivät riitä, esim pulssilaskennassa, pitää käyttöön ottaa tyyppi Long Integer, nimessä &, Pulssit& jne, jossa on kaksinkertainen määrä bittejä ja lukualue nousee toiseen potenssiin. Integer-lukutyyppiä käytetään tyypillisesti luonnollisille luvuille, kappalemäärille, järjestysnumeroille jne. Järjestysnumeroksi desimaaliluku 0.5 tms ei kelpaakaan. Jos luvun tyyppiä ei määritellä tarkemmin, sitä käsitellään liukulukuna. (Kerroin x 10 potenssiin potenssi) Tästä on harmia silloin, kun laskutoimitusten jälkeen tulee pyöristysvirheitä, ja arvoksi tai järjestysnumeroksi esim , tai kun pitäisi käsitellä tarkasti suuria kokonaislukuja kuten pulssimääriä. Useimmiten lukutyyppiset muuttujat toimivat kuitenkin hankaluuksitta ilman tyyppimäärittelyä, kunhan ei syötetä mielettömiä arvoja. A$, Mjono$, Polku$, Nimi$ Ovat merkkijonoja A$="ALKU" Polku$="C:\PB\" Input "Nimesi ",Nimi$ Nimi$=Text1.Text Vanhaa Basicia Visual Basic-lause Tiedosto$="Tiedot.lst"

7 INDEKSOIDUT MUUTTUJAT: Indeksoituun muuttujaan viitataan nimen ja indeksin, järjestysnumeron avulla A(i) Lukuja A(1), A(2)... A%(2) Kokonaislukuja A%(1), A%(2) jne DIM Nimi$(100) as String varaudutaan sataan nimeen ohjelman esittelyosassa Nimi$(nro%)= Merkkijonoja Nimi$(1), Nimi$(2) jne Nimi$(1)= Eero Taulukko$(1,2) Merkkijonotaulukko Kun käytetään indeksointia, samalla muuttujan nimellä voidaan osoittaa eri muuttujiin, kuten 1- tai 2-ulotteisen taulukon eri ruutuihin, joissa rivi- ja sarakenumero ovat indekseinä. Etunimi$=Taulukko$(i%,1) Sukunimi$=Taulukko$(i%,2) Tässä i% voisi olla juokseva numero esim Jos indeksoitujen muuttujien lukumäärä, järjestystä osoittava indeksi on suurempi kuin 10, ohjelman alussa on tehtävä muistin varaus DIM-lauseella, esim DIM A%(1000) DIM Nimi$(100) Samanlainen DIM-esittely Visual Basic-ohjelman General-alueella tekee muuttujan arvon näkyväksi koko ohjelmassa. Indeksoidut kontrollit VB:ssa Visual Basicin kontrolleja kopioitaessa ohjelma kysyy, tehdäänkö kontrolleista Array,

8 tämä tarkoittaa indeksoitua kontrollia. Myönteinen vastaus tuottaa indeksoidun kontrollijoukon, jota on helppo käsitellä ohjelmallisesti: Text1(0). Text1(1). jne

9 Muuttujan arvon asettaminen Ohjelmointikielten sijoituslause on yleensä tyyppiä: A = 10 A = A+1 Pituus = Len(Luetturivi$) Ala = Pi*(D/2)^2 Se tarkoittaa, että katsotaan = merkin oikealla puolella olevien muuttujien senhetkinen arvo ja tehdään tarvittavat matemaattiset operaatiot. Lopputulos sijoitetaan vasemmanpuoleisen muuttujan arvoksi Siksi matemaattisesti järjetön lause sopii ohjelmointiin oikein hyvin A = A+1 Matematiikassa on todella vaikea löytää lukua, johon voidaan lisätä yksi ja se silti säilyy ennallaan. Ohjelmoinnissa lause tarkoittaa sitä, että luetaan muuttujan A arvo ja sijoitetaan sen paikalle yhtä suurempi luku. Sijoituslauseella asetetaan aina = Merkin vasemmanpuoleinen arvo, ei oikeanpuoleista A = B Asettaa A:n arvon B:n mukaiseksi, ei päinvastoin. = merkin oikealla puolella on usein kasa funktiokutsuja, jotka palauttavat arvon. Funktio Len( ) palauttaa sille syötetyn merkkijonon pituuden. Pituus=Len(Merkkijono$) Jotta sijoitus onnistuisi ja = merkin oikean puolen arvo voidaan sijoittaa vasemman puolen muuttujalle, näiden täytyy olla muuttujatyypiltään samanlaisia: Kokonaislukutyyppiseen muuttujaan nimenpituus voidaan sijoittaa luku, esim

10 Nimenpituus = Len(Nimi$). Merkkijonomuuttujaan Nimi$ voidaan lukea esim Visual Basicin teksti-ikkunaan kirjoitettu teksti Nimi$ = Text1.Text Funktion palauttama arvo ja sen tyyppi määritellään funktion sisällä. Matemaattiset funktiot palauttavat yleensä luvun. Minkätyyppinen luku saadaan palautteena, vaihtelee. Merkkijonoja käsittelevät funktiot palauttavat usein merkkijonon. Merkkijono$= Eero Korhonen Alku$=Left$(Merkkijono$,3) Vasemman laidan 3 merkkiä Eer Merkki4$=Mid$(Merkkojono$,4,1) Tulee neljäs merkki o Jos muuttujalle ei aseteta mitään arvoa, se on nolla, satunnainen tai edellisellä käyttökerralla muistiin jäänyt arvo. Viimeinen on tyypillinen tilanne esim. robotiikassa. Koneen omaan muistiin, rekisteriin kirjoitettu säilyy kunnes se tietoisesti muutetaan tai nollataan. Siksi ohjelman käyttämät muuttujat kannattaa ohjelmallisesti nollata ennen niiden käyttöönottoa, esim MenossaOlevaLava = 0

11 BASICIN TAVALLISIMMAT LUUPIT Luuppi = Silmukka, jota ohjelma kiertää ehtojensa mukaan Halutun toistomäärän tekevä luuppi on useissa ohjelmointikielissä For Next For-Next rajattua ohjelmanosaa kierretään for-lauseessa määritetyn ehdon mukaan Esim: summa=0 alkuarvon nollaus luuppi kierretään muuttujan i arvoilla 1,2,3 jne 10 For i = 1 to 10 'luupin alku summa = summa + i next i 'luupin loppu print "Lukujen 1 10 summa on ";summa For-luupista päästään ulos haluttaessa sen sisällä olevalla goto-hypyllä tai ehtolauseella If (..mikälie ehto) then exit for Esim. Laippojen poiminta-ja pinoamiskorkeuden laskeminen portaalirobotilla 200 CLS 210 INPUT "LAIPPOJA PINOSSA ",N 220 INPUT "LAIPANPAKSUUS ",L1 230 Z1=500 (Kuormalavan pinnan z-koordinaatti)

12 240 FOR I=1 TO N (poimitaan kaikki) 250 Z2=Z1-( N-I )*L1 (poimintakorkeus) ajo poimintapaikkaan ja kappaleen poiminta mukaan MOVEZ(Z2) 300 Z3=Z1-I*L1 (pudotuskorkeus) ajo pudotuspaikkaan ja kappaleen pudotus MOVEZ(Z3) NEXT I END

13 Esim. Sanan kääntäminen takaperin (Palindromin teko) VB:llä Lomakkeelle tarvitaan kaksi tekstiruutua Text1 ja Text2 Käännös saa tapahtua esim kun tekstiruudun Text1 sisältö muuttuu Sub Text1_Change() Sana$ = Text1.Text Pituus = Len(Sana$) Nurin$ = aloitetaan tyhjästä merkkijonosta if pituus>1 then For i = Pituus to 1 step 1 luetaan merkit takaperin Merkki$ = Mid$(Sana$,i,1) merkit käsittelyyn yksi kerrallaan Nurin$ = Nurin$ + Merkki$ Lisätään Merkki$ merkkijonoon Nurin$ Next i Text2.Text = Nurin$ end if End Sub

14 Epämääräiseen määrään toistokertoja sopii While-Wend luuppi, jota kierretään, kun ehto on tosi Esim. Tekstitiedoston luku ja Näyttäminen listaikkunassa VB:llä Ruudulla tarvitaan 3 alkiota: Toiminnan käynnistävä komentopainike (Command Button) CommonDialog alkio, jolla Windowsissa etsitään tiedostoja Listaikkuna List1 Komentopaikikkeen klikkaamisella aktivoituvaksi koodiksi sopii esim: Sub Command1_Click() CommonDialog1.Filter= (*.*) *.* CommonDialog1.FilterIndex=1 CommonDialog1.Action=1 avataan lukemista varten, kirjoitus olisi 2 Tiedosto$ = Tiedosto$ = CommonDialog1.FileName If Tiedosto$ <> jos on valittu tiedoston nimi List1.Clear listaikkunan putsaus

15 Open Tiedosto$ for input as #1 'tiedoston avaus While NOT EOF(1) 'luetaan tiedoston loppuun saakka Line input #1,Rivi$ luetaan tiedosto rivi kerrallaan ja talletetaan kunkin rivin teksti muuttujaan Rivi$ List1.AddItem Rivi$ Lisätään rivi alkioksi listaikkunaan Wend close #1 While Wend alueen loppu 'tiedoston sulku end if oliko valittu tiedosto End sub Aliohjelman loppu

16 While-wend-luupille voidaan antaa mikä tahansa suoritusehto: While Ulos<>1 ohjelmaa... luupista poistutaan vasta kun muuttuja Ulos saa arvon 1, esim homma tehty loppuun Wend Vanhoissa Basic ohjelmissa käytettiin paljon GOTO-hyppyjä Niillä on vieläkin omat käyttökohteensa esim Ohjelman alussa On Error GOTO Katsovirhe GOTO-käskyä vastaavat ehdottomat ja ehdolliset hyppytoiminnat kuuluvat myös useiden koneohjausten ohjelmakäskyihin. Goto-hypyn muoto QBasicissa ja Visual Basicissa on: Alku: 'Hyppyosoite ohjelmaa... If Lopetetaan=1 then goto ulos GOTO Alku 'Ehdoton hyppy alkuun Ulos: End tai vaihtoehtoisesti Alku: End Ohjelmaa If Ulos<>1 then GOTO Alku 'Ehdollinen hyppy

17 Aliohjelmakutsu, jolla käväistään suorittamassa aliohjelma ja jatketaan sitten ohjelmaa kutsua seuraavalta riviltä on Basiceissa GOSUB Pääohjelmassa GOSUB Aliohjelmannimi END Aliohjelmannimi: tunnetaan nimeksi kaksoispisteestä palataan takaisin, kun löydetään loppumerkki RETURN

18 PORTTILIIKENNE Tietokoneen ohjaamassa automaatiossa keskeisessä liitäntään, sarjaliikenneporttiin kirjoitetaan perinteisissä ohjelmointikielissä niin kuin kirjoitetaan avattuun tiedostoon. Portti avataan kirjoittamista varten kuten tiedosto, kertoen samalla liikenneparametrit ja mahdollisesti kättelyt Useassa Basicissa portinavaus tehdään muodossa Open COM2:9600,N,8,1,RS,CS,DS,CD as #1 Tämän jälkeen porttiin voidaan kirjoittaa Print #1, NCohjelmanrivi$ Print #1 komento kirjoittaa porttiin rivin ja heittää perään rivinvaihtomerkit Vastaavasti portista voidaan myös lukea Visual Basicissa em menettely ei toimi, vaan porttiin kirjoitetaan Windows-ohjaimien avulla. Porttiliikennettä varten on oma kontrolli, ensimmäinen niistä on nimeltään MSComm1. Sille kerrotaan ominaisuuksiksi vähintään liikenneparametrit, käytetty portti ja kättelytyyppi. Tavallisimmin koneiden tiedonsiirtoon käytetään porttia COM2, koska COM1 on usein hiiren käytössä. Kontrollin nimellä MSComm1 ei ole tekemistä portin kanssa. Käyttöä varten portti on avattava esim lomaketta avattaessa Sub Form_Load() MSComm1.PortOpen=True

19 End sub Ja käytön jälkeen se kannattaa sulkea MSComm1.PortOpen=False Windows sallii vain yhden sovellutuksen kerrallaan hallita sarjaliikenneporttia, ja avoin portti estää mm. Windowsin omien terminaaliohjelmien käytön. Esim. Listaikkunan sisällön syöttäminen porttiin Edellä kuvattu tekstitiedoston haku listaikkunaan sopii yksinkertaiseksi NC-ohjelman siirto-ohjelmaksi, kun se täydennetään tiedonsiirto-ominaisuudella. Lomakkeella pitää olla tiedonsiirtoobjekti MsComm1, jolle on määritelty sopivat liikenneparametrit, esim Portti ,E,7,1 Portti avataan esim lomaketta ladattaessa (Windows sallii vain yhden hallintaohjelman portille kerrallaan) Sub Form_Load() MsComm1.PortOpen = True End sub Sub LähetäKoodi_Click() Komentopainikkeelle sijoitettu koodi For i=0 to List1.ListCount-1 listan rivinumerot juoksevat nollasta lähtien List1.ListIndex=i Millä rivillä ollaan menossa

20 MSComm1.Output=List1.Text+chr$(13)+chr$(10) rivin perään Enter-rivinvaihtomerkit CR ja LF End Sub next i

21 Jotkin laitteet vaativat monimutkaisemman protokollan tarkistussummineen Esim Omron CPM1:n datamuistin kirjoittaminen ja lukeminen Kirjoitusprotokolla alkaa joka on kirjoitettu tekstiruutuun Text1 Datamuistiin kirjoitettava uusi arvo esim 0050 kirjoitetaan tekstiruutuun Text2 Merkkijono tarkoittaa logiikan nro 00 Datamuistin kirjoittamista osoitteesta DM0000 alkaen Perään pitää sitten lisätä uusi arvo neljällä Heksadesimaalimerkillä Näiden perään liitetään kahden heksadesimaalimerkin pituinen tarkistussumma, * ja Enter Lomakkeelle tarvitaan kaksi tekstiruutua tiedon syöttöön Text1 ja Text2 Datamuistia kirjoitettaessa tekstiruutuun Text1 kirjoitetaan ja samaa datamuistia Datamuistia kirjoitettaessa tekstiruutuun Text2 kirjoitetaan uusi arvo esim 50 ja datamuistia luettaessa siihen kirjoitetaan luettavien muistisanojen määrä esim 1 kaksi tarvitaan tekstiruutua palautteen lukemiseen Text3 ja Text4

22 Porttiin liikennöimiseen tarvitaan objekti Mscomm1, jonka ominaisuudet ovat esim Portti , E,7,2 (Baudit, pariteetti Even, 7 Databittiä, 2 stop.bittiä) Portin lukemiseen sopii ajastin, Timer1, jonka käyntiväli, interval on esim 1000 millisekuntia Komentopainike aktivoi viestin kirjoittamisen, sen nimeksi esim KirjoitaViesti (Nimessä ei saa olla välilyöntejä) Ohjelmakoodiksi riittää: Private Sub Form_Load() MSComm1.PortOpen = True Timer1.Enabled = True End Sub Private Sub KirjoitaViesti_Click() Komentopainikkeen koodi Timer1.Enabled = False uusiarvo$ = Right$("0000" + Trim(Text2.Text), 4) Edellinen rivi tekee esim tekstistä 50 merkkijonon 0050 Kokoteksti$ = Text1.Text + uusiarvo$ Tarkistussumma lasketaan XOR-opetaariolla merkkijonon kaikille merkeille peräjälkeen tarksumma = 0 pituus=len(kokoteksti$) Katsotaan viestin pituus For i = 1 To pituus

23 merkki = Mid$(Kokoteksti$, i, 1) Yksi merkki kerrallaan käsittelyyn Next i tarksumma = tarksumma Xor Asc(merkki) Tarkhex$ = Hex$(tarksumma) Luku Heksadesimaalimerkiksi Tarkhex$=Right$( 00 +Tarkhex$,2) tarvitaan aina kaksi merkkiä, tämä lisää tarvittaessa nollia eteen ja jättää jäljelle 2 merkkiä Porttiin kirjoitetaan tekstilitania, perään tarkistussumma, * ja Enter End Sub MSComm1.Output = Kokoteksti$ + Tarkhex$ + "*" + Chr$(13) Timer1.Enabled = True Käynnistetään porttia lukeva ajastin Private Sub Timer1_Timer() Tämä koodinpätkä suoritetaan aika-ajoin Kun Timer1 on Enabled Vastaus$ = MSComm1.Input Portin sisältö Text3.Text = Vastaus$ Näkyviin ruudulle Etsitään vastauksesta olennainen tieto If Len(Vastaus$) > 10 Then Maara$ = Right$(Vastaus$, 12) Luku$ = Left$(Maara$, 4)

24 End Sub End If Text4.Text = Luku$

25 Lyhyt yhteenveto BASICien peruskäskykannasta, jossa on pieniä versiokohtaisia eroja ABS( n ) luvun n absoluuttiarvo, etumerkitön luku ASC( merkki$ ) merkin Ascii-arvo, luku arvoltaan ATN( n ) CHR$( n ) kulman arcus-tangentti, palauttaa arvon -pi/2.pi/2, kulman radiaaneina 90 asteen tasajaolla erikoistapauksissa virhetilanne tai väärä tulkinta ascii-numeron n mukainen merkki tavallisimpia erikoismerkkejä ovat rivinvaihtomerkit yms, joita pitää kirjoittaa näillä MsComm1.Output = Chr$(13) Tabulaattori$ = chr$(9) Enter$ = Chr$(13) + Chr$(10) Carriege Return ja Line Feed CLOSE #n CLS COS( n ) DATE$( ) DIM vektori( n) Tiedoston #n sulkeminen Ruudun putsaus kulman n (radiaaneja) kosini päivämäärä indeksoidun muuttujan muistinvaraus EOF( #n ) end-of-file tieto luettaessa tiedostosta #n While not EOF(1)

26 Line input #1, Rivi$ List1.AddItem Rivi$ Wend END EXP( n ) ohjelman loppu e^n FOR...NEXT luuppi For i=1 to 10 Print i next i GET #h, n GOSUB osoite random access muistinluku tiedostosta #h tavu n aliohjelmakutsu IF PortissaOnTavaraa then Gosub LueSisältö GOTO osoite hyppykäsky if OnAikaLopettaa then Goto Loppu IF THEN ehdollinen toiminta kirjoitetaan perään IF I<10 THEN rivi=1 Jos yksi rivi, kirjoitetaan samalle riville Jos rajataan useampi rivi, ehtorivi lopetaan Then seuraaville riveille koodia End If IF THEN ELSE

27 END IF Inkey$ Monimutkaisempi rakenne Näpäytetty merkki Merkki$=Inkey$ INP(portti) I/O-portista luettu tavu (Ei Visual Basic) PrintteriPortinTila=INP(889) INPUT luettu merkkijono Enteriin saakka INPUT #h,muuttuja luetaan avatusta tiedostosta nro #h arvo muuttujalle INPUT$( #h, n ) luetaan n merkkiä avatusta tiedostosta nro #h INSTR(merkkijono$,merkit$) etsitään merkkijonosta sisältö merkit$ ja palautetaan löytökohta 1, jos ei löydy, palautetaan 0 PilkunPaikka=Instr(Merkkijono$,, ) INT( n ) luku n katkaistuna kokonaisluvuksi jos halutaan pyöristys ylöspäin, lisätään 0.5 Sopii hyvin myös desimaalien määrän rajoittamiseen, seuraavassa kahteen Luku=2/3 Luku=Int(100*Luku+.5)/100 tulee lujasti desimaaleja desimaalit vähenevät KILL tiedosto$ Tuhoaa tiedoston tiedosto$, jos se on olemassa, muuten tulee virhetila LEFT$( merkkijono$, n ) merkkijonon vasemmasta laidasta n merkkiä jos ei riitä, virhetila if len(merkkojono$)>3 then Alku$=Left$(Merkkijono$,4) end if

28 LEN( merkkijono$ ) merkkijonon$ pituus LINE INPUT LOG( n ) rivin lukeminen tiedostosta rivinvaihtomerkkiin saakka luonnollinen logaritmi n:stä LCASE$( merkkijono$ ) merkkijonos$ pikkukirjaimilla MID$( merkkijono$,i,n) merkkijonosta otettu pätkä, n merkkiä paikasta i alkaen pituus=len(merkkijono$) for i=1 to pituus Merkki$=Mid$(merkkijono$,i,1) print asc(merkki$) next i OPEN avaa tiedosto tai portti (portti ie VB:ssa käy näin) Open MikäHyvänsä.txt for input as #1 While not EOF(1) line input #1,rivi$ print rivi$ Wend Close #1 OPEN "COMn:..." tietoliikenneportin avaus (Ei VB:ssa näin) Open Com2:9600,n,8,1,rs,cs,ds,cd as #2 OUT portti, tavu tavun kirjoittaminen porttiin tai muistitavuun (Ei VB:ssa) Portti=888 LPT1:n tavallinen osoite Out Portti,255 Kaikki bitit päälle PRINT printtaa lomakkeelle tai näyttöön PRINT #h,muuttuja muuttujan arvon kirjoittaminen numerolle #h avattuun tiedostoon tai porttiin (Porttiin ei VB:ssa mene näin) PUT #h, n random access tiedostoon #h kirjoitetaan n tavu

29 REDIM RETURN indeksoidun muuttujavektorin uudelleen määrittäminen aliohjelman viimeinen rivi, paluu GOSUB kutsua seuraavalle riville RIGHT$( merkkijono$, n ) n merkkiä merkkijonon oikeasta laidasta, virhetila, jos ei riitä merkkejä RND Satunnaisluku 0 vähän alle 1, joka kannattaa alustaa, jotta ei toista itseään Esim KertolaskunKyselijä: Randomize Timer vastaus=0 while vastaus<>9999 print 9999 lopettaa arvokysymys: Luku1=int(10*RND)+1 tulee 1 10 Luku2=int(10*RND)+1 tulee 1 10 kysy: print Luku1; * ;Luku2; = input vastaus if vastaus=luku1*luku2 then print Hyvä goto arvokysymys end if print Yritä uudelleen goto kysy wend SIN( n ) kulman n (radiaaneja) sini

30 SQR(n) STR$( n ) luvun n neliöjuuri. n ei saa olla negatiivinen luku n merkkijonoksi, ascii-merkeiksi Text1.Text=Trim$(Str$(luku)) TAN( n ) TIME$( ) kulman n (radiaaneja) tangentti Nykyinen tietokoneen aika merkkijonona TRIM$( merkkijono$ ) UCASE$(Merkkijono$) putsaa merkkijonon välilyönneistä, tarpeen etenkin lukuja muutettaessa merkkijonoksi, muuten tyhjä etumerkin paikka kiusaa Merkin tai merkkijonon muutos isoille kirjaimille Line input #1,Merkkijono$ If Instr(Ucase$(Merkkijono$), POLYLINE )>0 then end if Tämä suoritetaan olipa Polyline-teksti kirjoitettu pienellä tai isolla Ucase$ tekee siitä ison VAL( merkkijono$ ) merkkijonon tulkinta luvuksi Jos alkaa muilla kuin numeromerkeillä, palautetaan 0 WHILE...WEND luuppi Merkkijono$=text1.text pulssejamillille=100 ajomillit=val(merkkijono$) pulssit=pulssejamillille*ajomillit laskentaa voidaan tehdä vain luvuilla

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

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

Lisätiedot

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

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,

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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ä

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Java-kielen perusteet

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.3.2010 1 / 36 Monikko Monikko (engl. tuple) muistuttaa listaa, mutta monikon sisältöä ei voi muuttaa sen jälkeen,

Lisätiedot

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 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

Lisätiedot

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

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,

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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.

Lisätiedot

Luvuilla laskeminen. Esim. 1 Laske 6 21 7

Luvuilla laskeminen. Esim. 1 Laske 6 21 7 Luvuilla laskeminen TI-84 Plus käyttää laskujen suorittamiseen ns. yhtälönkäsittelyjärjestelmää (EOS TM, Equation Operating System), jonka avulla lausekkeiden syöttö tapahtuu matemaattisessa kirjoitusjärjestyksessä.

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Python-ohjelmointi Harjoitus 2

Python-ohjelmointi Harjoitus 2 Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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ä

Lisätiedot

1.12.2006 NOKEVAL SCL. Käyttöohje

1.12.2006 NOKEVAL SCL. Käyttöohje 1.12.2006 NOKEVAL SCL Käyttöohje PROTOKOLLA Sarjaliikenneasetelut Nokevalin laitteet käyttävät poikkeuksetta 8N1-bittiprotokollaa, eli 8 databittiä, ei pariteettibittiä ja yksi stopbitti. Baudinopeuksia

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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,

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

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

Lisätiedot

Kielioppia: toisin kuin Javassa

Kielioppia: toisin kuin Javassa Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 8.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 8.2.2010 1 / 38 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta ohjelma

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

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,

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

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,

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu

Lisätiedot

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA Tavallisimmin lukuja käsittelevien datasanojen tyypiksi kannattaa asettaa kokonaisluku 16 bitin INT, jonka vaihtelualueeksi tulee

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 10.10.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 10.10.2018 1 / 20 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten ohjelman toimintaa voi tutkia ja ohjelmassa

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 4.10.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 4.10.2017 1 / 23 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 28.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 28.9.2015 1 / 16 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

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')

Lisätiedot

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

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).

Lisätiedot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot Tiedosto yhteenkuuluvien tietojen joukko, joka on tavallisesti talletettu pysyväismuistiin muodostuu tietueista, jotka voivat olla keskenään samanlaisia tai vaihdella tyypiltään tiedostot ovat joko tekstitiedostoja

Lisätiedot

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 27.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 27.9.2017 1 / 30 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 14.10.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 14.10.2015 1 / 32 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Harjoitus 2 (viikko 45)

Harjoitus 2 (viikko 45) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP2 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 17. toukokuuta 219 Yleistä Tentti 1 oli pistekeskiarvon (14,6) perusteella hieman tavanomaista helpompi. Omasta tehtäväpaperista

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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. 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

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

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,

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 16.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

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

Lisätiedot

OpenOffice.org Base 3.1.0

OpenOffice.org Base 3.1.0 OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

Java-kielen perusteet

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

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n

Lisätiedot

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2009 1 / 43 Funktiot Tähän asti esitetyt ohjelmat ovat oleet hyvin lyhyitä. Todellisessa elämässä tarvitaan kuitenkin

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä /+^2 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen / +^2 Kopioi molemmat matematiikka-alueet ja liiku alueen sisällä

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla ALKUHARJOITUS Kynän ja paperin avulla peilaaminen koordinaatistossa a) Peilaa pisteen (0,0) suhteen koordinaatistossa sijaitseva - neliö, jonka

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

Johdatus Ohjelmointiin

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

Lisätiedot

Excel 2010 -funktiot. Sisällys

Excel 2010 -funktiot. Sisällys Excel 2010 -funktiot 5.11.2015 Markku Könkkölä J Y / Tietohallintokeskus Soluihin viittaaminen Sisällys Laskentakaavojen kirjoittaminen, kopiointi ja arvojen vakiointi Funktioiden käyttö: Laskenta Merkkijonot

Lisätiedot