Pieniä kysymyksiä ohjelmoinnista

Liittynyt
19.10.2016
Viestejä
1 562
Aikuiset tekevät kirjallisia sopimuksia ja lupauksia, kun sen sijaan lapset tekevät/leikkivät enemmän Ad hoc - tai Laisser faire -tyylillä. Eli kun syötteet ja ulostulot ovat tyypitettyjä, niiden järjestys on määrätty ja tyyppejä ei voida "vahingossa" muuttaa toisiksi, ollaan aika lähellä sopimusta, jota voivat hyödyntää muut ihmiset (ja luonnollisesti muut ohjelmat) kanssakäymisessä.
Vaikka staattisesti tyypitettyjä kieliä kovasti suosinkin, tämä näyttää jo aika lapselliselta lähestymistavalta asiaan.
 
Liittynyt
19.10.2016
Viestejä
3 425
En saa tuota hetu-juttua eteenpäin, olisko jollain hyviä vinkkejä tai ratkaisua?

Tuolta näyttää löytyvän esimerkiksi tuo splice, vaikka kannattanee muutenkin selata läpi.
 

Hessu

Tukijäsen
Liittynyt
29.10.2016
Viestejä
4 420
En nyt saa sitä toimimaan oikein. No pitää vaan pähkäillä jos sitä jotain keksis.
Kommentti "Ei vaan toimi" -ei oikein kerro meille yhtään mitään.
Vinkkinä; paloittele se projekti pienempiin osiin. Kirjoita asiat vaikka paperille ylös ja piirrä noita taulukon läpikäyntejä niin helpottaa asian hoksaamista. Sitten koodaat pala kerrallaan. Jos et jotain palaa saa toimimaan niin kysy täältä apua.
 
Liittynyt
17.10.2016
Viestejä
14 661
En saa tuota hetu-juttua eteenpäin, olisko jollain hyviä vinkkejä tai ratkaisua?
Kerroinkin tuossa jo, miten saat hetun viimeisen merkin sieltä irralleen. Se onnistui alla olevalla koodilla.

JavaScript:
const checkSum = hetu[10];
Tuo kymmene tarkoittaa, että otetaan merkki, jonka indeksi on 10. Koska indeksit alkavat nollasta, tuo tarkoittaa 11. merkkiä eli tässä tapauksessa viimeistä. Jos haluat erikseen sieltä sen välimerkin, se on 7. merkki eli sen indeksi on 6. Kokeiles siis tuota indeksillä 6.
 
Liittynyt
23.12.2016
Viestejä
653
Jes, toimii paremmin kun alottaa rivi-riviltä. Nyt sain edistystä ja const checkSum = hetu[6] tuotti halutun tuloksen.
Pitääkö tuo merkki (+ tai - tai A) sitten seuraavaksi muuntaa merkitä joksikin että JS ymmärtää sen olevan tuossa formaatissa?

Voisiko toimia jotenkin näin sitten tuon checksumin saannin jälkeen:


