-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
88 lines (67 loc) · 3.46 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Course: 58127 Programming in C (4 op /2 ov) Syksy 2007
University of Helsinki - Department of Computer Science
*******************************************************************************
SANALASKURI
1. Tehtävänanto
2. Käyttöohje
3. Ohjelman kääntäminen
4. Tiedostot
5. Testaus
*******************************************************************************
1. TEHTÄVÄNANTO:
Tee ohjelma, joka lukee yhden tekstitiedoston. Käyttäjän pitää voida valita
tiedoston syöttötapa. Hän voi joko antaa tiedoston nimen komentoriviparametrina
tai ohjelma voi olettaa tiedon tulevan stdin-tiedostosta.
Ohjelman pitää tulostaa tiedostosta löytyneet sanat (vähintään kaksi
peräkkäistä kirjainmerkkiä) ja niiden esiintymisten lukumäärät
aakkosjärjestyksessä. Kukin sana ja sen esiintymisten lukumäärä tulostetaan
omalle rivilleen. Tulostiedoston nimi käsitellään samoin kuin syöttötiedoston.
Käytä ratkaisussasi tietorakenteena binääripuuta. Toteuta binääripuu käyttäen
osoittimia ja dynaamisuutta. Puutoteutuksesi on tarkoitus käyttää
tietorakenteet -kurssilla opittuja puun perusoperaatioita.
*******************************************************************************
2. KÄYTTÖOHJE:
Ohjelman käyttö: ./sanalaskuri [-s tiedosto] [-o tulostiedosto]
Ohjelman mahdolliset parametrit:
-h / --help Tulostaa tämän ohjeen.
-s / --source <tiedosto> Tiedosto, josta sanoja luetaan.
-o / --out <tiedosto> Tiedosto, johon tulokset tallennetaan.
Jos parametrejä -s tai -o ei anneta, olettaa ohjelma syötteen tulevan
standarista syöttövirrasta tai tulostuksen menevän standardiin tulostusvirtaan.
Jos syötettä annetaan näppäimistöllä, voidaan sanojen antaminen lopettaa
painamalla CTRL-D
*******************************************************************************
3. OHJELMAN KÄÄNTÄMINEN
Ohjelma käännetään komennolla 'make'
Debuggaustietoa saa näkyviin, kun hiukan muokkaa Makefile:n ensimmäisiä rivejä.
*******************************************************************************
4. TIEDOSTOT:
-bintree.h
Sisältää tyyppimäärittelyt BinTree ja BinSilmu, sekä esittelyt
funktioista.
-bintree.c
Sisältää binääripuun varsinaisen ohjelmakoodin.
-sanalasluri.h
Sisältää esittelyt funktioista.
-sanalaskuri.c
Sisältää sanalaskurin varsinaisen ohjelmakoodin eli on pääohjelma.
-dynchar.h
Sisältää esittelyt funktioista
-dynchar.c
Sisältää funktion, jota voidaan käyttää kun halutaan dynaaminen
merkkijonotaulukko.
Ohjelman funktiot on esitelty tarkemmin .h -tiedostoissa.
*******************************************************************************
5. TESTAUS
Testausta tuli tehtyä ohjelman kirjoitusaikana lähinnä empiirisesti. Kun
ohjelman perustoiminnot oli saatu kasaan, aloitettiin testaaminen eri
aineistoilla ja korjattiin tämän testauksen aika ilmenneet ongelmat
(muutama selvä muistin ylivuoto, missä ohjelma kaatui suurella aineistolla).
Ohjelma tulosti muutamia lisätietoja DEBUG -määreellä, joka auttoi hiukan
joidenkin ongelmien paikallistamisessa.
Pienempiä muistin ylivuotoja tarkisteltiin ohjelmalla nimeltä valgrind ja kaikki
sen ilmoittamat virheet korjattiin. Ohjelman ei pitäisi vuotaa muistia.
Ohjelman oikeanlaista toimintaa testattiin erilaisilla aineistoilla, joista
suurin ja pisin oli mm. HTML 4.01 spesifikaation -dokumentti. Sanat voivat
ohjelmassa olla mielivaltaisen pituisia, tätäkin testattiin kohtuullisen
isoilla sanoilla.