Mikäli tehtävissä n jtain epäselvää, laita sähköpstia vastuupettajalle (jrma.laurikkala@uta.fi). Muista nudattaa hyvää hjelminti tapaa muun muassa kdia kmmentimalla ja sisentämällä. Kats lisää hjeita luentmateriaalin 4. luvusta. Ohjelmintitehtävien salta palautetaan vain ratkaisun lähdekdi (java-päätteinen tiedst). In-lukkaa (kats alla) ei tarvitse eikä tule palauttaa. Ensi viiklla pidettävissä mikrharjituksissa saa apua ngelmakhtiin. Keskiviikn kl 2 4 - ryhmässä (B84) avustetaan hieman enemmän kuin muissa ryhmissä. Palauta vastauksesi WETO-järjestelmään viimeistään ensi viikn trstaina 6.. kl 2.. Osa tehtävistä testataan autmaattisesti. Lisätietja tarkistuksesta n kurssisivujen Opetus Harjitukset Ratkaisujen tarkistus -khdassa. Mallivastaukset esitellään luentsaliharjituksissa ensi viikn trstaina 6.. kl 4 6 (B8). Syötteiden lukemiseen tarvittava In-lukka löytyy kurssin ktisivuilta Kdit-khdasta.. Ositteessa: http://www.sis.uta.fi/~laki/harjitukset/harjitus5/ n annettu sisentämätön QuadraticEquatinSlver-hjelma. Lisää hjelmaan sisennys. Kerr kmmenteissa mitä sisennystyyliä käytät ja anna viite (esimerkiksi verkk-site) dkumenttiin, jssa tyylisi n määritelty, js käytät sisentämiseen tyyliä, jka pikkeaa selvästi kurssilla petetusta tyylistä. Ohjelma n englanninkielinen, kska kurssilla n ulkmaalaisia piskelijita. Palauta WETOn sisennetty hjelma QuadraticEquatinSlver.java-tiedstssa. 2. Ositteessa: http://www.sis.uta.fi/~laki/harjitukset/harjitus5/ n annettu OddCunter-hjelma, jssa n sekä kielippivirheitä että pieniä lgisia virheitä. Muista ajaa ja testata hjelmaa, jtta löydät varmasti kaikki lgiset virheet. Kerr kmmenteissa mistä virheistä li kyse ja kuinka krjasit virheet. Lisää hjelman yleisiin kmmentteihin mat tietsi. Kmmentit vi kirjittaa sumeksi. Ohjelma n englanninkielinen, kska kurssilla n ulkmaalaisia piskelijita. Palauta WETOn krjattu hjelma OddCunter.java-tiedstssa. Vinkki: Eht-peraattri n yhteenlaskua heikmpi. Oletuslaskujärjestystä vi muuttaa kulusta pitulla tavalla sulkeilla. mukaisesti. Humaa, että rivien alkuun tai lppuun ei tulsteta välilyöntejä ja että kaikki tulstettavat rivit päätetään rivinvaihtn. Esimerkki hjelman timinnasta: Hell! I cunt dd integers. The number must be at least ne! - The number must be at least ne! 42 5 Fund 2 dd integers. Lausekielinen hjelminti I Syksy 26 Jrma Laurikkala / 5
. Lausekielinen hjelminti I -kurssilla pitää kerätä harjituspisteitä siten, että tehtävien ratkaisuista ja läsnälista saatujen pisteiden summa n vähintään 4 % kaikkien annettujen tehtävien ja harjituskertjen (6) summasta. Js tehtäviä annetaan esimerkiksi 5 kappaletta, niin saatavilla n yhteensä 5 + 6 = 57 pistettä. Humaa, että harjitustehtävien lpullinen lukumäärä selviää vasta viimeisen harjituksen julkaisun jälkeen. Ahkerasta harjitusten ratkaisusta palkitaan edellä määritellyn suhdeluvun mukaan seuraavasti: vähintään 6 % hyvityspiste, vähintään 7 % 2 hyvityspistettä ja vähintään 8 % hyvityspistettä. Hyvityspisteet lisätään tenttipisteisiin, js tentistä saa vähintään 2 pistettä. Hyvityksiä laskettaessa prsenttilukua ei pyöristetä ylöspäin, vaan prsenttiluvun n ltava rajalla tai sen yli. Näin esimerkiksi 59,6 % tuttaa hyvityspistettä, kska hyvityspisteen saa vasta, kun prsenttiluku n vähintään 6 %. Ositteessa: http://www.sis.uta.fi/~laki/harjitukset/harjitus5/ n annettu Pintsniminen hjelma, jka lukee ensin valistuneen arvauksesi tehtävien kknaislukumäärästä (49 5) ja tavitteeksesi asettamasi prsentin (kknaisluku väliltä 4 ) ja kert sitten paljnk pisteitä tarvitset tavitteesi saavuttamiseen. Ohjelma tulstaa virheilmituksen, js tehtäviä n alle 49 tai yli 5 tai js prsentti n alle 4 tai yli. Tee vakit virheilmitukselle "Des nt cmpute!" ja luvuille 49, 5, 4 ja. Ota vakit käyttöön hjelmassa. Kiinnitä humita vakiiden nimeämiseen. Vakit kirjitetaan isin kirjaimin ja nimen tulee lla kuvaava. Erityisesti n vältettävä vakin nykyisen arvn ilmaisua nimessä, kska vakiita käytetään nimenmaan helpttamaan hjelman ylläpita. Esimerkiksi HUNDRED ei le hyvä nimi, kska se perustuu suraan vakin nykyiseen arvn. Sen sijaan MAXPERCENTAGE n paljn parempi. Vakit esitellään aina aivan hjelman alussa ennen tavallisia muuttujia. Palauta mukattu hjelma WETOn Pints.java-tiedstssa. 4. Lausekielinen hjelminti I -kurssin arvsana määräytyy tenttipisteiden ( 24 kpl) ja tenttipisteisiin lisättävien hyvityspisteiden ( kpl) summan perusteella seuraavasti: 2 4 pistettä (välttävä), 5 7 pistettä 2 (tyydyttävä), 8 2 pistettä (hyvä), 2 tai 22 pistettä 4 (kiitettävä) ja vähintään 2 pistettä 5 (erinmainen). Hyvityspisteet humiidaan vasta, kun piskelija n surittanut tentin hyväksyttävästi eli saanut tentistä vähintään 2 pistettä. Kirjita Grade-niminen Java-hjelma, jka lukee käyttäjältä tenttipisteiden ja hyvityspisteiden lukumäärät sekä laskee ja tulstaa pisteiden summaa vastaavan arvsanan. Ohjelma tulstaa virheilmituksen "I cannt give a grade.", js tenttipisteet eivät le välillä 2 24 tai hyvityspisteet eivät le välillä. Hyvityspisteet kysytään, vaikka tenttipisteet lisivat epäkelvt. mukaisesti. Humaa, että rivien alkuun tai lppuun ei tulsteta välilyöntejä ja että kaikki tulstettavat rivit päätetään rivinvaihtn. Lausekielinen hjelminti I Syksy 26 Jrma Laurikkala 2 / 5
Esimerkki hjelman timinnasta, kun syötteet vat 22 ja : Hell! I am a grader. Please, enter eam pints: 22 Please, enter bnus pints: Yur grade is 5. Esimerkki hjelman timinnasta, kun syötteet vat 5 ja : Hell! I am a grader. Please, enter eam pints: 5 Please, enter bnus pints: Yur grade is. Esimerkki hjelman timinnasta, kun syötteet vat ja : Hell! I am a grader. Please, enter eam pints: Please, enter bnus pints: I cannt give a grade. 5. Ilmatieteen laits lukittelee tuulen vimakkuuden sen npeuden minuutin keskiarvna seuraavasti: m/s = tyyntä, m/s = heikka tuulta, 4 7 m/s = khtalaista tuulta, 8 m/s = navakkaa tuulta, 4 2 m/s = kvaa tuulta, 2 2 m/s = myrskyä ja yli 2 m/s = hirmumyrskyä. Tee Javalla hjelma, jka lukee käyttäjältä tuulen npeuksia kknaislukuina ja tulstaa vastaavia vimakkuuden kuvauksia kunnes käyttäjä antaa negatiivisen arvn (< ). Esimerkki hjelman timinnasta: Mi! Lukittelen tuulta. Tuuli n navakkaa. 2 Myrskytuulta. Tyyntä. - Lausekielinen hjelminti I Syksy 26 Jrma Laurikkala / 5
6. Kirjita hjelma, jka lukee merkkijnn ja kaksi indeksiarva ja tutkii vatk annetuissa paikissa levat merkit samat. Ohjelma tulstaa virheilmituksen, js jmpikumpi tai mlemmat indeksiarvt vat virheelliset. Laillinen indeksiarv n välillä [, n - ], missä n n merkkijnn pituus. Esimerkki hjelman timinnasta: Mi! Vertailen kahta merkkijnn merkkiä. Anna merkkijn: Java Anna. merkin indeksiarv: Anna 2. merkin indeksiarv: Merkit ꞌaꞌ ja ꞌaꞌ vat samat. 7. Tee Java-hjelma, jka tutkii alkaak sille annettu merkkijn suurella kirjaimella. Humaa, että vit hyödyntää tässäkin tehtävässä ASCII-kdeja. Esimerkki: // Alla merkki n char-tyyppinen muuttuja. if ('A' <= merkki && merkki <= 'Z'){... Humaa myös, että å-, ä- ja ö-kirjaimet täytyy tunnistaa erikseen. Vi lla, että Windwsin kmentikkunassa n merkistö, jnka vuksi hjelmasi ei tunnista skandinaavisia kirjaimia. Muuta tällöin kmentikkunan fntiksi Lucinda Cnsle ja anna kment chcp 252. 8. Kirjita Javalla Zrr-hjelma, jka tulstaa alla levien esimerkkien mukaisen kuvin. Ohjelma lukee käyttäjältä tulstuksessa käytettävän merkin ja kn (kuvin rivien ja sarakkeiden lukumäärä). Ohjelma piirtää kuvin, js kk n vähintään klme. Ohjelma tulstaa "N cmprend.", js kk n virheellinen. Vinkki: Sisäkkäiset silmukat. mukaisesti. Humaa, että kuvin keskirivien alkuun tulstetaan pikkeuksellisesti välilyöntejä. Rivien näkyvien merkkien jälkeen ei tulsteta välilyöntejä. Kaikki tulstettavat rivit päätetään rivinvaihtn. Esimerkki hjelman timinnasta, kun syötteet vat tähtimerkki ja : * *** * *** Lausekielinen hjelminti I Syksy 26 Jrma Laurikkala 4 / 5
Esimerkki hjelman timinnasta, kun syötteet vat pieni -kirjain ja 4: 4 Esimerkki hjelman timinnasta, kun syötteet vat pieni -kirjain ja 5: 5 Esimerkki hjelman timinnasta, kun syötteet vat suuri z-kirjain ja : Z N cmprend. Lausekielinen hjelminti I Syksy 26 Jrma Laurikkala 5 / 5