Osoittimet¶
Arvotulostus (1p)¶
SensorTageissa debugaamiseen ei ole olemassa standardikirjaston
printf
-funktiota, vaan esimerkiksi sensoridata täytyy ensiksi kirjoittaa merkkijonoon, joka taas annetaan kehitysympäristön konsoli-ikkunaan tulostavalle funktiolle argumentiksi. Palataan asiaan luentomateriaalissa hetken päästä..Laaditaan siis funktio, joka kirjoittaa parametreina olevat kiihtyvyysanturin kolme akselia (x, y, ja z) ja ilmanpaineen sekä lämpötilan tulostettavaan merkkijonoon. Kiihtyvyysanturin kolmen akselin arvot annetaan etumerkillisinä (+/-), ilmanpaineesta tulostetaan vain kokonaisluku (tulostetaan ilman desimaaleja), ja kaikki muut annetaan kahden desimaalin tarkkuudella.
Käytetään funktiolle seuraavaa prototyyppiä, jossa osoitin
str
viittaa merkkijonoon johon arvot tulostetaan.void kirjoita_sensorit(char *str, float ax, float ay, float az, float press, float temp);
.Esimerkki funktiokutsusta.
kirjoita_sensorit(str, 0.2536, -5.3272, -1.3277776, 101325.273261, 27.721667);
Esimerkki tulostaa merkkijonoon
str
seuraavasti.+0.25,-5.33,-1.33,101325,27.72
Vinkki. Tulosta rivi osissa eikä yhtenä pötkönä..
Vihjeet
Viestit
Anna palautetta
Koitko tämän tehtävän hyödylliseksi oppimisen kannalta?
Kommentteja tehtävästä?
Merkkilaskuri (2p)¶
Tee funktio joka laskee merkkijonon vokaalit ja konsonantit ja sijoittaa tulokset osoittimena annettuun taulukkoon.
Käytä funktiolle prototyyppiä
void merkkilaskuri(char *str, uint8_t *tulos);
, jossa tulos
on osoitin kaksi kokonaislukua pitkään taulukkoon [vokaalit, konsonantit]
.Määritellään tehtävässä vokaaleiksi
a, e, i, o, u
ja oletetaan loppujen kirjaimien olevan konsonantteja.Funktion tulee siis ottaa huomioon isot ja pienet kirjaimet, ja ei laske esimerkiksi pisteitä ja muita välimerkkejä.
Vihjeet
Viestit
Anna palautetta
Koitko tämän tehtävän hyödylliseksi oppimisen kannalta?
Kommentteja tehtävästä?
Keskinkertainen lista (2p)¶
Laadi funktio, joka etsii pilkulla erotettujen kokonaislukujen keskiarvon.
Esimerkki: Merkkijonon
"201,53,12,31,5"
aritmeettinen keskiarvo on 60,4.Käytä funktiolle prototyyppiä
float keskiarvo(char *lista);
Vinkki. Katso luentomateriaalista esimerkki
strtok
-funktion käytöstä.
Vihjeet
Viestit
Anna palautetta
Koitko tämän tehtävän hyödylliseksi oppimisen kannalta?
Kommentteja tehtävästä?
Anna palautetta
Kommentteja tehtävästä?