Mano akimis, abiejuose skaiciuotuvuose ivesta matematiskai/gramatiskai neteisinga israiska - nera toje eiluteje daugybos zenklo, taigi korektiska butu, jei skaiciuotuvas informuotu apie klaida, o ne bandytu apskaiciuot ivesta mistine israiska.
Na man ir užkliuvo tai kad nėra daugybos zenklo tai jei skliaustus pasižymime tarkim raide x tai gauname "6 padalinta iš 2x" kas netapatu "6 padalinta iš 2 ir padauginta iš x" taigi aš gavau atsakymą 1 (nesakau kad esu teisus, bet masčiau šitaip)
nors sąlyga užrašyta ir ne visai korektiškai, čia dviprasmybė yra tik mums, o programa atlieka veiksmus kaip jai nurodyta ir ji mato tik vienintelį sprendimo būdą (kad ir neteisingą).
Atsakymas 9, o kai kurie panašu matematikoj nėbum bum, jei dar rašo, kad kodėl nėradaugybos ženklo. Jis ir neturi būti, čia tik pirmokams, nebent rašo.
Atsakymas 9, o kai kurie panašu matematikoj nėbum bum, jei dar rašo, kad kodėl nėradaugybos ženklo. Jis ir neturi būti, čia tik pirmokams, nebent rašo.
Daugybos ženklas neprivalo būti tiems, kas ir taip suvokia kad jis ten yra. Na o skaičiuotuvas ne dirbtinis intelektas, skaičiuoja taip kaip suprogramuotas. Tad galėtų ir išraiškoje daugybos ženklą pridėti.
0
_________________ "Maybe it's not politicians who suck, maybe something else sucks around here. Like... The public" - George Carlin
Užsiregistravo: 2010-10-22, 22:25 Pranešimai: 1631 Miestas: Vilnius
Atsakymas 9, o kai kurie panašu matematikoj nėbum bum, jei dar rašo, kad kodėl nėradaugybos ženklo. Jis ir neturi būti, čia tik pirmokams, nebent rašo.
SKAICIUOTUVAS nera nei pirmokas, nei treciokas, jis yra kompas ir jis vykdo sudaryta programa. O kai pirmokas uzduoti jam pateikia netinkamai aprasyta, tai ir rezultatu reik tiketis mistiniu. Jei tu vadovausiesi mokytojos Marytes tau pateiktais asociatyviais paaiskinimais, tai joks skaiciuotuvas neatlaikys tokio isbandymo. Is kur jam zinot, ka Maryte turejo galvoj aiskindama Petriukui viena ar kita dalyka. O kaip ta pati dalyka aiskino mokytojas Vincas... o Juozas...
Atsakymas 9, o kai kurie panašu matematikoj nėbum bum, jei dar rašo, kad kodėl nėradaugybos ženklo. Jis ir neturi būti, čia tik pirmokams, nebent rašo.
SKAICIUOTUVAS nera nei pirmokas, nei treciokas, jis yra kompas ir jis vykdo sudaryta programa. O kai pirmokas uzduoti jam pateikia netinkamai aprasyta, tai ir rezultatu reik tiketis mistiniu. Jei tu vadovausiesi mokytojos Marytes tau pateiktais asociatyviais paaiskinimais, tai joks skaiciuotuvas neatlaikys tokio isbandymo. Is kur jam zinot, ka Maryte turejo galvoj aiskindama Petriukui viena ar kita dalyka. O kaip ta pati dalyka aiskino mokytojas Vincas... o Juozas...
Ką tu čia rašai, aš visai ne apie tai rašiau. Aš rašiau, komentuotojai nesąmones rašo, kad atseit prieš sklaustukus turi būti daugybos ženklas, paimk bet kokį vadvėlį bent 6 klasės, ten niekur nerasi prieš skliaistukus daugybos ženklo, tai savaime surantama, kad daugyba. Čia nebent atrokams ar ketvirtokamds taškiuką rašo, kuris reiškia daugybos ženklą, o nuo penktos klasės, maždaug, jau prieš skliaustelius niekada nerašo daugybos ženklo, kiek prisimenu. Nebent dabar jau kitaip, nei tais laikais, kai aš mokiausi.
Dabar man aišku iš kur dažnai pasipila visokie nesąmoningi komentarai... Ogi technologijos.lt skaitytojai nėra tokie išprusę, kaip dedasi. Kaip sugalvoti tokia nesąmonę, kad prieš skliaustus turi būti daugybos ženklas? Arba kaip sugalvoti, kad atlikus veiksmą vėl uždėti skliaustus? Prajuokino liaudis.
Na man ir užkliuvo tai kad nėra daugybos zenklo tai jei skliaustus pasižymime tarkim raide x tai gauname "6 padalinta iš 2x" kas netapatu "6 padalinta iš 2 ir padauginta iš x" taigi aš gavau atsakymą 1 (nesakau kad esu teisus, bet masčiau šitaip)
Vadinasi nežinai matematikos. Nes 2x ir reiškia 2 * x. Kad galima praleisti daugybos ženklą prieš skliaustelį ir prieš kintamąjį jau pradinėse klasėse žinojau. Ir tai yra pastoviai daroma. O jei tiksliau, tai niekada neteko matyti tokio užrašymo 2 * x. Nes visada sutrumpina iki 2x. Nes tai tapatu. Tas pats ir su skliaustais.
Daugybos ženklas neprivalo būti tiems, kas ir taip suvokia kad jis ten yra. Na o skaičiuotuvas ne dirbtinis intelektas, skaičiuoja taip kaip suprogramuotas. Tad galėtų ir išraiškoje daugybos ženklą pridėti.
Raktinis žodis "skaičiuoja taip kaip suprogramuotas". Jei kreivarankis programuotojas suprogramuos, kad 2 * 2 = 6. Tai tokio skaičiuotuvo naudotojas bus kaltas dėl neteisingo atsakymo? Nes turėjo žinoti, kad skaičiuotuvą programavo kreivarankis ir pridarė daug klaidų? Nes čia akivaizdų, kad skaičiuotuvas brokuotas ir neteisingai skaičiuoja. Dėl ko galima gražinti gamintojui ir atgauti pinigus.
Na man ir užkliuvo tai kad nėra daugybos zenklo tai jei skliaustus pasižymime tarkim raide x tai gauname "6 padalinta iš 2x" kas netapatu "6 padalinta iš 2 ir padauginta iš x" taigi aš gavau atsakymą 1 (nesakau kad esu teisus, bet masčiau šitaip)
Vadinasi nežinai matematikos. Nes 2x ir reiškia 2 * x. Kad galima praleisti daugybos ženklą prieš skliaustelį ir prieš kintamąjį jau pradinėse klasėse žinojau. Ir tai yra pastoviai daroma. O jei tiksliau, tai niekada neteko matyti tokio užrašymo 2 * x. Nes visada sutrumpina iki 2x. Nes tai tapatu. Tas pats ir su skliaustais.
Taip, 2x reiškia 2*x, tačiau 2x yra vienas kintamasis. Labai paprastas pvz: Turim paprastą lygčių sistemą:
6/y=1 y=2x
y=6 6=2x
x=3
Tačiau jeigu 2x galėtume skaidyti kaip teigi, gautume tokį rezulatą:
6/y=1 y=2x
6/2x=1 3x=1 (6 padalinom iš 2 nes tavo nuomone taip galima daryt) x=1/3 atsakymą gaunam neteisingą! Įstačius x reikšmę į lygtį gautume: 6/y=1 y=2*1/3
6/y=1 y=2/3 6/y=9 (o turėtų gautis 1)
Taigi, skaičiavimo mašinėlė nesant * ženklo, traktuoja kaip vieną kintamajį, taip kaip tai darome ir mes spręsdami lygtis.
Raktinis žodis "skaičiuoja taip kaip suprogramuotas". Jei kreivarankis programuotojas suprogramuos, kad 2 * 2 = 6. Tai tokio skaičiuotuvo naudotojas bus kaltas dėl neteisingo atsakymo? Nes turėjo žinoti, kad skaičiuotuvą programavo kreivarankis ir pridarė daug klaidų? Nes čia akivaizdų, kad skaičiuotuvas brokuotas ir neteisingai skaičiuoja. Dėl ko galima gražinti gamintojui ir atgauti pinigus.
Kaip sako "blogam sokejui ir .... maiso". Man nemaiso, as i skaiciuotuvus vedu pilnas israiskas be jokiu nutylimu, nedarasomu zenklu, idant buciau tikras, kad gausiu teisinga atsakyma, o ne uzsirausiu ant kokios nors subtilios anomalijos. Ir mano atveju manau jie rodys ta pati teisinga rezultata. Kai skaiciuotuvai tures dirbtini intelekta, bus galima gincytis su jais ir mokyti juos kiekviena individualiai kaip skaiciuoti.
P.S. ir nebutina apminusuot kiekviena komentara, jei nesutampa nuomone.
Abu skaičiuotuvai skaičiuoja teisingai. Klaidą daro klausimo autorius, nes užuot atsivertęs skaičiuotuvo vartotojo instrukciją ir išmokęs skaičiuotuvo komandos gramatikos taisykles (arba naudojęs tik paprastą jų poaibį), implikuoja, kad kažkuris skaičiuotuvas interpretuoja komandą ne taip, kaip jis tikisi.
Nė vienas skaičiuotuvas nenaudoja tokios aritmetinės notacijos, kuri dėstoma pagal LR pradinių klasių matematikos programą. Pavyzdžiui:
* lietuviškoje notacijoje yra dešimtainis kablelis, o amerikietiškoje kablelis atskiria dvi reikšmes arba nuoseklias teoremas; kalkuliatorius naudoja dešimtainį tašką; * lietuviškoje aritmetikos notacijoje nenaudojami ženklai ÷ ir ×, vietoje jų naudojamas pasvirasis brūkšnys arba centruotas taškas; amerikietiškoje, priklausomai nuo konteksto, jie gali būti laikomi arba sinonimais arba operacijomis „fraction“, „over“, „cartesian product“.
Ką reiškia tie ženklai nurodytuose pavyzdžiuose? Pvz.: a÷b×c reiškia: * frac(a,b) · c, * {a} over {b×c}, * a/b*c?
Toliau, ką reiškia praleistas operatorius? Pagal kokias taisykles interpretatorius nusprendžia, kada abc yra viena reikšmė, kada a¤b¤c? Ar visuomet praleistas operatorius interpretuojamas kaip paprasta sandauga? Ar tai yra kažkoks „implied op“?
Toliau, jei interpretatorius leidžia įvesti tarpus, kelti į kitą eilutę, kelis tarpus paeiliui – ką jie reiškia?
Pavyzdžiui, kai kurie kalkuliatoriai supranta (atkreipkit dėmesį į tarpus): x-2y x+2y + 1/2y^2/cos 2pi → (x-2y) * (x+2y) + 1/2y^2/cos(2pi) → (x-(2*y)) * (x+(2*y)) + (1/2)*(y^(2/cos(2*pi))) → x² - 4y² + ½y² → x² - 3.50y² → dabar baikim būti žmonės ir pabūkim dvejetainiais CPU [*]: x² - 7·2-3y² = apskaičiuojame galutinę reikšmę[**]: expm1(ln(x)*2.0) - ((expm1(ln(y)*2.0)+1.0) >> 3) * 7) + 1.0, arba, jei žinome, kad x ir y nėra labai dideli ar labai maži:: x*x - (y*y>>3)*7. Kada nors manėt, kad kalkuliatoriai skaičiuoja taip, kaip jus pirmose klasėse mokė? Pagalvokit dar kartą.
Rimtai, ką turėtų apskaičiuoti komanda „cos2pi/2“? O „cos²pi/2“? Na, paskutinį aš ramiai galėčiau interpretuoti kaip (recurse(cos,2))(pi/2.0) → cos(cos(3.14159/2.0)) => cos(0) => 1 ir niekas negalės manęs barti. Nori kosinuso kvadratu – rašyk cos(...)², nes cos² aš suprantu kaip dusyk pritaikytą funkciją, o ne funkcijos rezultatą pakeltą kvadratu.
Galų gale, reikia žiūrėti kalkuliatoriaus nustatymus, įjungtą režimą. Viename režime cos 1 gali reikšti cos(1rad), kitame – cos(1deg). Pirmasis režimas pritaikytas fizikui ar matematikos olimpiadininkui, antrasis – inžinieriui ar vidurinės mokyklos baigiamajam egzaminui.
Ir paskutinė pamoka. Mokykloje niekas nepabrėžė, bet technikoje net ir tarpo simbolis yra reikšmingas ir gali reikšti bile ką, priklausomai nuo specifikacijos ir konteksto. Kartais tarpų skaičius gali visą formulę apversti aukštyn kojom.
BTW, savo pirmųjų kursų studentams, kurie laiko save programavimo asais, kartais duodu atspėti išraiškos „x=1;x+=(x+=10)+(x+=100)“ reikšmę. Dauguma „klasikinių“ C ir C++ kompiliatorių ją apskaičiuoja neteisingai (ne pagal specifikaciją!).
[*] – Ne kartą ir šiame forume esu matęs, kai uždavinys išsisprendžia tarpinį rezultatą 3.98 „suapvalinant“ iki 4.00000. Ne visiški kvailiai, kai kurie net į Dievą netiki – o kalkuliatorium tiki aklai! Tik neklauskit, iš kur žino, jog skaičiukai kalkuliatoriaus ekrane artimi teisybei: juk yra kalkuliatorius, mąstyti pačiam nebūtina.
[**] – Ką reiškia 7(x>>3), turbūt technologijų forume aiškinti nereikia? Taip užsirašo 3.5000*x dvejetaine slankiojo taško forma. O expm1(x) yra operacija eˣ-1.
Vartotojai naršantys šį forumą: Registruotų vartotojų nėra ir 0 svečių
Jūs negalite kurti naujų temų šiame forume Jūs negalite atsakinėti į temas šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite trinti savo pranešimų šiame forume