nopanheitto

mikä olisi nopanheitossa while lauseen ehto kun pitäis saada kaksi samaa lukua perätysten, kun luvut arvotaan randomilla.

Tarvii neuvoa nopeasti Kiitos!!!
111158
Äänestä

Muut lukivat myös

Vastaukset 11

Vanhimmat

miksi siinä whileä pitäisi käyttää? tai sitten en ymmärtänyt jotain

int numero1 = ota randomilla tähän eka luku
int numero2 = ota randomilla tähän toinen luku
if(numero1 == numero2)
{
printf("tuli sama");
}
else
{
printf("ei tullut samaa");
}

Äänestä

Kannattaisi pyörittää whilen sijasta for-silmukkaa. Tulee vähän fiksumpaa koodia.
Pistä sinne tulostavan silmukan sisään if-lause.
if(numerot[i]==numerot[i-1])
break;
Eli hyppää loopista ulos, kun kaksi samaa lukua tulee peräkkäin.

Äänestä
  • miten toi käytännös menee toi for ja break? toi if lause varmaankin toimii !!

    Äänestä

  • miksi pitäisi käyttää for-silmukkaa silloin, kun ei tiedetä lopullista heittojen määrää?

    Foria yleensä ottaen käytetään aina, kun tiedetään kuinka monta kertaa silmukka pitää toistaa. Tässähän voi heittoja tulla teoriassa ääretön määrä, ennen kuin tulee kaks kertaa sama luku peräkkäin.

    Äänestä

  • Piru kirjoitti:

    miksi pitäisi käyttää for-silmukkaa silloin, kun ei tiedetä lopullista heittojen määrää?

    Foria yleensä ottaen käytetään aina, kun tiedetään kuinka monta kertaa silmukka pitää toistaa. Tässähän voi heittoja tulla teoriassa ääretön määrä, ennen kuin tulee kaks kertaa sama luku peräkkäin.

    Siis forilla ja whilellä on vain se ero, että for on nopeampi kirjoittaa ja selvemmän näköinen kuin while. Forin voi aina korvata whilellä, mutta foria ei kannata käyttää, jos sen kaikkia 'kohtia'( int i; i < p; i ) ei tarvita ja tällöin tulee käyttää whileä. Kuitenkaan ei ole mitään tuollaista nyrkkisääntöä: "Foria yleensä ottaen käytetään aina, kun tiedetään kuinka monta kertaa silmukka pitää toistaa.", vaan foria voi ihan hyvin käyttää, vaikka toistojen määrä ei ole ohjelmoitaessa tiedossa, kunhan forin kaikille 'kohdille' on käyttöä.

    Äänestä

  • Canopus kirjoitti:

    Siis forilla ja whilellä on vain se ero, että for on nopeampi kirjoittaa ja selvemmän näköinen kuin while. Forin voi aina korvata whilellä, mutta foria ei kannata käyttää, jos sen kaikkia 'kohtia'( int i; i < p; i ) ei tarvita ja tällöin tulee käyttää whileä. Kuitenkaan ei ole mitään tuollaista nyrkkisääntöä: "Foria yleensä ottaen käytetään aina, kun tiedetään kuinka monta kertaa silmukka pitää toistaa.", vaan foria voi ihan hyvin käyttää, vaikka toistojen määrä ei ole ohjelmoitaessa tiedossa, kunhan forin kaikille 'kohdille' on käyttöä.

    Sellaisesta for-silmukasta, minkä kaikille "kohdilla" on käyttöä, mutta josta ei tiedetä etukäteen kuinka monesti sitä pitää toistaa.

    Äänestä

  • rupi kirjoitti:

    Sellaisesta for-silmukasta, minkä kaikille "kohdilla" on käyttöä, mutta josta ei tiedetä etukäteen kuinka monesti sitä pitää toistaa.

    int main() {
    int luku = 0;

    for( int i = 0; ! (cin >> luku ); i ) {
    if( i == 11 ) {
    cout

    Äänestä

  • Canopus kirjoitti:

    int main() {
    int luku = 0;

    for( int i = 0; ! (cin >> luku ); i ) {
    if( i == 11 ) {
    cout

    kuinka monesti ehto maksimissaan pitää suorittaa (ok, sitä "Maksimissaan" ei ääneen sanottu, mutta sitä tarkoitettiin).

    En tiedä muista, mutta minusta tuo koodi on vähän nurinkurisen näköistä. Se ei myöskään toimi oikein. Esim. syötteet 9flkj ja 9e-12 antavat luku:lle arvon 9, joka on kyllä väärin. Syöte f9 tulostaa virheilmoituksen JA lopettaa ohjelman EXIT_SUCCESS:lla.

    Eli ei kelpaa. (asia on kuten piru sen ilmaisi, toki molempia voi käyttää ristiin, mutta yleensä on järkevää käyttää niitä kuten 99% ohjelmoijista tekee).

    Äänestä

  • rupi kirjoitti:

    kuinka monesti ehto maksimissaan pitää suorittaa (ok, sitä "Maksimissaan" ei ääneen sanottu, mutta sitä tarkoitettiin).

    En tiedä muista, mutta minusta tuo koodi on vähän nurinkurisen näköistä. Se ei myöskään toimi oikein. Esim. syötteet 9flkj ja 9e-12 antavat luku:lle arvon 9, joka on kyllä väärin. Syöte f9 tulostaa virheilmoituksen JA lopettaa ohjelman EXIT_SUCCESS:lla.

    Eli ei kelpaa. (asia on kuten piru sen ilmaisi, toki molempia voi käyttää ristiin, mutta yleensä on järkevää käyttää niitä kuten 99% ohjelmoijista tekee).

    No niin no joo. Kyllähän se niin on, että jos on kyseessä looppi, joka voi jatkua loputtomiin( kuten nopanheitto esimerkissä ), niin on järkevämpää käyttää while, kuin for, mutta se ei kuitenkaan ole sama kuin looppi, jonka pyörähdysten määrää ei tiedetä koodaus vaiheessa. Eli käsitin, että tarkoitit juuri tuollaista foria, jonka suoritus loppuu ennen kuin forin ehto täytyy. Mutta tässä on tuo esimerkkikoodini vähän fiksummin. Tässä tuota foriakaan ei ole raiskattu, kuten aiemmin. :-)

    #include
    #include
    #include
    #include

    using namespace std;

    int main() {
    cout turhaa ) ) {
    break;
    }

    cout

    Äänestä

  • Canopus kirjoitti:

    No niin no joo. Kyllähän se niin on, että jos on kyseessä looppi, joka voi jatkua loputtomiin( kuten nopanheitto esimerkissä ), niin on järkevämpää käyttää while, kuin for, mutta se ei kuitenkaan ole sama kuin looppi, jonka pyörähdysten määrää ei tiedetä koodaus vaiheessa. Eli käsitin, että tarkoitit juuri tuollaista foria, jonka suoritus loppuu ennen kuin forin ehto täytyy. Mutta tässä on tuo esimerkkikoodini vähän fiksummin. Tässä tuota foriakaan ei ole raiskattu, kuten aiemmin. :-)

    #include
    #include
    #include
    #include

    using namespace std;

    int main() {
    cout turhaa ) ) {
    break;
    }

    cout

    "mutta se ei kuitenkaan ole sama kuin looppi, jonka pyörähdysten määrää ei tiedetä koodaus vaiheessa."

    Se on sama asia kuin luuppi, jonka pyörähdysten määrää ei tiedetä ajovaiheessa. Toki for voi päättyä ennen kuin lopetusehto tulee voimaan, mutta niin se voi whilekin. (Joskin break:ia käytetään yleensä virhetilanteissa. Kun silmukan ehtona on for:n tapauksessa suoritusten määrä ja while:n tapauksessa suoritusehto, niin break indikoi yleensä (käytännössä aina) jotain hätää suorituksessa.)

    "Eli käsitin, että tarkoitit juuri tuollaista foria, jonka suoritus loppuu ennen kuin forin ehto täytyy."

    Ok, en tarkoittanut sitä vaan tapausta, jossa ajovaiheessa ei tiedetä suoritusten lukumäärää. Tällöin while on paikallaan.

    Äänestä

Sitäkö, että montako kertaa tulee kahta noppaa heittää jotta tulee kaksi samanlaista?

Ts. haet vastausta MONTAKO KERTAA vaiko ylipäätään haluat kaksi samanlaista?

Jälkimmäinen olisi 'helppo' jo siksi, että siinähän ei ole mitään järkeä?

Äänestä

Kommentoi aloitusta


jiiri kirjoitti:

mikä olisi nopanheitossa while lauseen ehto kun pitäis saada kaksi samaa lukua perätysten, kun luvut arvotaan randomilla.

Tarvii neuvoa nopeasti Kiitos!!!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu