Tölvunarfræði 2 - Vor 2012


Verkefni 1


Lausnum skal skilað til viðkomandi dæmakennara (sjá lista yfir dæmatíma).

Reynið að skrifa stutt, skýr og hnitmiðuð forrit. Notið réttan inndrátt og gætið þess að forritin ykkar séu læsileg.

Skiladagur: þriðjudaginn 17. janúar fyrir kl 16:00


Dæmi 1 (seq forrit) - 2 stig


seq forritið í Linux prentar út talnarunu samkvæmt viðföngum úr skipanalínu.

Það er hægt að keyra forritið með einu viðfangi, N, og þá prentar það talnarununa 1, 2, .., N.

hhg@hhg:~/t2$ seq 5
1
2
3
4
5
hhg@hhg:~/t2$ 

Það er einnig hægt að keyra forritið með tveimur viðföngum, K og N, og þá prentar það talnarununa K, K+1, .., N.

hhg@hhg:~/t2$ seq 3 7
3
4
5
6
7
hhg@hhg:~/t2$ 

Að lokum er hægt að keyra forritið með þremur viðföngum, K, S og N, og þá prentar það út talnarununa K, K+S, K+2*S, K+3*S, .., upp að N.

hhg@hhg:~/t2$ seq 1 2 10
1
3
5
7
9
hhg@hhg:~/t2$ 

Skrifið ykkar eigin útgáfu af seq í C.


Ábendingar


Gagnleg forrit: argv.c, atoi.c


Dæmi 2 (count forrit) - 2 stig


Skrifið forrit í C sem les heiltölur af aðalinntaki og prentar að lokum út fjölda talna.


Prófun


Dæmi um inntak og úttak:

Inntak:
1
2
1
3
Úttak:
4


Ábendingar


Þið getið notað scanf til að lesa heiltölur af aðalinntaki. Dæmi: echoint.c


Dæmi 3 (word count) - 2 stig


wc forritið í Linux les texta af aðalinntaki og prentar að lokum út fjölda lína, orða og stafa (bæta) í textanum.

Dæmi um notkun wc í skipanalínu:

hhg@hhg:~$ wc < mobydick.txt 
  22158  209341 1191463
hhg@hhg:~$ 
hhg@hhg:~$ java wc < mobydick.txt 
22158 209341 1191463
hhg@hhg:~$ 

Samkvæmt wc þá eru 22158 línur, 209341 orð og 1191463 bæti í mobydick.txt.

Skoðið wc.java sem er einföld Java útgáfa af wc. Skrifið hliðstæða útgáfu í C sem virkar eins.


Prófun


Sækið mobydick.txt og keyrið forritið ykkar á hana. Þið ættuð að fá nákvæmlega sömu niðurstöðu og fyrir ofan. Ef þið fáið aðra niðurstöðu þá er forritið ekki rétt.


Ábendingar


Þið getið notað isspace í C í staðinn fyrir Character.isWhitespace í Java. Munið eftir ctype.h í include.

Í þessu dæmi þá er þægilegast að nota getc eða getchar til að lesa af aðalinntaki. Sjá einnig echochar.c


Dæmi 4 (valid DNA) - 2 stig


Skoðið ValidDNA.java (forrit úr Tölvunarfræði 1). Skrifið hliðstæða útgáfu í C sem virkar eins.


Ábendingar


Gagnleg forrit: printchars.c


Dæmi 5 (minmax) - 2 stig


Skoðið MinMax.java (forrit úr Tölvunarfræði 1). Skrifið hliðstæða útgáfu í C sem virkar eins.


Ábendingar


Gagnleg forrit: echoint.c

Þið getið notað fastana INT_MIN og INT_MAX ef þið gerið #include <limits.h>