Sunteți pe pagina 1din 3

LUCRAREA DE LABORATOR 4 Elaborai programe, care implementeaz clasa numerelor raionale.

Clasa trebuie s conin date private i date publice, mai muli constructori, inclusiv de copiere, destructor i metode ce realizeaz prelucrarea datelor, cerut n varianta respectiv. Definii metodele simple n interiorul clasei, iar metodele mai complexe nafara clasei. Folosii at t obiecte, c t i pointeri i referine la obiecte. !ncludei n program enunul problemei i mai multe comentarii. Comentai unde i care constructor lucreaz i cum lucreaz destructorul" unde, c nd i care obiecte le distruge. #. !nversarea unei fracii" a b b a

a a b b '. %implificarea unei fracii (vezi problema respectiv din semestrul $) a c a d + b c *. +dunarea a dou fracii i simplificarea rezultatului, dac e cazul" + = b d b d a c a d b c ,. %cderea a dou fracii i simplificarea rezultatului, dac e cazul" = b d b d a c a c -. .nmulirea a dou fracii i simplificarea rezultatului, dac e cazul" = b d b d a c a d /. .mprirea a dou fracii i simplificarea rezultatului, dac e cazul" " = b d b c $. %c&imbarea semnului unei fracii" a 0. 1idicarea la putere a unei fracii ireductibile" , n Z b a 2. Extragerea rdcinii dintr3o fracie" n , n N + b 4. Calcularea valorii unui polinom cu coeficienii fracii i valoarea necunoscutei fracie i ' n simplificarea rezultatului, dac e cazul" P ( x ) = c# + c$ x + c' x + ... + cn x $#. Calcularea determinantului de ordinul *, cu coeficienii fracii i simplificarea rezultatului, a b c dac e cazul" d e f = a e k + c d h + g b f g e c a h f k b d g h k
n

EXEMPLUL 1. Problema 3 (fr simplificarea fraciei!). .n acest exemplu clasa respectiv conine * constructori, metoda care realizeaz adunarea a ' fracii i metoda care afieaz o fracie. .n funcia main() sunt utilizai toi membrii clasei.
// // // // // laba4.cpp : Defines the entry point for the console application. Lucrarea de laborator 4 Problema 3 Adunarea a doua fractii

#include "stdafx.h" #include iostream! usin" namespace std# class rational

$ pri%ate: int a# int b# public: // default constructor rational&' $ ( // constructor creatin" a fraction by parameters rational&int a) int b * +' $ rational::a * a# rational::b * b# ( // copy,constructor rational&const rational- .' $ a * ..a# b * ..b# ( /rational&' $ ( rational add&const rational- %' const# %oid afis&'# (# rational rational::add&const rational- %' const $ rational r# r.a * a 0 %.b 1 b 0 %.a# r.b * b 0 %.b# return r# ( %oid rational::afis&' $ cout a (

2/2

b#

int main& ' $ rational c&+)3') d&3)3') 4# c.afis&'# cout " 1 "# d.afis&'# cout " * "# 4*c.add&d'# 4.afis&'# cout endl endl# rational 5 * c) D * rational&3)6'# 5.afis&'# cout " 1 "# D.afis&'# cout " * "# 4*5.add&D'# 4.afis&'# cout endl endl# rational 7&5') 8&4'# 7.afis&'# cout " 1 "# 8.afis&'# cout " * "# 4*7.add&8'# 4.afis&'# cout endl endl# rational 9&3)3') :&D') ;# 9.afis&'# cout " 1 "# :.afis&'# cout ;*9.add&:'# ;.afis&'# cout endl endl# rational 0p) x# p*ne< rational# x*rational&3)3'# 0p*rational&;'# x.afis&'# cout " 1 "# p,!afis&'# cout " * "#

" * "#

'

4*x.add&0p'# 4.afis&'# cout endl endl# return =# (

Programul va ex rage la ecra!" $5' 6 *5' 7 25, $5' 6 *5/ 7 $'5$' $5' 6 ,5$ 7 45' '5* 6 *5/ 7 '$5$2 '5* 6 '$5$2 7 445-, 8ress an9 :e9 to continue . . .