if(checkSum = +) {
alert("Synnyit 1800-luvulla.");
}
else if(checkSum = -) {
alert("Synnyit 1900-luvulla.");
}
else if(checkSum = A) {
alert("Synnyit 2000-luvulla.");

Vai mitä pitäisi muuttaa? Eiks joku vois pliis autella vielä?
 
Viimeksi muokattu:
Liittynyt
02.12.2017
Viestejä
89
Kiitokset raadille hyvistä vastauksista ja siitä että viitsitte etsiä molemmat virheet. Välillä omat yritelmät liipannut läheltä, olen kuin sokea kana yrittänyt löytää oikaa kombinaatiota. mm olen kokeillut parametrien (sana1, sana2) lisäämistä funktiokutsuun ja return komennon lisäämistä funktion loppuun, mutta en tajunnut kokeilla molempia yhtä aikaa. Tämä selvitti kyllä hyvin!

Tuossa on linkki toimivaan versioon.
 
Viimeksi muokattu:
Liittynyt
23.12.2016
Viestejä
653
Voisko joku autellla tuon oman ongelman kanssa vielä?
Pliis, tarviin siitä checkSumista sitten 3 eri alerttia.
 
Liittynyt
16.10.2016
Viestejä
543
Voisko joku autellla tuon oman ongelman kanssa vielä?
Pliis, tarviin siitä checkSumista sitten 3 eri alerttia.
JavaScript:
// tämä on vertailu jota sinun pitää käyttää if-elsessä
a === 10
b === "A"
c === "-"
// muista launausmerkit merkkijonoissa!

// ei näin koska tämä on assignment joka asettaa muuttujaan arvon:
a = 10
 
Liittynyt
17.10.2016
Viestejä
14 661
Voisiko toimia jotenkin näin sitten tuon checksumin saannin jälkeen:


if(checkSum = +)
Ensinnäkin, = on sijoitusoperaattori. Sillä sijoitetaan oikealla olevan lausekkeen arvo vasempaan muuttujaan. Ei siis toimi if-lauseessa. Haluat yhtäsuuruusvertailun, joka on ===. Siis kolme yhtäsuuruusmerkkiä.

Toiseksi, jos haluat vertailla merkkijonoja, sulla pitää olla sen vertailuoperaattorin oikealla puolella merkkijono. + ei ole merkkijono, mutta '+' on.

Pääsisitkö näillä taas eteenpäin?

PS. Eikö teillä ole mitään opetusmateriaalia, josta tämä selviää? Nyt ollaan niin perusteissa, että kyllä tämä pitäisi olla kerrottu koulun toimesta.
 
Liittynyt
20.10.2016
Viestejä
1 370
Kiitokset raadille hyvistä vastauksista ja siitä että viitsitte etsiä molemmat virheet. Välillä omat yritelmät liipannut läheltä, olen kuin sokea kana yrittänyt löytää oikaa kombinaatiota. mm olen kokeillut parametrien (sana1, sana2) lisäämistä funktiokutsuun ja return komennon lisäämistä funktion loppuun, mutta en tajunnut kokeilla molempia yhtä aikaa. Tämä selvitti kyllä hyvin!

Tuossa on linkki toimivaan versioon.
Juu tuo toimii, koska paluuarvona on string, void haluaa että mitään ei palauteta jolloin tuo ensimmäinen yritys olis ollut oikein
 
Liittynyt
23.12.2016
Viestejä
653
Ok, kokeilin jo aiemmin = ja == mutta ei toiminut. Ja tosiaan ' ' merkit unohtuivat.

Jeps, nyt toimii. Kiitokset vielä.
 
Liittynyt
02.12.2017
Viestejä
89
Eli periaatteessa
Juu tuo toimii, koska paluuarvona on string, void haluaa että mitään ei palauteta jolloin tuo ensimmäinen yritys olis ollut oikein

Juuri kun luulin ymmärtäneeni jotain....

disclaimer: tämä ratkaistiin jo aiemmin, mutta jatketaanpa nyt sitten vielä...

Koodi:
using System;

namespace sanaVRT
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("Kirjoita sana 1:");
            string sana1 = Console.ReadLine();

            Console.WriteLine("Kirjoita sana 2:");
            string sana2 = Console.ReadLine();

           sanaVRT();         
        }

        static void sanaVRT()
            {                               
            if (sana1.Length > sana2.Length)
            {
                Console.WriteLine("Sana 1 on pidempi"); 
            }
            else if (sana2.Length > sana1.Length)
            {
                Console.WriteLine("Sana 2 on pidempi");
            }
            if (sana2.Length == sana1.Length)
            {
                Console.WriteLine("Sanat ovat yhtä pitkiä");
            }
    
        }
    }
}

Kokeilin aiemmin tälläista jossa funktion alustuksessa on void ilman parametreja. mutta sain virheitä joissa se herjasi ettei (funktio) tunne sana 1 ja sana 2 muuttujia?

https://repl.it/@Khots0/EagerRoundQbasic

