RAČUNALNIŠTVO I 1997/98

2. domača naloga

20. februar 1998

1. V prvi domači nalogi smo naredili izvedbeni in testni modul ART za večnatančnostno aritmetiko nad celimi števili. Za to nalogo bomo modul spremenili, da bo deloval nad racionalnimi števili.

Naloga: Napišite definicijski, izvedbeni in testni modul RAC za delo z večnatančnostno aritmetiko nad racionalnimi števili. Kot osnova za vaše delo naj bosta modula ART iz prve domače naloge in delo z vaj, kjer smo se že ukvarjali z racionalnimi števili.

Racinonalna števila definirajte kot:

                             /* tukaj je definicija ART_tNumber in
                                operacije nad njim
                             */
#include "../../code/ART/Art.h"
typedef struct {
  ART_tNumber  stevec;
  ART_tNumber  imenovalec;
} RAC_tNumber;

Definicijski modul naj nudi seštevanje in odštevanje racionalnih števil. Testni modul naj ima definirane enake operacije, seštevanje, odštevanje, izpis in vpis, ter naj se obnaša enako kot modul iz prve domače naloge. Izpis števila naj ima obliko:

          < predznak >< števec > / < imenovalec > .

Takšna naj bo tudi oblika vpisanega števila. Primer obnašnja testnega modula:

V1/2
V1/4
O
I

Izpiše se -1/4.

Za dodatne točke dopolnite modul, da bo po opravljenem seštevanju ali odštevanju ulomek tudi okrajšal.

Namig: Za dokončanje osnovne naloge najprej razširite modul ART, da bo nudil tudi množenje.

2. V prvi domači nalogi smo se ukvarjali z večnatančnostno aritmetiko v jeziku c.

Naloga: Napišite definicijski modul za večnatančnostno aritmetiko v jeziku c++.

Za dodatne točke naredite še izvedbeni modul v jeziku c++.

Rok za oddajo: 14.3.1998. do 19h v asistentov predal pri vratarju na FMF ali po elektronski pošti.