Dar viena diena universitete… Pirmasis C++ laboratorinis darbas

Taigi dar viena diena universitete.. Dar viena C++ paskaita, dar dvi suknistos matematikos.
Eina jos š*** (nesikeiksiu :P ). Ne, nu kaip nervina jo elgesys.. Butinai užstos ką rašo.. Butinai mintyse sugalvos, o pasakys garsiai tik sakinio pabaigą, dar kanors leptels ir liksi vel it musę kandęs (ot kaip mandrai išsireiškiau)…
Žodžiu, matematika nevež :)
Diskrečioji? Na ten bent aišku, bet velniškai nuobodu… Taip nuobodu, kad taip ir matai, kaip po truputi užmiega pusė auditorijos… Toliau pateikiu keleta nuotraukyčių ir pirmojo laboratorinio darbo užduotį ir kodą :)

Sakoma, kad studentai blogai gyvena :D O du nešiojamieji kompiuteriai vienoj auditorijoj – panašu į labai prastai gyvenančius studentus? ;) Turiningos, nuobodžios paskaitos, juokas, nervai, įtampa ir visa kita.. Tai dalis studento gyvenimo, kurio per metus ne taip ir pasiilgau.. Gana šnekų, štai foto:

[photopress:DSC05138.jpg,thumb,pp_empty] [photopress:DSC05141.jpg,thumb,pp_empty] [photopress:DSC05145.jpg,thumb,pp_empty]
[photopress:DSC05146.jpg,thumb,pp_empty] [photopress:DSC05148.jpg,thumb,pp_empty] [photopress:DSC05150.jpg,thumb,pp_empty]
[photopress:DSC05151.jpg,thumb,pp_empty] [photopress:DSC05152.jpg,thumb,pp_empty] [photopress:DSC05157.jpg,thumb,pp_empty]
[photopress:DSC05158.jpg,thumb,pp_empty] [photopress:DSC05163.jpg,thumb,pp_empty]

Vat taip va. O dabar eime prie C++ laboratorinio darbo. Na nevisai jis pirmas, tik va pirmasis pabaigtas ir pirmasis, kurio užduotis buvo rimtesnė.
Užduotis galima rasti adresu: www.atviraskodas.info
Štai užduoties tekstas:

Parašykite klasę racionaliems skaičiams, pasinaudokite funkcijomis nariais add, sub, mul, div, less atliekančiomis sekančias operacijas +, -,* ,/ ir < . Pvz. Sudėties operacija a + b šios klasės pagalba atliekama kaip a. add(b), o operacija a < b atliekama kaip a. less(b). Racionalus skaičiai - tai skaičiai, kuriuos galima išreikšti trupmenomis pavidalu su sveikais skaičiais skaitiklyje ir vardiklyje, pvz. ½, 2/3, 15/32, 65/4, 16/5. Mūsų klasėje racionalieji skaičiai turi būti išreikšti sveiku skaičių poru tipo int – skaitiklis ir vardiklis. Kiekvienam abstrakčiam duomenų tipui reikalingas konstruktorius, kuris sukuria objektus . Mūsų atveju konstruktorius turi kurti objektus sveikų skaičių poros pagrindu tipo int. Kadangi bet kuris sveikas skaičius yra racionalus skaičius ( jį galime išreikšti kaip tą patį skaičių padalintą iš 1, tai reikalingas dar ir konstruktorius su vienu sveiko skaičiaus parametru. Įtraukite į klasę funkcijas- narius input ir output . Pirma iš jų priima argumentą tipo istream ir įveda racionalų skaičių sekančia forma “skaitiklis/vardiklis” iš klaviatūros arba failo. Antra gauna argumentą tipo osream ir išveda racionalu skaičių forma “skaitiklis/vardiklis” į ekraną arba į failą. Funkcijos - nariai add, sub, mul ir div turi grąžinti racionalius skaičius . Funkcija less gražina reikšmes tipo bool. Be to , įtraukite funkciją neg , neturinčią parametrų ir grąžinančią objektą su minuso ženklu. Parašykite funkciją main ir ištestuokite jūsų klasės realizaciją. Apibrėžiant funkcijas bus naudingos sekančios formules: a/b+c/d=(a*d+b*c)/(b*d) a/b-c/d=(a*d-b*c)/(b*d) (a/b)/(c/d)=(a*d)/(c*b) -(a/b)=(-a/b) (a/b)<(c/d) reiškia (a*d)<(c*b) (a/b)= =(c/d) reiškia (a*d)= =(c*b) Skaitiklis gali būti kaip teigiamas taip ir neigiamas , o vardiklis turi būti teigiamas.

O štai pati programa, kurią dar reiks manau pataisyt ir patobulint ;) (Kai netingėsiu :P )
[code lang=“c++“]
#include

using namespace std;

class rac
{
private:
int skait;
int vard;

public:
rac (int z, int p);
rac (int z);
rac ();
rac sudeti (rac d);
rac atimti (rac d);
rac padalinti (rac d);
rac padauginti (rac d);
void neig();
bool maziau (rac a, rac b);
void ivesti();
void isvesti();
};
int main ()
{
rac a, b, c;

a.ivesti();
cout < < "A: "; a.isvesti(); b.ivesti(); cout << "B: "; b.isvesti(); c = a.sudeti(b); cout << "Suma: "; c.isvesti(); c = a.atimti (b); cout << "Skirtumas: "; c.isvesti(); c = a.padalinti (b); cout << "Dalmuo: "; c.isvesti(); c = a.padauginti (b); cout << "Sandauga: "; c.isvesti(); c.neig(); cout << "Kitas zenklas: "; c.isvesti(); return; } rac::rac () { skait = 0; vard = 1; } rac::rac (int z) { skait = z; vard = 1; } rac::rac (int z, int p) { skait = z; vard = p; } void rac::ivesti() { char sl; cin >> skait >> sl >> vard;

}

void rac::isvesti()
{

cout < < skait << "/" << vard << "\n"; } rac rac::sudeti(rac d) { rac tmp; tmp.skait = skait * d.vard + d.skait*vard; tmp.vard = vard * d.vard; // a/b+c/d=(a*d+b*c)/(b*d) return (tmp); } rac rac::atimti(rac d) { rac tmp; tmp.skait = skait * d.vard - d.skait*vard; tmp.vard = vard * d.vard; // a/b-c/d=(a*d-b*c)/(b*d) return (tmp); } rac rac::padalinti(rac d) { rac tmp; tmp.skait = skait * d.vard; tmp.vard = d.skait * vard; // (a/b)/(c/d)=(a*d)/(c*b) return (tmp); } rac rac::padauginti(rac d) { rac tmp; tmp.skait = skait * d.skait; tmp.vard = vard * d.vard; // (a*b)/(c*d) return (tmp); } void rac::neig() { skait = - skait; vard = vard; } [/code] Dar yra pora klaidelių čia, bet kolkas bus gerai :P

5 mintys apie „Dar viena diena universitete… Pirmasis C++ laboratorinis darbas“

  1. Am… apie foto patylėsiu ;D Apie tą kodą ir užduotį irgi. O pamačiau va tavo foto ir nu pasiilgau ;/ p.s. Gražiai nupiešė tą katiną ;> o kicius netikras. Aš vienintelė tikra ;D ;p

  2. :D :P ryt penktadienis, tikriausiai pasimatysim, priklausomai nuo tavo afygenos anglu mokytojos :P

    o kycius tu tikrasis ir vienintelis, o jis kicis tikrasis ir vienintelis :P

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *