Pisteiden vähennys

C ohjelmointia aloittelen.
Mäkihyppy pisteiden syöttäminen 5 tuomarilta, niistä pitäisi vähentää pienin ja suurin pistemäärä.
Jos saisin jonkin laisen lyhyen esimerkki pätkän
Kiitos.
5653
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

niin pisteet taulukkoon ja sitten niille bubblesort, joka pistää arvot järjestykseen taulukossa.

for(int x=0; x

Äänestä
  • kokeilen. Kyllä meinasin ihan puhdasta C opetella.

    Äänestä

  • Ohjelmoinnissa haastavinta on löytää *järkevä* ratkaisu ongelmalle. Järkevän ratkaisun kirjoittaminen käytettävällä ohjelmointikielellä ei ole siihen verrattuna enää isokaan juttu.

    Piru_ lähetti hyvän esimerkin järjettömästä ratkaisusta. Jos tehtävänä on löytää taulukosta suurin ja pienin alkio, on melkoinen ylilyönti mennä järjestämään taulukko sitä varten. Jos C-ohjelmassa pitäisi järjestää taulukko, sitä varten on olemassa qsort-funktio. Ja jos sitä ei jostain syystä saisi käyttää, kaikkien kädellisten ohjelmoijien pitäisi toteuttaa jokin järkevä järjestysalgoritmi (edes http://en.wikipedia.org/wiki/Insertion_sort) eikä mitään bubble sorttia.

    Hyvän ohjelmoijan ohjelmakoodi tekee sen mitä on pakko, eikä yhtään ylimääräistä. Kaikki ylimääräinen nimittäin tuo koodiin turhaa monimutkaisuutta, mistä seuraa vain turhia virheitä, suorituskykyongelmia ja vähänkin isommassa projektissa ylläpitokelvoton lopputulos.

    Suurimman ja pienimmän alkion etsimiseksi riittää käsitellä jokainen alkio vain yhden kerran. Alkioiden läpikäynnin aikana pidetään kirjaa suurimmasta ja pienimmästä nähdystä alkiosta. Jos käsiteltävänä oleva alkio on pienempi kuin pienin siihen asti nähty, päivitetään pienintä nähtyä alkiota. Vastaavasti käsiteltävänä olevaa alkiota voidaan verrata myös suurimpaan alkioon.

    Fiksut huomaavat, ettei käsiteltävää alkiota tarvitse aina verrata sekä suurimpaan että pienimpään nähtyyn alkioon, vaan joissain tilanteissa toinenkin riittää.

    Äänestä

  • azk.py kirjoitti:

    Ohjelmoinnissa haastavinta on löytää *järkevä* ratkaisu ongelmalle. Järkevän ratkaisun kirjoittaminen käytettävällä ohjelmointikielellä ei ole siihen verrattuna enää isokaan juttu.

    Piru_ lähetti hyvän esimerkin järjettömästä ratkaisusta. Jos tehtävänä on löytää taulukosta suurin ja pienin alkio, on melkoinen ylilyönti mennä järjestämään taulukko sitä varten. Jos C-ohjelmassa pitäisi järjestää taulukko, sitä varten on olemassa qsort-funktio. Ja jos sitä ei jostain syystä saisi käyttää, kaikkien kädellisten ohjelmoijien pitäisi toteuttaa jokin järkevä järjestysalgoritmi (edes http://en.wikipedia.org/wiki/Insertion_sort) eikä mitään bubble sorttia.

    Hyvän ohjelmoijan ohjelmakoodi tekee sen mitä on pakko, eikä yhtään ylimääräistä. Kaikki ylimääräinen nimittäin tuo koodiin turhaa monimutkaisuutta, mistä seuraa vain turhia virheitä, suorituskykyongelmia ja vähänkin isommassa projektissa ylläpitokelvoton lopputulos.

    Suurimman ja pienimmän alkion etsimiseksi riittää käsitellä jokainen alkio vain yhden kerran. Alkioiden läpikäynnin aikana pidetään kirjaa suurimmasta ja pienimmästä nähdystä alkiosta. Jos käsiteltävänä oleva alkio on pienempi kuin pienin siihen asti nähty, päivitetään pienintä nähtyä alkiota. Vastaavasti käsiteltävänä olevaa alkiota voidaan verrata myös suurimpaan alkioon.

    Fiksut huomaavat, ettei käsiteltävää alkiota tarvitse aina verrata sekä suurimpaan että pienimpään nähtyyn alkioon, vaan joissain tilanteissa toinenkin riittää.

    #include
    #include

    /*
    * "Mäkihyppypistelasku"
    */
    float laske_tulos(const float taulukko[], unsigned koko)
    {
    float min = taulukko[0];
    float max = taulukko[0];
    float piste, summa = 0;
    unsigned i;

    for (i=0; i max) max = piste;
    else if (piste < min) min = piste;
    }

    return (summa - max - min);
    }

    /*
    * Testi ohjelma.
    */
    int main(void)
    {
    const float PISTEET[] = {15.5f, 16.2f, 17.2f, 15.0f, 16.6f};
    const unsigned MAARA = sizeof(PISTEET) / sizeof(float);

    float tulos = laske_tulos(PISTEET, MAARA);

    printf("tulos %.2f", tulos );

    assert(tulos == 48.30f);

    return 0;
    }

    ps. Oikeassa softassa pisteet taulukkoa ei luonnollisestikkaan määritellä kiinteäksi ("rom") 'const' etuliitteellä (eikä yleensä täten nimetä vain isoilla kirjaimilla).

    Äänestä

Kommentoi aloitusta


Nimetön kirjoitti:

C ohjelmointia aloittelen.
Mäkihyppy pisteiden syöttäminen 5 tuomarilta, niistä pitäisi vähentää pienin ja suurin pistemäärä.
Jos saisin jonkin laisen lyhyen esimerkki pätkän
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