Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit näytille: C: Kirosanan tunnistaja

Sivu 1 / 1

Koodi123 [25.02.2019 15:24:20]

#

Kirosanan tunnistaja on hyvä ohjelma kirosanojen tunnistamiseen. (Se ei luule joitain kirosanaa muistuttavia sanoja kirosanoiksi esim. Sovittua, jos olet lisännyt siihen sellaisen ominaisuuden joka tunnistaa vitun.) Tunnistaja tuntee vain yhden kirosanan. Tehtävä: Muuta koodia niin, että se tuntee viisi kirosanaa. Muistakaa kommentoida koodivinkin hyviä ja huonoja puolia, jotta voin muokata koodivinkkiä paremmaksi. (En ole varma kirjoitinko kaiken oikein) Kirosanan tunnistaja:

#include <stdio.h>

int main (void) {
    /* Tulostetaan teksti Ladataan . . . näytölle */
    printf("Ladataan . . .");
    /* Avataan tiedosto tunnistettava.txt */
    FILE *tiedosto;
    tiedosto = fopen("tunnistettava.txt", "r");
    /* Luodaan muuttuja, jonka nimi on merkki */
    char merkki;
    /* Toistetaan tiedoston loppuun asti */
    while (!feof(tiedosto)) {
        /* Luetaan merkki tiedostosta ja tallennetaan
        se muuttujaan merkki */
        merkki = fgetc(tiedosto);
        /* Jos merkki on p tai P: */
        if (merkki == "p" or "P") {
            /* Luetaan merkki tiedostosta */
            merkki = fgetc(tiedosto);
            /* Jos merkki on a tai A: */
            if (merkki == "a" or "A") {
                /* Luetaan merkki tiedostosta */
                merkki = fgetc(tiedosto);
                /* Jos merkki on s tai S: */
                if (merkki == "s" or "S") {
                    /* Luetaan merkki tiedostosta */
                    merkki = fgetc(tiedosto);
                    /* Jos merkki on k tai K: */
                    if (merkki == "k" or "K") {
                        /* Luetaan merkki tiedostosta */
                        merkki = fgetc(tiedosto);
                        /* Jos merkki on a tai A: */
                        if (merkki == "a" or "A") {
                           /* Tulostetaan Lopeta kiroilu! */
                            printf("Lopeta kiroilu!");
                        }
                    }
                }
            }
        }
    }
    return 0;
}

Metabolix [25.02.2019 15:43:02]

#

En tiedä, häiriköitkö tahallasi, mutta joka tapauksessa tämä koodi ei edes käänny C-kääntäjällä, joten luonnollisestikaan se ei kelpaa koodivinkiksi. Siirrän tämän upouudelle epämääräisten koodien keskustelualueelle. Voisitko itse edes kääntää ja testata ohjelmaasi ja tarvittaessa lukea esimerkiksi C-oppaasta neuvoja ohjelmoinnin perusasioihin?

Vaikka korjaisit vinkkiä niin, että se kääntyy, se ei toimisi kuvaamallasi tavalla. Edelleenkin "ripaska" sisältää merkit "paska" ja ohjelmasi löytäisi siitä kirosanan.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta