Mulla ja kaverilla on jatkuva paremmuus kilpailu kielistä. Nyt hän lähetti seuravaanlaisen viestin:
Tarkastele seuraavaa lauseketta: i--%5>0
a) Mikä on lausekkeen tulos, jos i:n arvo on alussa 10?
b) Muotoile lauseketta niin, että se tuottaa saman tuloksen, mutta on helpompi lukea.
Help. kaveri ei suostu auttaa. Me saadaan kysyä apua ulkopuolisilta, mutta sillä ehdolla että toinen antaa luvan ja saa luvan avun tarpeeseen myöhemmin.
Tarttis apua ongelmaan jonka kaveri lähetti.
19
1157
Vastaukset
- badgehunter
Noo joo. Ja viesti jossa tää tuli oli C kielen salaisuuksia joten siitä päättelin että tänne ois.
- Python-osaa-kai
Python ratkaisu
i=10
print(i--5>0)
Tulos on TRUE
Linux Mint 18.1 Serena
Xfce 64-bit- trollerson
Huomaa siinä oli % merkki, eli jakojäännös.
Miinusmerkit i:n jälkeen taas meinaa, että i:n vähennys yhdellä tehdään vasta lausekkeen jälkeen.
Eli 10 % 5 = 0.
0 > 0 = false.
- sdfsdfsdfsdg
a) 0
b) kysymyksessä ei ole järkeä - jgjhgjhjghjgjhgjh
"paremmuus kilpailu kielistä"
Huonoa kieltä. Taisit hävitä. - jaanojaa
a) false, numeroarvona 0.
b) i-- % 5 > 0
Ei tuossa mitään vaikeaa ole, mutta välilyönneillä ryhmittely selkeyttää ehkä hieman ja on muutenkin suositeltavaa ettei kaikkea kirjoiteta yhteen pötköön. Saman tuloksen toki saa myös, jos vähentää i:tä erikseenkin. - badgehunter
Selvä kaveri näköjään lähetti infoa: Hän päätti olla laiska ja ottaa tuon AMK moodlesta, eli hänen tehtävänsä.
- 5prosenttianollastaon0
Eikös tuo ole että i-muuttujasta vähennetään 5% 0:sta, eli i=i, sen arvo ei muutu.
- trollerson
Eikös prosenttimerkki yleensä meinaa jakojäännöstä, ainakin C:ssä ja sen sukuisissa ?
- ggggga
a)
i-- tarkoittaa sama kuin i - 1
(i-1)%5 tarkoittaa jakojäännöstä, kun (i-1) jaetaan 5:llä.
i on lähtötilanteessa 10
->(10-1)%5 = 9%5 = 4
ja kun suoritetaan vertailu 4>0 on tuloksena tosi.
b) (i-1)mod5>0 - äähnovoivit
i-- tarkoittaa, että lausekkeessa käytetään i:n alkuperäistä arvoa ja sitä vähennetään vasta sen jälkeen. Eli kun i on alussa kymmenen, lasketaan 10%5, joka on nolla, joka ei ole suurempi kuin nolla, eli tulos on "false". i:n arvo laskennan jälkeen on 9.
Esimerkki koodista josta toiset tykkää ja toiset välttää kun sitä on vaikea hahmottaa. Lauseista saa kyllä lyhyitä ja tehokkaita. Kääntäjä osaa kyllä tehdä hyvää koodia lauseesta i= i-1 . i-- käyttö ei tee koodista nopeampaa. i-- merkitsee tosiaan sitä, että vähennys tehdään vasta lauseen laskemisen jälkeen. --i taas sitä, että vähennys tehdään ensin.
Joo, siis kyseessä true/false lauseke, jonka ratkaisu riippuu i:n sen hetkisestä arvosta.
a) i--%5>0 kun i = 10.
Tässä suoritetaan ensin i--, jolloinka i on 9
seuraavaksi otetaan jakojäännös 9:stä, kun jaetaan 5:lla, eli saadaan 1 (C pyöristää alaspäin).
1 > 0, joten lauseke on tosi.
b)
int i = 10;
i--;
int jakojaannos = i % 5;
if (jakojaannos > 0) {
// ...... tee jotakin...
}minkkilaukku kirjoitti:
Sinäpäs pitkähkön vastauksen tuollaiseen trivialiteettiin kirjoittelit.
Ja vielä väärin, hih!
- öl2l3f23rf
minkkilaukku kirjoitti:
Ja vielä väärin, hih!
Níin tuollainën olisi itseasiassa 5 prosenttia nollanan arvosta..... aaa minkkilauku: tulipa taas tehtyä töitä ja joten voin alkaa ajattelemaankin :D '-n
- aikaviallinen
Minä sanoisin että opiskelevat elämään, kun ylipoistojen tohtoritkaan eivät tiedät tietokoneiden ohjelmoinnista, kuten eivät tiedä tohtoritkkaan eivät tiedä naistensa vaginoista....
... siitä se elämä lähtee joskus jos lähtee ...
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225614- 324960
- 292864
- 342384
- 372088
- 152038
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191657- 261622
- 121621
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons301539