Taas pyytäisin neuvoa tällaisessa tehtävässä. Onko nämä tehtävät jotenkin vaikeita vai miten en käsitä... Olen kysellyt tekoälyltäkin apua mutta en vain onnistu tässä: Tehtäväpohjassa on ohjelma, joka sisältää toiminnallisuuden puhelinnumeroiden lukemiseen käyttäjältä. Tämän jälkeen aloitetaan puhelinnumeroiden hakutoiminnallisuus. Hakutoiminnallisuus (yksiparametrisessa funktiossa numerohaku(numerot)) on yhä toteuttamatta. Muokkaa funktiota numerohaku siten, että se kysyy käyttäjältä haettavaa numeroa (muodossa Syötä etsittävä numero, tyhjä lopettaa.). Mikäli käyttäjä syöttää tyhjän merkkijonon (syote == ''), numerohakutoiminnallisuus lopetetaan. Muulloin ohjelma etsii numeroa numerot-sanakirjasta ja tulostaa merkkijonon Numeron <em>numero</em> omistaja on <em>omistaja</em>, missä numero on käyttäjän syöttämä numero ja omistaja on sanakirjasta löytynyt arvo. Mikäli sanakirjasta ei löydy omistajaa avaimelle, ohjelman tulee tulostaa Numeron <em>numero</em> omistajaa ei löydy.Tämän jälkeen käyttäjältä kysytään seuraavaa haettavaa numeroa.Alla esimerkki funktion suorituksesta. Oletuksena on, että sanakirjassa on numeroa "12312345" vastaava henkilö "Essi Esimerkki".
Syötä etsittävä numero, tyhjä lopettaa.
12312345
Numeron 12312345 omistaja on Essi Esimerkki
Syötä etsittävä numero, tyhjä lopettaa.
12312345
Numeron 12312345 omistaja on Essi Esimerkki
Syötä etsittävä numero, tyhjä lopettaa.
912831923
Numeron 912831923 omistajaa ei löydy.
Syötä etsittävä numero, tyhjä lopettaa.
12312345
Numeron 12312345 omistaja on Essi Esimerkki
Syötä etsittävä numero, tyhjä lopettaa.
12312345
Numeron 12312345 omistaja on Essi Esimerkki
Syötä etsittävä numero, tyhjä lopettaa.
912831923
Numeron 912831923 omistajaa ei löydy.
Koodi:
import 'dart:io';
main() {
var numerot = lueNumerot();
numerohaku(numerot);
}
numerohaku(numerot) {}
lueNumerot() {
var numerot = {};
while (true) {
print('Syötä numero, tyhjä lopettaa.');
var numero = stdin.readLineSync();
if (numero == '') {
break;
}
print('Syötä numeron $numero omistaja.');
var omistaja = stdin.readLineSync();
numerot[numero] = omistaja;
}
return numerot;
}