58127-1 C-ohjelmointi - syksy 1997 Harjoitustehtävät 4, 17.11. - 23.11. Läsnäolo: 3 tehtävää 1. Kirjoita makro VAIHDA(T,X,Y) joka vaihtaa tyyppiä T olevien muuttujien X ja Y arvot keskenään (C:n lohkorakenteesta ja kootusta lauseesta on apua). 2. Lisää luennolla esitettyyn match-ohjelmaan optio -e, joka kertoo, että haettavan merkkijonon on oltava syöterivin lopussa (vertaa -b). Jos sekä -b että -e ovat komennossa, niin haettavan merkkijonon on osuttava koko riviin. Jos et viitsi kirjoittaa koko esimerkkiohjelmaa uudestaan luentomateriaaleista, niin saat sen seuraavalla komennolla jostain ATK-keskuksen Unix-koneesta: cp ~taina/pub/c/luennot/match/* . Komento kopioi tiedostot main.c, match.c ja own.h työhakemistoosi. 3. Kirjoita ohjelma, joka tulostaa saamansa parametrit käänteisessä järjestyksessä. 4. Kirjoita ohjelma, joka muuttaa syötteen isoiksi kirjaimiksi, jos se käynnistetään nimellä upcase, tai muuttaa syötteen pieniksi kirjaimiksi, jos se käynnistetään nimellä lowcase. Voit käyttää hyväksi ctype.h:n funktioita int tolower(int c); ja int toupper(int c); Edellinen palauttaa merkin pienenä kirjaimena, jälkimmäinen isona kirjaimena. 5. Kirjoita ohjelma, joka tulostaa jokaisesta syötteen rivistä pisimmän palindromin. Jos samanmittaisia palindromeja on useita, niin riittää tulostaa niistä yksi. Kirjoita ohjelma käyttäen hyväksi funktioita ja merkkijono-osoittimia. Voit olettaa, että rivin pituus on korkeintaan 255 merkkiä. Merkkijono on palindromi, jos se voidaan lukea samanlaisena alusta loppuun tai lopusta alkuun. Esim. saippuakauppias on palindromi. 6. Kirjoita ohjelma, joka sekoittaa ja selvittää tekstiä korvaamalla kunkin kirjaimen jollain vastinkirjaimella. Käytä komentorivin parametreja, jotta saat saman ohjelman sekä sekoittamaan että selvittämään syötteen. __________________________________________________________________