Tämä antoi seuraavat virheet:
main.cs(21,17): error CS0103: The name `sana1' does not exist in the current context
main.cs(25,22): error CS0103: The name `sana2' does not exist in the current context
main.cs(29,17): error CS0103: The name `sana2' does not exist in the current context


Kysymys 1:
Onko niin että tämä esimerkki "pitäisi" toimia ilman palautettavia parametreja koska itse lopputuloksen tulostus tapahtuu funktion toimesta?
Jos näin on niin millä saan funktiolle tiedon mitä nuo sana 1 ja 2 ovat? Eli nuo herjat pois? (siis muuten kuin määrittelemällä parametrit + return;.

Kysymys2:
Miten tämä funktio pitäisi toteuttaa jos halutaan palauttaa tulos, esim "pidempi" ja hoitaa tulostus pääohjelmassa. Se on varmaan se mitä alunperin hainkin, tällä pääohjelman ja funktion yhdistelmällä.
 
Viimeksi muokattu:
Liittynyt
20.10.2016
Viestejä
1 370
Eli periaatteessa


Juuri kun luulin ymmärtäneeni jotain....

Kysymys 1:
Onko niin että tämä esimerkki "pitäisi" toimia ilman palautettavia parametreja koska itse lopputuloksen tulostus tapahtuu funktion toimesta?
Jos näin on niin millä saan funktiolle tiedon mitä nuo sana 1 ja 2 ovat? Eli nuo herjat pois? (siis muuten kuin määrittelemällä parametrit + return;.
static void funktio(string s1, string s2)

jolloin tulostat siellä funktiossa mitä ikinä tulostatkaan
Kysymys2:
Miten tämä funktio pitäisi toteuttaa jos halutaan palauttaa tulos, esim "pidempi" ja hoitaa tulostus pääohjelmassa. Se on varmaan se mitä alunperin hainkin, tällä pääohjelman ja funktion yhdistelmällä.
static string funktio(string s1, string s2)

jolloin tässä tapauksessa iffin sisällä näin:

Koodi:
return "test";
jolloin voit mainissa
Koodi:
Console.Write(funktio("a", "b");
ja konsoliin tulostuu mitä ikinä funktio palauttaakaan
 
Liittynyt
19.10.2016
Viestejä
1 562
Eli periaatteessa



Juuri kun luulin ymmärtäneeni jotain....

disclaimer: tämä ratkaistiin jo aiemmin, mutta jatketaanpa nyt sitten vielä...

Koodi:
using System;

namespace sanaVRT
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("Kirjoita sana 1:");
            string sana1 = Console.ReadLine();

            Console.WriteLine("Kirjoita sana 2:");
            string sana2 = Console.ReadLine();

           sanaVRT();        
        }

        static void sanaVRT()
            {                              
            if (sana1.Length > sana2.Length)
            {
                Console.WriteLine("Sana 1 on pidempi");
            }
            else if (sana2.Length > sana1.Length)
            {
                Console.WriteLine("Sana 2 on pidempi");
            }
            if (sana2.Length == sana1.Length)
            {
                Console.WriteLine("Sanat ovat yhtä pitkiä");
            }
   
        }
    }
}

Kokeilin aiemmin tälläista jossa funktion alustuksessa on void ilman parametreja. mutta sain virheitä joissa se herjasi ettei (funktio) tunne sana 1 ja sana 2 muuttujia?

https://repl.it/@Khots0/EagerRoundQbasic

Tämä antoi seuraavat virheet:
main.cs(21,17): error CS0103: The name `sana1' does not exist in the current context
main.cs(25,22): error CS0103: The name `sana2' does not exist in the current context
main.cs(29,17): error CS0103: The name `sana2' does not exist in the current context


