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:
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 )
-
#include <iostream>
-
-
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();
-
a.isvesti();
-
-
b.ivesti();
-
b.isvesti();
-
-
c = a.sudeti(b);
-
c.isvesti();
-
-
c = a.atimti (b);
-
c.isvesti();
-
-
c = a.padalinti (b);
-
c.isvesti();
-
-
c = a.padauginti (b);
-
c.isvesti();
-
-
c.neig();
-
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()
-
{
-
-
-
}
-
-
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;
-
}
Dar yra pora klaidelių čia, bet kolkas bus gerai :P
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
: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
Jį reikia supažindinti su kicia ;>>
neee.. nereikia. man jo gaila :D
;D Nu ir kas…gi nepamaišytų dar viena ;D