Koodaustehtävä Dartilla

Liittynyt
21.04.2021
Viestejä
4
Ihan ei alla esitetty koodi mennyt maaliin.

Tehtävä:
Kirjoita yksiparametrinen funktio tulosta(String merkkijono), joka saa parametrinaan merkkijonon, jossa voi olla tekstiä useammalla rivillä. Funktion tulee pilkkoa merkkijono riveihin (vinkki: split ja '\n'), ja tulostaa ne rivit, joilla oleva merkkijono alkaa kirjaimella 'A'.

Olisiko jollain asiaan vihkiytyneellä vinkata, miten saisi tämän oikein? Ihan pienestä kiinni.

main() {}
tulosta(String merkkijono) {
String merkkijono = ''' ''';

var rivit = merkkijono.split('\n');

for (var i = 0; i < rivit.length; i++) {
var rivi = rivit;

if (rivi[0] != 'A') {
continue;
}
print(rivi);
}
}
 
Sä et lainkaan käytä tuota loopin i-muuttujaa. Eli, var rivi = rivit; vaatii varmaan muutoksia. Sitten kun toi toimii, testaa, toimiiko ohjelma jos kirjoitat tyhjän rivin syötteeksi eli siinä on vain enterin painallus. Saattaa tuo rivi[0] hajota.

Mä jättäisin indeksoinnit pois jos kieli sen mahdollistaa. Dartissa lienee joku forEach? Käytä sitä rivien läpikäyntiin jos sellainen on olemassa.
 
@Hdnrnta sulla on myös syntaksi pielessä. Heti ekalla rivillä mainin koko lohko alkaa ja loppuu. Et myös missään kutsu funktiota tulosta(). Onko noi sulla kunnossa omalla koneella? Ja kerro, mitä virhettä tulee tai miten tulostaa väärin. "Ei mene läpi" ei oikein auta meitä auttamaan kun katsellaan vain tuota listaamaasi koodia :)

En tunne dartia, mutta sä myös oudosti uudelleenmäärittelet tuon merkkijono-muuttujan. Tyhjäksi? En osaa laskea kun on niin monta lainausmerkkiä. Et varmaan halua uudelleenmääritellä sitä sillä se on parametri.

Continue ton turha. Käännä se ehtolause toisinpäin ja laita print sinne sisään.
 
Ei mitään tietoa Dartista, mutta ehkä jotain tällasta:
Koodi:
void main() {

  void tulosta(String merkkijono) {
      var rivit = merkkijono.split('\n');
    // print(rivit);

      for (var i = 0; i < rivit.length; i++) {
      // print(rivit[i]);

          if ('${rivit[i][0]}' == 'A') {
              print(rivit[i]);
          }
      }
  }

  tulosta("Hei, maailma! \nHello, world! \nAloha!");

}
 
@Hdnrnta sulla on myös syntaksi pielessä. Heti ekalla rivillä mainin koko lohko alkaa ja loppuu. Et myös missään kutsu funktiota tulosta(). Onko noi sulla kunnossa omalla koneella? Ja kerro, mitä virhettä tulee tai miten tulostaa väärin. "Ei mene läpi" ei oikein auta meitä auttamaan kun katsellaan vain tuota listaamaasi koodia :)

En tunne dartia, mutta sä myös oudosti uudelleenmäärittelet tuon merkkijono-muuttujan. Tyhjäksi? En osaa laskea kun on niin monta lainausmerkkiä. Et varmaan halua uudelleenmääritellä sitä sillä se on parametri.

Continue ton turha. Käännä se ehtolause toisinpäin ja laita print sinne sisään.

Alla palaute koodista:
1622635160176.png
 
@Hdnrnta, kokeile omalla syötteellä. Toimiiko? Laitat useita rivejä joista osa alkaa A:lla, toimiiko oikein? Entä ne tyhjät rivit, selviääkö niistä eli jos on kaksi rivinvaihtoa peräkkäin "\n\n"? Näkeekö noista feilanneista testeistä, mikä oli syöte? Ja mikä onkaan sun tämänhetkinen versiosi? Osaako tuo testaaja lainkaan ajaa sun funktiotasi eli onko se puoli kunnossa?
 

Uusimmat viestit

Statistiikka

Viestiketjuista
261 822
Viestejä
4 548 358
Jäsenet
74 850
Uusin jäsen
Max-fix

Hinta.fi

Back
Ylös Bottom