Kysymys 1:
Onko niin että tämä esimerkki "pitäisi" toimia ilman palautettavia parametreja koska itse lopputuloksen tulostus tapahtuu funktion toimesta?
Jos näin on niin millä saan funktiolle tiedon mitä nuo sana 1 ja 2 ovat? Eli nuo herjat pois? (siis muuten kuin määrittelemällä parametrit + return;.

Kysymys2:
Miten tämä funktio pitäisi toteuttaa jos halutaan palauttaa tulos, esim "pidempi" ja hoitaa tulostus pääohjelmassa. Se on varmaan se mitä alunperin hainkin, tällä pääohjelman ja funktion yhdistelmällä.
Funktio tuntee vain omat parametrinsa, omat muuttujansa ja (sen kannalta) globaalit muuttujat, joita ei nyt ole yhtään. Tuossa sana1 ja sana2 on määritelty vain main-funktiossa, joten sanaVRT ei tiedä niistä mitään. Ne pitää siis antaa sille parametreina.

Lisäksi funktiolla voi olla tai voi olla olematta paluuarvo. Jos paluuarvoa ei ole, sen tyypiksi pitää asettaa void. Muussa tapauksessa pitää asettaa paluuarvon tyypiksi se tyyppi, jota funktio palauttaa return-lauseella. Jos paluuarvoa ei käytetä mihinkään (esim. aseteta muuttujaan), kannattaa lähtökohtaisesti olla palauttamatta mitään (ja asettaa paluutyypiksi void).

Tämä varmaan vastaa kysymykseen 1 ainakin ajatuksen tasolla. Kysymykseen 2 taas ei ole yhtä oikeaa vastausta vaan vastaus riippuu siitä, mitä tarkalleen ottaen haluaa tehdä.
 
Liittynyt
31.12.2016
Viestejä
443
Sun funktiot on omissa lohkoissaan, joten SanaVRT ei tunnista Mainissa alustettuja muuttujia sana1 ja sana2.
The name `sana1' does not exist in the current context
Myöskin SanaVRT funktion pitää palauttaa aina. Laita vikan iffin tilalle else, tai pelkkä return loppuun.
 
Liittynyt
02.12.2017
Viestejä
89
Nyt tulee niin paljon informaatiota että täytyy vähän miettiä.

Kysytään nyt vielä tästä: eli miten tilanteessa jos funktion parametreiksi määritellään kaksi eri tyyppiä (string & int), esim "static string testF(string name, int age)" , onko tuota funktiota edeltävä datatyyppi edelleen string? ja mikä merkitys sillä on?
 
Viimeksi muokattu:

Starglazer

Tukijäsen
Liittynyt
17.10.2016
Viestejä
3 096
Nyt tulee niin paljon informaatiota että täytyy vähän miettiä.

Kysytään nyt vielä tästä: eli miten tilanteessa jos funktion parametreiksi määritellään kaksi eri tyyppiä (string & int), esim "static string testF(string name, int age)" , onko tuota funktiota edeltävä datatyyppi edelleen string? ja mikä merkitys sillä on?
Se on se paluuarvo jonka funktio palauttaa, ja se on string. Eli funktiossa ennen loppua määrittelet return jotain, ja se on sitten se testF("nimi",42) arvo.
Tossa nyt eka google linkki funktioista:
Niin kuin tuossa yllä mainittiin:
Console.Write(funktio("a", "b");
Eli konsoliin tulostetaan funtktio "funktio" paluuarvo.
E: Laitoin C funtkiosta esimerkin, se on kuitenkin simppeli ja toimii aikalailla samalla tavalla kielestä riippumatta.
 
Liittynyt
02.12.2017
Viestejä
89
Se on se paluuarvo jonka funktio palauttaa, ja se on string. Eli funktiossa ennen loppua määrittelet return jotain, ja se on sitten se testF("nimi",42) arvo.
Tossa nyt eka google linkki funktioista:
Niin kuin tuossa yllä mainittiin:
Console.Write(funktio("a", "b");
Eli konsoliin tulostetaan funtktio "funktio" paluuarvo.
E: Laitoin C funtkiosta esimerkin, se on kuitenkin simppeli ja toimii aikalailla samalla tavalla kielestä riippumatta.
Tattista, taas tuntuu, että nämä menetelmät alkaa vähitellen hahmottua. Pelottavan heikolla ymmärryksellä naputtelin noita aiempia harjotuksia.

Palaan astialle uusien kysymysten kanssa tuonnempana..
 
Liittynyt
02.12.2017
Viestejä
89

Koodi:
using System;
              
public class Program
{
    public static void Main()
    {
            string sana1 = TakeInput("Anna eka sana: ");
            string sana2 = TakeInput("Anna toka sana: ");

            CompareInputLength(sana1, sana2);
    }
            static string TakeInput(string outputText)
        {
            Console.WriteLine(outputText);
            string input = Console.ReadLine();
            //Console.WriteLine(input);
            return input;
        }
            static void CompareInputLength(string firstVal, string secondVal)
        {
            if (firstVal.Length > secondVal.Length)
            {
                Console.WriteLine("Eka pidempui");
            }
            if (firstVal.Length < secondVal.Length)
            {
                Console.WriteLine("toka pidempui");
            }
            else
            {
                Console.WriteLine("yht pitke");
            }
        }
}
Se mikä tässä esimerkissä edelleen askarruttaa on se että, nyt kun käyttäjä määritteli pääohjelmassa muuttujat sana1 ja sana2.

Kuitenkin funktioon: CompareInputLenght laitoit parametreiksi täysin tuntemattomat "firstVal" ja "secondVal" Miksi näin?

Ymmärsin eilisen perusteella, että nuo sulkuihin tulevat funktion parametrit on ikäänkuin input arvoja pääohjelmalta. mutta ne ilmeisesti voi olla mitä vain, vaikka tyhjiä vasta nimettyjä muuttujia?

Eli miksi et käyttänyt sana1 ja sana2 muuttujia joihin oli jo tuo lukujono syötetty. Tai mistä tuo CompareInputLenght - funktio tietää mitä nämä firstval ja secondval muuttujat sisältää jos niitä ei mainita pääohjelmassa?

JA sorry että jankkaan (muille) selvästä asiasta, mutta en pääse eteenpäin ellen ymmärrä tätä tärkeää asiakokonaisuutta.
 
Viimeksi muokattu:
Liittynyt
19.10.2016
Viestejä
3 425
Nyt tulee niin paljon informaatiota että täytyy vähän miettiä.

Kysytään nyt vielä tästä: eli miten tilanteessa jos funktion parametreiksi määritellään kaksi eri tyyppiä (string & int), esim "static string testF(string name, int age)" , onko tuota funktiota edeltävä datatyyppi edelleen string? ja mikä merkitys sillä on?
Tuo kokonaisuus on funkkarin signature. Aloitin tämän kirjoittamisen eilen, mutta en jaksanutkaan miettiä, että miten tuo pitäisi suomeksi kirjoittaa. Tämä nyt yrittää vastata tuohon uuudempaankin jollakin tasolla.

Eli tuo kertoo mitä palautetaan, ja esittelee myös mitä se syö. Nuo sisääntulevat nimet eivät ole merkityksellisiä (muuta kuin kuvauksen kannalta) funktion ulkopuolella ( sivuutetaan tässä 'out').

Eli ohjelman kannalta merkityksellistä on, että tuolle annetaan oikean tyyppistä kamaa, ja funktion sisällä sitten niitä käytetään jotenkin (TM). Kutsumisen kannalta on siis aivan sama, onko nimi lemmikkiPossuniEtuNimi = "Heikki" vai annatko kutsussa suoraan stringin "Heikki", ilman että välissä tallennettu muuttujaan. CompareIL("Heikki",...

E. Tämä puhelimella, toivottavasti tästä saa jotain selvää
 
Liittynyt
23.10.2016
Viestejä
1 474
JA sorry että jankkaan (muille) selvästä asiasta, mutta en pääse eteenpäin ellen ymmärrä tätä tärkeää asiakokonaisuutta.
Voisi olla tämäkin tapaus niin paljon helpompi, kun olisi vaan joku oikea materiaali alla ja tekisi sen mukaan:

Metodit ja ohjelman jakaminen pienempiin osiin - Ohjelmoinnin MOOC 2020

Ohjelmointikieli on eri, mutta jos C#:lle ei ole olemassa fiksua materiaalia, unohtaisin sen hetkeksi kokonaan, siirtyisin Moociin tekemään Javaa ja sitten takaisin C# pariin kun koen ymmärtäväni riittävästi, koska käytännössä ~kaikki sama pätee kuitenkin. Tukikanavat myös löytyvät, ja toki voi kysellä uudestaan jos ei materiaalinkaan perusteella selviä.
 
Liittynyt
09.03.2018
Viestejä
375
Se mikä tässä esimerkissä edelleen askarruttaa on se että, nyt kun käyttäjä määritteli pääohjelmassa muuttujat sana1 ja sana2.

Kuitenkin funktioon: CompareInputLenght laitoit parametreiksi täysin tuntemattomat "firstVal" ja "secondVal" Miksi näin?

Ymmärsin eilisen perusteella, että nuo sulkuihin tulevat funktion parametrit on ikäänkuin input arvoja pääohjelmalta. mutta ne ilmeisesti voi olla mitä vain, vaikka tyhjiä vasta nimettyjä muuttujia?

Eli miksi et käyttänyt sana1 ja sana2 muuttujia joihin oli jo tuo lukujono syötetty. Tai mistä tuo CompareInputLenght - funktio tietää mitä nämä firstval ja secondval muuttujat sisältää jos niitä ei mainita pääohjelmassa?

JA sorry että jankkaan (muille) selvästä asiasta, mutta en pääse eteenpäin ellen ymmärrä tätä tärkeää asiakokonaisuutta.
CompareInputLength() funktio ei periaatteessa välitä muusta kun että sille annetaan kaksi string muuttujaa. Ne muuttujat, sana1 ja sana2 on määritelty pääohjelmassa koska tuo TakeInput() on palauttaa syötetyt arvot.

Olisin toki voinut nimetä CompareInputLength() funktioon sana1 ja sana2 stringit, mutta ajattelin että tuo havainnollistasi tota logiikkaa. Ei ole ehkä paras esimerkki, kun tekee asian vaikeammaksi ilman hyvää syytä. Olio-ohjelmointi on vähän sellasta että alkuun ihan hepreaa ja jossain vaiheessa homma klikkaa päässä ja alkaa hahmottamaan (tai luulee niin)
 

Starglazer

Tukijäsen
Liittynyt
17.10.2016
Viestejä
3 096
Ei nyt varsinaisesti ohjelmointikysymys mutta SQL kysymys.
Miten SQL Developerissa saa kyselyn tuloksen tuottamaan ääkkösiä?
Kyselyssä on sarake, jonka nimesin "MÄÄRÄ". Kyselyn tuloksiin tulee "MÄÄRÃ".
Merkistöihin kai tämä jotenkin liittyy, mutta en keksi mistä tuo vaihdetaan..
Koneessa Win 10, Windowsin näyttökielenä English (US) ja muut asetukset suomea. SQL Developerissa on asetuksissa "Encoding" UTF8.
Ei tuo varsinaisesti haittaa mitään mutta minua ärsyttää :)
 
Liittynyt
16.10.2016
Viestejä
543
Ei nyt varsinaisesti ohjelmointikysymys mutta SQL kysymys.
Miten SQL Developerissa saa kyselyn tuloksen tuottamaan ääkkösiä?
Kyselyssä on sarake, jonka nimesin "MÄÄRÄ". Kyselyn tuloksiin tulee "MÄÄRÃ".
Merkistöihin kai tämä jotenkin liittyy, mutta en keksi mistä tuo vaihdetaan..
Koneessa Win 10, Windowsin näyttökielenä English (US) ja muut asetukset suomea. SQL Developerissa on asetuksissa "Encoding" UTF8.
Ei tuo varsinaisesti haittaa mitään mutta minua ärsyttää :)
Kaipa se koko kanta/kollatio pitää muuttaa utf-8 muotoon.

 

Starglazer

Tukijäsen
Liittynyt
17.10.2016
Viestejä
3 096
Kaipa se koko kanta/kollatio pitää muuttaa utf-8 muotoon.

Ei ole siitä kiinni, vanhalla Win 7 koneella toimii ääkköset oikein. Ja jos en väärin muista niin Toad antaa ääkköset oikein.
Tuo ominaisuus tulee siis "select data as "Määrä" from dual" tyylisestä kyselystä, eli ei tietokannasta.
E: Kokeilin Toadilla, tulee oikein.
 
Viimeksi muokattu:

Starglazer

Tukijäsen
Liittynyt
17.10.2016
Viestejä
3 096
Hah! Kannatti kysyä, nyt se syystä tai toisesta alkoi toimimaan oikein. Muuttelin yhtä sun toista asetusta, kai noista joku auttoi :D
 
Liittynyt
17.01.2018
Viestejä
2 076
Ei nyt varsinaisesti ohjelmointikysymys mutta SQL kysymys.
Miten SQL Developerissa saa kyselyn tuloksen tuottamaan ääkkösiä?
Kyselyssä on sarake, jonka nimesin "MÄÄRÄ". Kyselyn tuloksiin tulee "MÄÄRÃ".
Merkistöihin kai tämä jotenkin liittyy, mutta en keksi mistä tuo vaihdetaan..
Koneessa Win 10, Windowsin näyttökielenä English (US) ja muut asetukset suomea. SQL Developerissa on asetuksissa "Encoding" UTF8.
Ei tuo varsinaisesti haittaa mitään mutta minua ärsyttää :)
Mikä kanta ja mikä on sen merkistö?

Vähän kannasta riippuen voi joutua säätämään eri paikoista mutta oletan että käytät developerilla jdbc:tä.

"MÄÄRÃ" tulee silloin kun utf8 dataa käytetään kuten latin1/vastaavat, 2 byten mittainen utf8 Ä näkyy silloin kahtena merkkinä.

Muunnos voi tapahtua server-client välillä ja sen jälkeen vielä client- näyttö...
 
Liittynyt
12.01.2017
Viestejä
196
Minkä takia seuraava argumentti on true? Eikö ! muuta tuon ensimmäinen false:ksi, jolloin ohjelman pitäisi siirtyä seuraavaan if ehtoon kun molemmat eivät täyty?

luku a on 100

function luku(a) {
if ( !a % 100 == 0 && a % 4 == 0 ) {
message = "totta";
 

Starglazer

Tukijäsen
Liittynyt
17.10.2016
Viestejä
3 096
Mikä kanta ja mikä on sen merkistö?

Vähän kannasta riippuen voi joutua säätämään eri paikoista mutta oletan että käytät developerilla jdbc:tä.

"MÄÄRÃ" tulee silloin kun utf8 dataa käytetään kuten latin1/vastaavat, 2 byten mittainen utf8 Ä näkyy silloin kahtena merkkinä.

Muunnos voi tapahtua server-client välillä ja sen jälkeen vielä client- näyttö...
Oracle kanta ja merkistö UTF8. Clientissa selvästi oli ongelma.
 
Liittynyt
23.10.2016
Viestejä
658
Taas Typescriptiä. Testejen mock dataa varten haluaisin luoda apufunktion, joka konvertoi minkä tahansa tyyppisen datan promiseksi, mutta säilyttää kovertoitavan datan tyypin.

1588265246493.png


Eli esim jos konvertoin esimerkin getRaceCalendarReturnin promiseksi näin: const promise = toPromise(getRaceCalendarReturn), niin haluaisin promisen tyypin olevan Promise<RaceCalendarEvent[]> Promise<any> sijasta.

Miten onnistuisi?
 
Liittynyt
17.10.2016
Viestejä
14 661
Miten onnistuisi?
Toimisko tällainen generic:

JavaScript:
const tester = <T>(data: T) => Promise.resolve(data);
const foo = { bar: 123 };
tester(foo).then(data => console.log(data));
Nyt se päättelee T:n automaattisesti ja then:n sisällä oleva data saa oikean tyypin.
 
Liittynyt
23.10.2016
Viestejä
658
Toimisko tällainen generic:

JavaScript:
const tester = <T>(data: T) => Promise.resolve(data);
const foo = { bar: 123 };
tester(foo).then(data => console.log(data));
Nyt se päättelee T:n automaattisesti ja then:n sisällä oleva data saa oikean tyypin.
Toimii, kiitti. Juuri se mitä hain. :thumbsup:
 
Liittynyt
23.11.2018
Viestejä
84
Aloittelijalta kysymys (Python 2.7.)

Miten saan alla olevan koodinpätkän toistumaan 10 000 kertaa? Koodi siis lätkii pöydälle 13 korttia korttipakasta. Mikäli pakasta tulleen kortin numero on sama kuin sen järjestys, olen "hävinnyt" pelin. Mikäli saan lätkittyä 13 korttia pöydään saamatta korttia, joka vastaa vuorossa olevaa korttia järjestyksessä, "voitan" pelin ja saan yhden pisteen. Tämä pitäisi toistaa 10 000 kertaa ja laskea onnistumisten määrä yhteen.

Koodi:
draw=0 #Ensimmäinen kortti on vuoronumeroltaa 0, koska myös korttipakan pienin kortti on arvoltaan 0
poang=0

for card in range(13):
     k=random.choice(kortlek) #valitsee pakasta kortin
     kortlek.remove(k) #poistaa pakasta käytetin kortin
     if k==draw: #jos nostettu kortti vastaa sen sijalukua, loppuu peli siihen ja uusi kierros alkaa
        break
     elif draw==12: #jos pääsen loppuun asti pelissä saamatta vuorolukua vastaavaa korttia, saan yhden pisteen"
        poang=poang+1
      
     else: #jos nostettu kortti ei vastaa vuoronumeroa, otan uuden kortin
        draw=draw+1
print poang   #tulostaisi 10 000 kierroksen jälkeen voittojen määrän
Tätä ennen on koodinpätkä, joka luo korttipakan ja sekoittaa kortit. Vain numeroilla on väriä, ei maalla.

EDIT: NVM, sain toimimaan.
 
Viimeksi muokattu:
Liittynyt
17.10.2016
Viestejä
5 395
Laitat vaikka for-silmukan ennen tuota luupattavaa koodia tyyliin for luuppi in range(10000):
 
Liittynyt
23.11.2018
Viestejä
84
Kortti-casen sain toimimaan, mutta vielä viimeisellä kysymyksellä haluaisin vaivata (Python 2.7). Alla olevan koodin tulisi simuloida shakkilautaa ja koodin tulisi laskea todennäköisyydet sille, että satunnaisiin paikkoihin asetetut a) kaksi tornia ja b) kaksi kuningatarta uhkaisivat toisiaan jos simulaatio ajettaisiin 10 000 kertaa. Olen saanut alla olevan pätkän rakennettua, mutta siinä on pari ongelmaa.
* Ensinnäkin nappulat eivät saisi osua samaan ruutuun.
* Kuningattaren liikerata on laskettuna väärin

Onko neuvoja, miten koodia muuttaa jotta yllä olevat kaksi asiaa saisi toimimaan? Mieluusti niin, että alkuperäistä koodia muokattaisiin mahdollisimman vähän.

Koodi:
import random
rows=range(1,9) #generates the row number
columns=range(97,97+8) #generates the column number
hot=0 #times threat took place
icke_hot=0 #times threat did not take place
for spel in range(10000):
    white_row=random.choice(rows) #Gets position in row
    black_row=random.choice(rows)
    white_column=random.choice(columns) #Gets position in column
    black_column=random.choice(columns)

    if white_column==black_column or white_row==black_row: #checks if rook can attack
        hot=hot+1
    
    elif white_column==black_column or white_column==black_column+1 or white_column==black_column-1:
        hot=hot+1
        #checks if queen can attack

    elif white_row==black_row or white_row==black_row+1 or white_row==black_row-1:
        hot=hot+1
        #checks if queen can attack
    else:
        icke_hot=icke_hot+1
print "Threats took place in", hot/100.0,"% of cases"
print hot
print icke_hot
 
Liittynyt
19.10.2016
Viestejä
3 425
Kortti-casen sain toimimaan, mutta vielä viimeisellä kysymyksellä haluaisin vaivata (Python 2.7). Alla olevan koodin tulisi simuloida shakkilautaa ja koodin tulisi laskea todennäköisyydet sille, että satunnaisiin paikkoihin asetetut a) kaksi tornia ja b) kaksi kuningatarta uhkaisivat toisiaan jos simulaatio ajettaisiin 10 000 kertaa. Olen saanut alla olevan pätkän rakennettua, mutta siinä on pari ongelmaa.
* Ensinnäkin nappulat eivät saisi osua samaan ruutuun.
* Kuningattaren liikerata on laskettuna väärin

Onko neuvoja, miten koodia muuttaa jotta yllä olevat kaksi asiaa saisi toimimaan? Mieluusti niin, että alkuperäistä koodia muokattaisiin mahdollisimman vähän.

Koodi:
import random
rows=range(1,9) #generates the row number
columns=range(97,97+8) #generates the column number
hot=0 #times threat took place
icke_hot=0 #times threat did not take place
for spel in range(10000):
    white_row=random.choice(rows) #Gets position in row
    black_row=random.choice(rows)
    white_column=random.choice(columns) #Gets position in column
    black_column=random.choice(columns)

    if white_column==black_column or white_row==black_row: #checks if rook can attack
        hot=hot+1
   
    elif white_column==black_column or white_column==black_column+1 or white_column==black_column-1:
        hot=hot+1
        #checks if queen can attack

    elif white_row==black_row or white_row==black_row+1 or white_row==black_row-1:
        hot=hot+1
        #checks if queen can attack
    else:
        icke_hot=icke_hot+1
print "Threats took place in", hot/100.0,"% of cases"
print hot
print icke_hot
DarryIG avasikin stackoverflowssa noita ongelmia tuossa (mutta ymmärsin, että kaipaat hieman lisää selkokieltä?).

Olettaen, että nuo a ja b ovat tosiaan erilliset tapaukset, niin sinun tulisi testata ne erikseen, nyt lisäilet 'osumia' s.e. molemmat variaatiot ovat mukana. Eli tarkista_osuuko_kuningatar tms suattaisi olla hyvä ajatus. (ruutupaperilla tai excelillä mietit miten kuningatar liikkuu... Yksi suunta +1 molempiin akseleihin, toinen +1, - 1 jne.)

Lisäksi huomio siitä, että voit keksiä paikat ottamalla yhden 64:sta kolumni-rivi-parista ja sitten seuraavan jäljelle jäävistä 63:sta ratkaisee tuon arpomisongelman.
 
Liittynyt
02.12.2017
Viestejä
89
Olettaen, että nuo a ja b ovat tosiaan erilliset tapaukset, niin sinun tulisi testata ne erikseen, nyt lisäilet 'osumia' s.e. molemmat variaatiot ovat mukana. Eli tarkista_osuuko_kuningatar tms suattaisi olla hyvä ajatus. (ruutupaperilla tai excelillä mietit miten kuningatar liikkuu... Yksi suunta +1 molempiin akseleihin, toinen +1, - 1 jne.)
En tiedä paljoakaan shakista (tai ohjelmoinnista), mutta eikö tuo kuvauksesi sovi paremminkin kuninkaan liikkeisiin kuin kuningattaren?
 
Liittynyt
23.11.2018
Viestejä
84
DarryIG avasikin stackoverflowssa noita ongelmia tuossa (mutta ymmärsin, että kaipaat hieman lisää selkokieltä?).

Olettaen, että nuo a ja b ovat tosiaan erilliset tapaukset, niin sinun tulisi testata ne erikseen, nyt lisäilet 'osumia' s.e. molemmat variaatiot ovat mukana. Eli tarkista_osuuko_kuningatar tms suattaisi olla hyvä ajatus. (ruutupaperilla tai excelillä mietit miten kuningatar liikkuu... Yksi suunta +1 molempiin akseleihin, toinen +1, - 1 jne.)

Lisäksi huomio siitä, että voit keksiä paikat ottamalla yhden 64:sta kolumni-rivi-parista ja sitten seuraavan jäljelle jäävistä 63:sta ratkaisee tuon arpomisongelman.
Selkokieltä kaipaisin ja mielellään selkeää koodinpätkääkin. Sen verran aloittelija vielä, että en kovin helposti saa ajatuksia muunnettua koodiksi.
Tavallaan nuo kaksi tapausta (torni & kuningatar) voi nähdä yhtenä tapauksena, koska kuningattaren liikkeet ovat samat kuin tornin, mutta lisäyksenä ristisuunnassa liikkumiset. Eli tavallaan tuon tornin voi tästä ajatusleikistä jättää pois.

Miten tuon kuningattaren liikkeen saisi toteutettua kunnolla? Seinä voi akselilla tulla vastaan heti tai vasta monen ruudun päästä.
 
Toggle Sidebar

Statistiikka

Viestiketjut
239 512
Viestejä
4 193 386
Jäsenet
70 746
Uusin jäsen
vateezz

Hinta.fi

Ylös Bottom