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);
}
}
 
Liittynyt
17.10.2016
Viestejä
14 664
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.
 
Liittynyt
17.10.2016
Viestejä
14 664
@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.
 
Liittynyt
06.11.2016
Viestejä
1 787
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!");

}
 
Liittynyt
21.04.2021
Viestejä
4
@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
 
Liittynyt
17.10.2016
Viestejä
14 664
@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?
 
Toggle Sidebar

Statistiikka

Viestiketjut
239 640
Viestejä
4 186 869
Jäsenet
70 774
Uusin jäsen
Berch

Hinta.fi

Ylös Bottom