Follow along with the video below to see how to install our site as a web app on your home screen.
Huomio: This feature may not be available in some browsers.
Olkaa hyvä vaan. Itseasiassa tuo Zvonan tapa olisi elegantimpi mutta varmaan tuollaisessa harjoitustehtävässä molemmat toimivat.Kiitos! Löysin oikean paikan koodille Hyravan neuvolla
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;
}
Sori, multipaskaan tässä palaverin päälle, kun ei kosketa just itteä kauheasti, eli ei jouda kirjoittamaan kovin pitkästi, mutta tässä olis olennaista ymmärtää ekana tuo tietorakenne (sanakirja / dict). Joka on siis, menemättä kauheasti nyt detaljeihin, tietorakenne, jonne voit tallentaa avain-arvopareja ja josta arvojen kysyminen onnistuu sen jälkeen mukavasti tuon avaimen avulla.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.
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; }
numerot[numero] = omistaja;
var omistaja = "Pentti";
var numero = "05012345";
numerot[numero] = omistaja;
# Nyt jos kysytään tietorakentesta numerot["05012345"], niin kysely palauttaa arvoksi "Pentti"
# Ei siis tämän monimutkaisempi asia, jos sotkin tuossa edellä.
Tässä kohtaa kyllä jo tekisi mieli luovuttaa, tuntuu menevän niin monimutkaiseksi. Vai onko jotain hyviä suomenkielisiä opetuksia missä tätä aihetta opetettaisiin perusteellisemmin tai selkeämmin (tämä on Fitechin kurssi)? Edellisestä koodista: miksi koodissa on "print('Syötä numeron $numero omistaja.');" jos sitä ei kuitenkaan tarvitse kysyä?
while (true) {
print('Syötä numero, tyhjä lopettaa.');
# täällä luetaan käyttäjältä jokin numero muuttujaan nimeltä "numero"
# (ja muuttuja "numero" on käytössä / näkyvissä vain tässä lueNumerot -funktiossa)
var numero = stdin.readLineSync();
if (numero == '') {
break;
}
# täällä, lähinnä tulostuksen selventämiseksi, viitataan edellä luettuun muuttujaan "numero" kertomaan mille numerolle halutaan kysyä omistajaa
print('Syötä numeron $numero omistaja.');
var omistaja = stdin.readLineSync();
numerot[numero] = omistaja;
}
Ongelma on sinänsä yksinkertainen ratkoa, mutta ohjelmoinnissa on hyvin monta käsitettä jotka olisi hyvä olla tiedossa ennen kuin ongelmanratkonta alkaa sujumaan. Niitä perusteita olisi hyvä nyt opetella, muuten tulee seinä vastaan aika usein.Tässä kohtaa kyllä jo tekisi mieli luovuttaa, tuntuu menevän niin monimutkaiseksi. Vai onko jotain hyviä suomenkielisiä opetuksia missä tätä aihetta opetettaisiin perusteellisemmin tai selkeämmin (tämä on Fitechin kurssi)? Edellisestä koodista: miksi koodissa on "print('Syötä numeron $numero omistaja.');" jos sitä ei kuitenkaan tarvitse kysyä?
tämä on Fitechin kurssi
Ei ne opitut asiat hukkaan mene, vaikka vaihtaisitkin tuohon Moociin ja Pythoniin. Ihan pikkaisen eroa syntaksissa, mutta kaikki perusasiat on kuitenkin ihan samaa ja noissa Moocin matskuissa on yleensä selitetty asiat oikeasti sen verran hyvin, että niiden perusteella pystyy ratkomaan tehtävät.Niin, en tiedä tarvitseeko olla Dartia, kunhan aloin kokeilemaan oppisiko jotain koodausta ja löytyi tämmöinen kurssi. Mutta näin pitkälle jo päässyt tällä kurssilla (Fitech101 digi & data), niin ärsyttäisi lopettaa kesken. Nämä viimeiset osiot, lista ja sanakirja, on olleet vaikeimmat ja tarvitsee selvästikin vielä opetella. Olen kyllä tehnyt muistiinpanoja kokoajan itselleni vihkoon ja vielä tekstinkäsittelyohjelmaan.
Ihan asiallisilta näytti nuo materiaalit, mitä kurkkasin. Luitko kaikki aikaisemmat osat ja teit tehtävät itse ajatellen, että se aikaisempi materiaali esim. muuttujista oli sisäistetty?Niin, en tiedä tarvitseeko olla Dartia, kunhan aloin kokeilemaan oppisiko jotain koodausta ja löytyi tämmöinen kurssi. Mutta näin pitkälle jo päässyt tällä kurssilla (Fitech101 digi & data), niin ärsyttäisi lopettaa kesken. Nämä viimeiset osiot, lista ja sanakirja, on olleet vaikeimmat ja tarvitsee selvästikin vielä opetella. Olen kyllä tehnyt muistiinpanoja kokoajan itselleni vihkoon ja vielä tekstinkäsittelyohjelmaan.
Miten saadaan Regexillä etsittyä kaksi riviä joista ensimmäinen rivi sisältää tietyn tekstin (vaikka "makkispekkis" tai "Pena on kone") ja seuraava rivi on tyhjä?
Pena on kone.*\n$
mutta koska regexpistä kyse niin asioilla on taipumus olla monimutkaisempia miltä äkkiseltään näyttää.Varmaan joku regex-jumala korjaa, mutta oisko tuo suunnilleen:Miten saadaan Regexillä etsittyä kaksi riviä joista ensimmäinen rivi sisältää tietyn tekstin (vaikka "makkispekkis" tai "Pena on kone") ja seuraava rivi on tyhjä?
Pena on kone(\r\n|\r|\n)^\s*$
CSS luokkien importtaaminen moduulitasolla ei taida kuulua speksiin. Tietyt kirjastot kuten esim. css modules tekevät tuota. Monessa frameworkissa sellainen toiminto onkin mukana oletuksena.Miten vanilla javascriptillä importataan bootstrapin luokkia oikeaoppisesti ja ilman ettei joutuis käyttämään globaalia muuttujaa? Vai pitääkö käsin lisätä bootstrapin sorsiin exportit? script tageillahan toi toki toimii mutta silloin siitä tulee globaali...
Lähes valmis projekti. Koko sivusto on nyt vaan tehty bootstrapin css luokilla, niin viittis alkaa muokkaamaan sitä tailwindille.CSS luokkien importtaaminen moduulitasolla ei taida kuulua speksiin. Tietyt kirjastot kuten esim. css modules tekevät tuota. Monessa frameworkissa sellainen toiminto onkin mukana oletuksena.
Onko tämä jokin vanha projekti ja siksi esim. Tailwind ei tule kyseeseen?
import { Toast } from "bootstrap"
Menee hieman arvaukseksi, kun en itse ole bootstrapin aktiivinen käyttäjä, mutta eikö:Lähes valmis projekti. Koko sivusto on nyt vaan tehty bootstrapin css luokilla, niin viittis alkaa muokkaamaan sitä tailwindille.
Bootstrap on otettu käyttöön CDN versiona.
Tarvetta siis bootstrapin toast js luokalle ja modalille kun sitä pitää päästä js:llä esim. sulkemaan jne.
Ongelmana on ettei toi CDN exporttaa esim. tota Toast luokkaa sillein et minä osaisin sen importata.
Ohjeen mukaan se pitäs onnistua siis:
Mutta vaikka tohon laittaa koko ladatun cdn filun polun .js tiedosto päätteineen niin ei se sitä importtaa. Valittaa vaan ettei toast exporttia löydy tjsp.JavaScript:import { Toast } from "bootstrap"
const Toast = require('bootstrap/js/dist/toast');
import Toast from 'bootstrap/js/dist/toast';