diff --git a/receptor/mertekegysegek.c b/receptor/mertekegysegek.c new file mode 100644 index 0000000000000000000000000000000000000000..b61039ae32beb365aa86b979aaa89c451e6efd1e --- /dev/null +++ b/receptor/mertekegysegek.c @@ -0,0 +1,85 @@ +#include "receptor.h" +/** +1 merőkanál 65 ml / 65 g +1 evőkanál 15 ml / 15 g +1 kiskanál/teáskanál 5 ml / 5g +*/ + +char mertekegysegek_szovegben[][15]={"mg","g","dkg","kg","ml","cl","dl","l","db","teáskanál","teaskanal","tk", + "kiskanál","kiskanal","kk","evőkanál","evokanal","ek","merőkanál","merokanal", + "mk","pár","par","fej","gerezd","szelet","sz","csomag","cs","kocka",""}; + + +MERTEKEGYSEGEK hash(char *str) +{ + int i=0; + while(strcmp(mertekegysegek_szovegben[i],str) && strcmp(mertekegysegek_szovegben[i],"")) i++; + if(i>8 && i<12) return teaskanal; + if(i>11 && i<15) return kiskanal; + if(i>14 && i<18) return evokanal; + if(i>17 && i<21) return merokanal; + if(i==20 || i==22) return par; + if(i==25 || i==26) return szelet; + if(i==27 || i==28) return csomag; + return i; +} + +Mertek Mertekegyseg_init(char *str,int menny) +{ + Mertek uj; + uj.egyseg=hash(str); + uj.mennyiseg=menny; + strcpy(uj.nev,str); + return uj; +} + +char* Mertekegyseg_szovegben(MERTEKEGYSEGEK i) +{ + switch(i) + { + case teaskanal: return mertekegysegek_szovegben[9]; + case kiskanal: return mertekegysegek_szovegben[12]; + case evokanal: return mertekegysegek_szovegben[15]; + case merokanal: return mertekegysegek_szovegben[18]; + case par: return mertekegysegek_szovegben[20]; + case szelet: return mertekegysegek_szovegben[25]; + case csomag: return mertekegysegek_szovegben[27]; + default: break; + } + return mertekegysegek_szovegben[i]; +} + +Mertek hash2(Mertek alany) +{//mg=0,g,dkg,kg,ml,cl,dl,l,db,teaskanal,kiskanal,evokanal,merokanal + Mertek uj; + uj.egyseg=alany.egyseg; + uj.mennyiseg=1; + switch(alany.egyseg) + { + case mg: uj.egyseg=mg; uj.mennyiseg=v_mg;break; + case g: uj.egyseg=mg; uj.mennyiseg=v_g;break; + case dkg: uj.egyseg=mg; uj.mennyiseg=v_dkg;break; + case kg: uj.egyseg=mg; uj.mennyiseg=v_kg;break; + case ml: uj.egyseg=ml; uj.mennyiseg=v_ml;break; + case cl: uj.egyseg=ml; uj.mennyiseg=v_cl;break; + case dl: uj.egyseg=ml; uj.mennyiseg=v_dl;break; + case l: uj.egyseg=ml; uj.mennyiseg=v_l;break; + case teaskanal: uj.egyseg=ml; uj.mennyiseg=v_teaskanal_ml;break; + case kiskanal: uj.egyseg=ml; uj.mennyiseg=v_kiskanal_ml;break; + case evokanal: uj.egyseg=ml; uj.mennyiseg=v_evokanal_ml;break; + case merokanal: uj.egyseg=ml; uj.mennyiseg=v_merokanal_ml;break; + default: break; + } + return uj; +} +//Mertekegyseg_atvalto(uj->mertekegyseg,hash2(uj->mertekegyseg)) +Mertek Mertekegyseg_atvalto(Mertek alany,Mertek referencia) +{ + alany.egyseg=referencia.egyseg; + alany.mennyiseg*=referencia.mennyiseg; + return alany; +} +Mertek Mertekegyseg_visszavalto(Mertek alany, Mertek referencia) +{ + +}