solve(23.4*x^4=3.8,x) Solution (according to the CP) is 0 what is absolutly wrong...
Interestingly, I get the same error in my AFX2.0
Posted 15 October 2004 - 05:17 AM
solve(23.4*x^4=3.8,x) Solution (according to the CP) is 0 what is absolutly wrong...
Posted 15 October 2004 - 11:12 PM
Interestingly, I get the same error in my AFX2.0
Posted 05 November 2004 - 05:00 PM
Posted 18 November 2004 - 11:43 AM
S((nCr(M,i)*nCr(N-M,n-i))/nCr(N,n),i,0,x)with the parameters N,M,n,x
Posted 18 November 2004 - 11:53 AM
I((1/sqrt(2*pi))*e^(-0.5*z^2),z,-(infinity),x)it takes not so long, but too long
Posted 26 November 2004 - 09:06 PM
Posted 27 November 2004 - 09:03 PM
Posted 18 January 2005 - 08:13 PM
Posted 18 January 2005 - 10:37 PM
Posted 19 January 2005 - 12:04 PM
Posted 10 March 2005 - 05:40 PM
Posted 15 March 2005 - 02:25 PM
{TRUE,TRUE,FALSE,FALSE}=>list Print dim(list)=>Fatal error
Posted 15 March 2005 - 06:36 PM
Posted 21 March 2005 - 05:47 PM
Posted 03 August 2005 - 10:14 AM
Posted 03 August 2005 - 10:29 AM
Posted 06 August 2005 - 02:12 AM
Yes, there is someone reads these posts.Does anyone in Casio takes into account the bugs reported here?
Posted 06 August 2005 - 09:50 PM
Is there an official ClassPad OS developement team or something similar? I have not found in this forum a single "official" post responding to user-reported bugs...Yes, there is someone reads these posts.
Actually, I was speaking about indefinite integrals (antiderivatives), i.e., integrals without limits. For example, the indefinite integral I mentioned before is:I agree with you, integral calculation should be upgraded. I think the step that ClassPad does when calculating integral is : find F(x) -> Perform F( b )-F(a) -> simplify the result (if F(x) can be found). However, it is slow simplifying the result.
In the first version, it was not such slow.
Posted 08 August 2005 - 08:56 AM
Posted 09 August 2005 - 12:55 AM
There is a serious constraint concerning the solve function. For example, the list
{x+y=1,x-y=2}=>syst
is valid, but cannot be used in a solve statement:
solve(syst,{x,y}) is invalid, since it reports "Wrong Argument Type". It seems that the first argument of solve must be a list, not a variable, even if the variable is actually a list. Strictly speaking this is not a bug, but a serious constraint. I think it should be corrected in the next OS version.
Posted 09 August 2005 - 07:43 AM
I agree with you. The problem is clearly the parser. The parser checks have similar problems in other circumstances as well. Let's hope that someone in Casio will hear your remarks. Thanks!Part of the problem is the parser is checking for the correct number of arguments in each list before evaluation. For example, solve({eq1,eq2,eq3},{x}) would be a "syntax" error that the parse picks up. I think some of these checks should be moved to the evaluation step and not the parse step. This would fix your issue.
A work around for now is solve({syst ,syst },{x,y})
Posted 09 August 2005 - 09:29 AM
Switch x Case 1 Print "First" Case 2 Print "Second" Default Print "foo" SwitchEndIf x=1, this code should print "First", but it prints everything ("First", "Second", and "foo"). If x=2, it prints "Second", then "foo". In fact, everything after the current Case is executed, making it totally useless. The obvious workaround is to add a Break command at the end of each Case statements, but this makes the code longer, plus it is only a workaround for a structure which is clearly buggy. I personally prefer to forget Switch and use an If construct instead.
Posted 09 August 2005 - 12:29 PM
Posted 09 August 2005 - 02:48 PM
It doesn't work properly then. See similar structures in any language (e.g., Fortran 95, or even Visual Basic). And, of course, the manual does not say that it "works" this way. As it is, Switch is simply nonsense. It could be useful if it worked as expected...switch structure always do that, this is how it work.
Posted 09 August 2005 - 04:11 PM
It doesn't work properly then. See similar structures in any language (e.g., Fortran 95, or even Visual Basic). And, of course, the manual does not say that it "works" this way. As it is, Switch is simply nonsense. It could be useful if it worked as expected...
Posted 09 August 2005 - 04:53 PM
Well, you're both right. it works this way in some languages, and different in others. Some languages execute the statement after the case and then exit. This was more common with old languages like Fortran and has carried over to their present day syntax.It doesn't work properly then. See similar structures in any language (e.g., Fortran 95, or even Visual Basic). And, of course, the manual does not say that it "works" this way. As it is, Switch is simply nonsense. It could be useful if it worked as expected...
Posted 09 August 2005 - 05:45 PM
I have it on good advice that this particular problem will be fixed in a future version of the OS. Let me know if you find other examples where the parser is trying to be too smart and the evaluator should be the one doing the validating.I agree with you. The problem is clearly the parser. The parser checks have similar problems in other circumstances as well. Let's hope that someone in Casio will hear your remarks. Thanks!
It looks like the TI-89 has the same constraint. The main reason is because the result is so huge and complex that it isn't very unusable. Maple will solve a general 3rd order polynomial, but the result takes over a page on my computer screen. Still, I could see an argument for solving 3rd order symbolic polynomials in the ClassPad....
solve(4 x^3-2 x^2+3 x+2=0,x)
works as expected. However, the function
solve(a x^3+b x^2+c x+d=0,x)
is left unevaluated. This is not a very serious constraint, but it is a constraint...
Posted 09 August 2005 - 06:29 PM
Sorry, but I'm also a programmer more years than you (provided that your profile is correct). Switch works as you said only in the languages you are programming. However C, C++, and Java are not "mathematical" languages. C++ is ideal for making operating systems, or windows applications, or games, but it sucks when used to solve mathematical problems. Two examples: matrix manipulation in C++ is a headach (while in Fortran 95 is a piece of cake), complex arithmetic is supported only by external libraries (in Fortran, complex arithmetic is part of the language for more than 40 years) - the list of mathematical structures available in Fortran 95 but not in C++ is very lengthy. As far as mathematical applications are concerned, there is no language that can be compared to Fortran 95. This is probably the reason that large mathematical applications, such as Mathematica, Matlab, Scilab, Octave etc, have copied many Fortran 95 structures. What they have copied from C? Almost nothing (just the "printf" and "readf" commands).Sorry but as a programmer myself I can tell you this is how "Switch" works, this is not a bug... All languages work this way (C, C++, PHP, javascript, java etc...).
Need I to add anything? "organized" GOTOs in a modern language? No, thanks.In fact SWITCHes are just organized GOTOs, CASEs and DEFAULTs are labels...
Posted 09 August 2005 - 07:01 PM
Sorry, but I'm also a programmer. Switch works as you said only in the languages you are programming. However C, C++, and Java are not "mathematical" languages. C++ is ideal for making operating systems or windows applications or games, but it sucks when used to solve mathematical problems.
In fact SWITCHes are just organized GOTOs, CASEs and DEFAULTs are labels...
Need I to add anything? "organized GOTOs" in a modern language? No, thanks.
Posted 09 August 2005 - 07:20 PM
I will, of course. The problem is that, although I have found some parser-related problems during programming, I don't remember where exactly, because I don't keep notes. My fault.Let me know if you find other examples where the parser is trying to be too smart and the evaluator should be the one doing the validating.
The result is complex indeed, but not so huge, at least in Mathematica (as far as I know, Mathematica is better than Maple in symbolic computations). It is also usable, I needed it recently. In this case, Mathematica gives general solutions for both 3rd and 4th order symbolic polynomials. 5th order symbolic polynomials cannot be solved (except for special cases), so Mathematica does not give any solution as well.The main reason is because the result is so huge and complex that it isn't very unusable. Maple will solve a general 3rd order polynomial, but the result takes over a page on my computer screen. Still, I could see an argument for solving 3rd order symbolic polynomials in the ClassPad.
As far as 4th and 5th order symbolic solutions, the result is so complex it is all but unusable. Maple will not even solve for or display the result of a 4th order solution.
Posted 09 August 2005 - 07:29 PM
I think that even in Visual Basic it works as I said, without breaks...Well I wasn't speaking about "mathematical" languages and Classpad BASIC as its name says is inspired from BASIC...
Funny link, thanks . I speak french, I will browse its pages.Do you know GOTO++ ? http://gpp.niacland.net/index.html.en I'm sure you'll like it
Posted 09 August 2005 - 08:01 PM
Sorry, but I'm also a programmer more years than you (provided that your profile is correct).
Switch works as you said only in the languages you are programming. However C, C++, and Java are not "mathematical" languages. C++ is ideal for making operating systems, or windows applications, or games, but it sucks when used to solve mathematical problems.
...
I think that even in Visual Basic it works as I said, without breaks...
In fact SWITCHes are just organized GOTOs, CASEs and DEFAULTs are labels...
Need I to add anything? "organized GOTOs" in a modern language? No, thanks.
Posted 09 August 2005 - 08:09 PM
What, you don't have all the quirks of the ClassPad syntax committed to memory? if you do ever come accross something as trivial as this let me know.(when I say trivial I don't mean a trivial issue, I mean something that could be fixed with a trivial change). Who knows, things that only involve a simple code change might end up in the next OS.I will, of course. The problem is that, although I have found some parser-related problems during programming, I don't remember where exactly, because I don't keep notes. My fault.
Posted 09 August 2005 - 09:14 PM
I never said that Visual Basic is a mathematical language, because it is not, definitely. I was just aswering to the argument "ClassPad basic is inspired from Basic": even so, the Switch structure does not work as expected. Anyway, I have found my personal workaround: I will never use Switch in ClassPad, as it is now...Last I checked Visual Basic wasn't a mathematical language any more than C or C++.
btw, is there any good pc emulator for TI-89 or Voyage 200? I have one for HP49g+ that works perfectly...I also noticed that TI-89 doesn't have a switch/case programming structure at all.
Posted 09 August 2005 - 09:56 PM
But wait... I'm not finished...I have at least 3-4 more posts on the topic.I totally agree with SoftCalc. There is no reason for debating:
There is a program called VirtualTI that can emulate nearly the entire line of Texas Instruments graphing calculators.....is there any good pc emulator for TI-89 or Voyage 200? I have one for HP49g+ that works perfectly...
Posted 09 August 2005 - 10:36 PM
Cool! Many thanks!There is a program called VirtualTI that can emulate nearly the entire line of Texas Instruments graphing calculators...
http://www.ticalc.or...fo/84/8442.html
For both the TI and HP emulators you'll need a ROM image. Luckily, you can download the ROMs directly from TI's website.
Posted 09 August 2005 - 11:20 PM
Test, or play with. I have a feeling you won't be posting much tomorrow. Have a good night.I'll try it tomorrow (it's 2:00am here, and this test will take a lot of time...)
Posted 10 August 2005 - 01:24 AM
I actually agree with you. I never liked having to put the break at the end of the case. My feeling is 99% of the time you want the break, so why force someone to add it? The other 1% is probably a situation that involves bad programming style anyway and will confuse the hell out of anyone reading the code My feeling is it's a bug waiting to happen. I never liked it, and think any newer language should expunge the whole idea of requiring an explicit break.
switch (key) { case 0: break; case K_LEFT: case GK_LEFT: c--; break; case K_RIGHT: case GK_RIGHT: c++; break; case K_SHIFT: case K_F1:case GK_SHIFT:case GK_F1: gotoxy(holdc,w); printf("W"); gotoxy(c+1 +rwidth,w); printf(read_char(142), b); waitforkey(K_SHIFT, K_F1, 0); wait_fornokey();break; case K_ESC:case GK_ESC:case K_ESCAPE: allreadytest=0; clear_key_buf(); SAVE_NUM_HEX_STAT; return; case K_DOWN:case GK_DOWN: waittime-= (waittime>100) + 99; gotoxy(c+1 +rwidth,w); printf(read_char(143), waittime); break; case K_UP:case GK_UP: waittime+= 1 + 99; gotoxy(c+1 +rwidth,w); printf(read_char(143), waittime); break; case K_D:case GK_D: p=(p==0); gotoxy(c+1 +rwidth,w); echoDATstr(144); printf(p?read_char(145):read_char(146)); wait_fornokey();break; case K_S:case GK_S: gotoxy(c+1 +rwidth,w); printf(read_char(147)); waittime=(unsigned int)number(65535l); b=0; break; case K_L:case GK_L: gotoxy(c+1 +rwidth,w); echoDATstr(149); newrwidth =(unsigned int)number(99); width_changed = (int)(rwidth - newrwidth); rwidth = newrwidth; rwidth=rwidth * (rwidth < xmax - 1) + 2 * ( !(rwidth < xmax - 1) || rwidth<2); b=0; break; ?default:; }
Posted 10 August 2005 - 08:39 AM
Correct me if I'm wrong, but, in your code, every case block has a break, except for the 5th (ESC' /> pressed). Even in this case, however, there is a return. If I remember well, return stops function's execution immediately, returning to the calling program. What's so problematic? Anyway, I give 2 solutions: (1) if you want the function to stop executing if the 5th case is satisfied, or (2) if you want to continue with the other cases, even if the 5th case is satisfied.Here is complete Switch() {} from one of my C program where an implicit Break would have been very problematic:
........ your code ........
How would have I done it if Switch CASE worked like in Fortran?
case (K_ESC,GK_ESC,K_ESCAPE) allreadytest=0; call clear_key_buf(); call SAVE_NUM_HEX_STAT; return
case (K_L,case GK_L,K_ESC,GK_ESC,K_ESCAPE) call EscPressed() ........ rest your code ........As you can see, it can be done (and I think that is more structured this way). Trust me, Fortran 95 is not a poor language, as many C++ programmers think. It is "module-oriented", instead of object-oriented, but this is not a disadvantage: Compared to object-oriented programming, module-oriented programming has all the reuse without all the abuse.
Posted 10 August 2005 - 12:16 PM
case (K_ESC,GK_ESC,K_ESCAPE)
First, let me say this: you can't implement this code in Fortran 95 directly, because Fortran does not support key pressed detection, gotoxy, etc
Trust me, Fortran 95 is not a poor language, as many C++ programmers think.
0 members, 1 guests, 0 anonymous users