[GAME][FREE] Math Solver - Android Apps and Games

The application is based on mathematical arithmetic and working with numbers and colors. Constant exercise will help you improve and maintain your mental faculties. Classes with the program will help you develop and strengthen logical thinking, numerical fluency, memory and mindfulness. Enhances mathematical skills on addition, subtraction, multiplication, division.
The program features three types of exercises.
* The first is the usual mathematical arithmetic. In this type of exercise, you need to calculate the mathematical expression in the mind. The complexity of the expression can be adjusted. An example of the expression: (23 * 12) + (434 / 14) to evaluate the expression we get the answer: 307. The decision is given unlimited time.
* The second exercise on the development of memory. In this type of exercise, you need to calculate mathematical expressions sequentially displayed on the screen. Each successive term is calculated based on the previous one. Complexity of expression and time display on the screen can be adjusted. Example order: "10 + 2", "X / 2", "X - 3". First calculate the first expression: 10 + 2 = 12. Then, in the second expression is substituted in place of X 12 and we get the expression: 12 / 2 = 6. Remember the answer: 6. The third expression is substituted in place of X 6 and obtain the expression: 6 - 3 = 3. The final answer: 3.
* The third exercise on the development of mindfulness. In this type of exercise, you need to calculate mathematical expressions sequentially displayed on the screen. The expression is shown for a short time - you need to have time to recognize and remember. Among the featured numbers you need to see a mathematical operator (use the "+" and "-"), the operator determines the color of significant digits, the remaining digits just distracting noise. Then the numbers are hidden - and you need to evaluate the expression. Each successive term is calculated based on the previous one. The complexity of the expression, the time display on the screen and the time allotted for the solution can be adjusted. Example of a "3 + 5 1 2", " - 5 1 1 2", "2 7 5 4 + ". At first look the color of the addition operator ("+" - say the color red), then in the expression, select all of the red numbers (for example it will be 3 and 1) - remember the result. In the second expression say the subtraction yellow ("-"), select all the yellow numbers (for example it will be 1 and 2) - evaluate the expression: 31 - 12 = 19 - remember the resulting number (19). The following terms are also looking for the addition ("+") and by its color, select all the figures of the same color (for example, it will be 2 and 5), and then evaluate the expression: 19 + 25 = 44. The final answer: 44.
This information can also be obtained in the help of program.
market://details?id=com.mathsolver.free.ui

Just a development tip, I only know this from making my own math app, you should limit the user input to the number pad only, can be done in the gui in eclipse. It's a lot easier to input a number. Cool app
Sent from my SGH-T989 using Tapatalk 2

cwillison94 said:
Just a development tip, I only know this from making my own math app, you should limit the user input to the number pad only, can be done in the gui in eclipse. It's a lot easier to input a number. Cool app
Click to expand...
Click to collapse
Thanks for your response. Yes I refer android:inputType="numberSigned" in EditText control. On emulator and my phone it work fine.

Last update
Last version 1.03 with bug fix
play.google.com/store/apps/details?id=com.mathsolver.free.ui

Related

Recommended Calculator

Having come from Windows Mobile where I used OneCalc and OmniSolve (by Landware), I was hoping you guys can help me find a general all-around calculator that offers these features:
Normal business functions such as:
NPV
FV
IRR
Amortization schedule, etc.
Sales/Marketing/Retail functions such as:
% Markup
% Margin
% Difference
% Change
Conversions:
Area
Distance
Weight
Volume
Currency (based on downloaded exchange rates)
If it also had a solver, that'd be great. The old HP (LX series DOS) Palmtops had a 'solver' where you could enter values and the machine would solve or backsolve. For example if you put in Rate * Time = Distance, it would solve for any one if you had the other two.
Thanks!
Idk if its going to do what you need but check out "realcalc"
Sent from my ComBadge..

[Q] Android graphing calculator app with science and engineering functions

I am looking for a graphing/scientific calculator program for android with very specific capabilities, primarily related to science and engineering tasks:
1. Standard built-in scientific functions, like exponents, exponential, trigonometric functions, and logarithms.
2. The ability to specify custom functions, which are saved and can be used anywhere in the program
3. The ability to handle complex numbers
4. The ability to do limits, derivatives, definite integrals, and indefinite integrals
5. Equation solver
6. Unit conversion, with the ability to create
7. The ability to create and save custom units
8. Log-log or semi-log axis in plots
9. The ability to use expressions in axes and axes ticks (like being able to set an axis to be from -2pi to 2pi with tick marks in pi/4 steps)
To put it simply, I am looking for something that can do what I consider to be the most critical tasks of my TI-89. The closest I have been able to find is handycalc, but functions are restricted to particular worksheets, and it doesn't have 3, 4, 7, 8, or 9 at all.
Note that I would ideally want an application with all of these capabilities, but could live with 2 or 3 applications that each do part. At the very least I would need an application that can do 1-5, an application that can do 6 and 7, and an application that can do 8 and 9. Obviously a free application or applications would be best, but a commercial one or ones would suffice.
Some extra features that would be nice, but are not deal-killers:
1. 3D plotting
2. The ability to use units in formulas
3. Polar and/or complex plane plotting
4. Differential equation plotting
5. Simultaneous equation solving
6. Binary, octal, and hex mathematics
Thank you very much for your help.
This link may show some science calculator, you can use different search to see if any of them fit you:
https://market.android.com/search?q=science+calculator&so=1&c=apps
After checking through a few different calculators I found this one that could work well for you.
http://www.appbrain.com/app/algeo-graphing-calculator/com.algeo.algeo
Also this page can probably be helpful as well.
http://www.techpoweredmath.com/top-6-calculator-apps-for-android/
From the looks of it the 4th one on the list would probably be the best bet for you.
Hope this helps!
Thanks!
I tried algeo, it lacks most of the features I am looking for. 1 on the list you gave me is handycalc, which as I said had the most features but still lacked some of the critical ones. 4 on the list also lacks most of the features I need, and I can't seem to get a keyboard to use it, either.
However, I think I found one that fits most of my needs called MathScript Calculator (sorry, I apparently cannot post links yet).
It costs money, but it should get the job done. It also supports python scripting, which is good for me in general since that is my preferred language. However, there is apparently a major update coming up so I will wait and see what it is like then.
Thanks for your help

Chapters Of C Programing

Plz do not comment on this thread.
This thread is just for posting my chapters of C programing in http://forum.xda-developers.com/showthread.php?p=32778306 this thread.
if you wanna comment or ask doubt comment here : http://forum.xda-developers.com/showthread.php?p=32756564
Chapter 1​
Lets Talk about programs:​
So all of us have heard about the words like programming, programs , code , decode, etc etc ..
but we don't know the meaning of it.. so here it goes..
♣What is a program and programming?
-> For computer to work , we need to give some instructions. This instruction is know as CODE. Where in Each line of code instructs the computer to do something. Set of lines of these codes is commonly known as an program. (this was in common words)
As the definition of program says:
->A computer is designed to accept input, process it and generate output. A set of instructions to perform a task is known as a program. Simmilarly, A set of programs together form an Application.
-> Coding The codes above is known as Programming.
Ohk . Cool . Now lets start learning About flowcharts​
♣What is FlowChart? Why use it?
->Flow chart is a graphical representation of a program. It is useful when you are working in a team. Lets say you and me are building a project in C language n you want to show me what u are thinking about the program. you would write in C n compile the program and would show me . But i may not understand how the program worked , in other words i may not understand THE FLOW OF THE PROGRAM you made. So for that reason you make a flow chart of your program on a piece of paper, and then i would understand what you made.
AND flowchart is just like a representation of your program, it is nothing to do with programing.. you cannot put the flowchart in some file in pc n compile n run it . its not possible ..
-> Flow charts are help full in developing complex programs . You will realize it as we go further with the tutorial . I bet you will make a flow chart when you are thinking of a program but you wouldnt know how to put that into set of codes. That is when you would need flow charts.
Chapter 2
FlowCharts​
Theory​
As Flow Chart is a graphical representation of programs, we need symbols which will help us to graphically represent it. so here they are:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Input:
The Input symbol is used when the user has to input something , in other words it denotes that user will input at this point of program.
eg: the program is about multiplying the two numbers, so the program will ask the user to input two numbers to multiply in this box, 2 and 4
Processing:
The Processing symbol is used to show that there will be some processing in the program now.
eg: after the two numbers are accepted, the process of multiplication is shown in this box. 2 * 4
Output:
The result after processing is done, ie after the two numbers are multiplied , the output is given to the user by this symbol.
eg: 2 * 4 = 8
Decision:
Some times , its essential for the program to make decisions, this can be achieved with the use of this symbol
eg: If you want the user to input two numbers two multiply, but both the numbers should be less then 5, here u can check if the user has given input as per that , if yes then the program will execute(do the work) the way u code for yes, if no then you have to code a different set of code or re run the program.
Subroutine:
This is usefull when you have a big program , you can make different flow charts and then add them together.
Flow Lines:
These are the Lines That will decide where your program will go .
Terminator::
It is like a start for each flowchart, and also the end of flowchart. Also known as Entry point of flow chart and Exit point of flochart.
On page connector:
When your program has the decision boxes, and different conditions satisfy in a different way and end up in a place is where you would use On page connector.
Off page connector:
When your program exceeds the page, and you continue it on some other page then we use Off page connector.
Annotation:
It is a type of comments, which you write for other developers if the part/logic of the part of your program is hard.
================================================== ================================================== ================================================== ==================================================
Practical​Lets take an example, that a friend of your asks u to make a program on how to make a tea.
n u say ya ok bro, i will make a flow chart n will send it to you.
so here is the flow chart that you would make
So heres the first flow chart .
lets discuss it in detail (remember the red numbers are just so that you know what i am talking about, u need not write it while drawing flowcharts).
1. It is the terminator. It denotes that your program has started
2. It is the annotation, it is just for the reference of the reader. it is as good as an comment.
3. It is an input box, asks the user to input water, sugar , tea leaves and milk
4. It is an processing box, in this box processes takes place, in this case it is boiling the milk.
5. It is an output box, it tells that the tea is prepared.
6. It is an terminator. It denotes that your program has ended.
================================================== ==================================================*
Lets Take another example:
Suppose i ask you to make a flow chart of how do users register them self at Xda-developers.com.
How would u make it?
Something like this:
So , as you can see,
The terminal is starting the program, then the user inputs his details that are neccesary for signing up(in input box). then those details are stored in the xda developers database(in processing box) , and then the output box shows that you are registered sucessfully..
================================================== ==================================================*
So after seeing two flowcharts i guess you got a better understanding of what flowchart is all about..
So the flowcharts start with a start terminal. and ends with stop terminal. And then there are input boxes for taking inputs and processing boxes for processing the input and there is an output box for output.
So far we learned how to use:
1) Terminator
2) Input Box
3) Processing Box
4) Output Box..
Lets Give you guys an Exercise... At the end of this Post i will put it up.
Now before we move on to use the Decision Box i would like to Show you one more simple flow chart (and if you dont understand it , then i guess i am going too fast in my teaching.. lemme know if you dont get it , pm me or mail me )[/I]
================================================== ==================================================
Decision Box​
So while in a program sometimes you have to make decisions.
Decisions like if the user input is right or wrong, username is less than 16 character, password is atleast 6 character etc etc.
This is when you use Decision Box in flow chart.
It is used as follows
When the user is signing up in xda-forum . this is the decision box used after the password is accepted.
It checks , "Is the password greater than 6 characters?, if yes then run so and so codes, if no then run so and so codes" The flow line of Yes have different set of codes. The flow line of No have different set of codes.
For eg:
as you can see , in the decision box, if the Username is greater than 16 characters it shows an error and then runs the program again from where the flow line indicates. If the user name is not greadter than 16 characters then it runs the program normally
Exercise::
Draw FlowCharts For the following programs:
1) To Add two numbers.
2) To multiply the numbers
3) Add two numbers which are single digit only and show appropriate error if user inputs a two digit number
(Hint: Use the decision box to check "is number1 < 10" as if the number will be less than 10 then it will be a single digit number , (we exclude the posibility of negative numbers for sake of simplicity , though will teach you to tackle it in the next chapter))​4) Add the two numbers and subtract the addition with their product (eg if the user inputs 2 and 3 , then in processing box write (2*3)-(2+3) )
This Fourth one is important , plz do not skip it as we will discuss on it in next chapter.
Do it on a paper or in book.
mail me at [email protected] your scaned copy or a photo of your flowchart if you want to .. i will see each of them
Or Check From The answers Below.
Answers:
1) Answer
2) Answer
3) Answer
4) Answer
Chapter 3
FlowCharts(...Continued)​I hope you have done the exercises and have checked the answers and rectified yourself if you were wrong.
Still i would like to discuss the 4th Problem of the Exercise as i Had some purpose for giving that sum.
So when you were doing the flow chart , you would have encountered a problem.
Lets not go to flow chart directly, lets talk on it as if it were a math problem .
Add the two numbers and subtract the addition with their product: (considering the two numbers are 2 and 3)
Code:
Let the two numbers be a and b.
a=2
b=3
a + b = 5
a x b = 6
(a x b) - (a + b) = 1
NOTE:
You know there are variables in maths?? like x = 2 or x= 7 or y = 10 etc etc..
Ever thought why they are called variables??
It is because their values keep on changing in other words "The value of x VARIATE"
Just Keep it in mind, i would ask you to recollect it after done with this 4th Flowchart Problem
​
Doesnt it seem too long and boring to write(m talking about (a x b) - (a + b) )?
That's where the flowcharts and all the computer programming languages have a plus point . You will realize it in a minute..
See the flow chart:
See the names underlined with red ink. Sum , Product and Answer.
(referring the flowchart with the above mathematical representation)
Here, when a+b is calculated , the answer is stored in "Sum"
ie:
Code:
Sum= a + b
Similarly, when a x b is calculated , the answer is stored in "Product"
ie:
Code:
Product = a x b
When Product(ie a x b) is subtracted to Sum(ie a+b) it is stored in "Answer"
ie:
Code:
Answer = Product - Sum
Recollect the note above, about the variables and read bellow.
What is a Variable?
-> Variable is a vessel that holds a Value . Where as this value is known as constant.
Eg: x , y , z , a , b , c etc etc
What is Constant?
-> Constant is that value that is stored in a Variable.
Eg, 1 , 2 , 3 , 4 , 5 , 6 etc etc
In all the flow chart above,
These were the variables you used:
Number 1
Number 2
Sum
Product
Answer
You can use the Variable Number 1 again and the value of Number 1 in a different flow chart would be different . Hence it is a variable.
But in any flow chart the value of "1" will remain "1" only.. it wont ever be like 1 = 2.
Hope you are getting my point.
This variable is not just for Flow Chart. Learn Any programing , the knowledge of what is variable and constants is necessary , its like the most basic thing .
So to Sum up and give a summary of variables and constants,
A variable is something like a vessel , a vessel that holds the constants. Constants are the values that are stored in vessel which is nothing but a Variable.
We will talk on this later again when we start the c programming.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
As in maths , Constants are limited to numbers. For eg , X = 10 , Y = 15 etc etc
But this is not the case with flowchart , In flowchart you can even write a word or a sentence in a variable.
Eg,
Day = " Wednesday"
Month = " October"
Name = " Mihir"
Birthdate = "1st January 0000"
Mobile no = " 123456789"
Pi = "3.148"
Etc etc...
So as you can widely distinguish , variables in FlowCharts are of 2 Types,
1) Character Variable, Eg, Name = "XDA"
2) Numeric Variable(also known as Integer variables , as Integer contains all the numbers ) , Eg, Num = " 12345"
So when you make flow chart you have to Define all the variables you use if they are number? or they are Character?
See the flow chart below to understand how.
As you can see everything is new in this flowchart.
This is the way we represent a program in a better way in flowchart.
Let me explain to you all of its components.
All of which is written in green above, is like a system command sort of a thing.
And all the red color text are variables.
And all of the blue color things are Operators ( mean + , - , x , = etc, we will talk all about operators in next chapter)
System:
START starts the program
NUMERIC defines that the following variables are Integers/numbers and is written always in processing box. (this process is called DECLARATION we will talk about it in a while).
ACCEPT Accepts constants from the user and stores it in the Variable, always written in input box.
DISPLAY Displays the constants stored in the variable.
STOP Stop/terminates the flowchart/program
Meaning of Declaration!
=> When you want to use a variable, lets suppose u want a variable Num1 , Then you first have to tell the computer that:
"Hey bro, i am using a variable named Num1 in my program which is a numeric variable"
which in flowchart is written as :
Code:
[COLOR="SeaGreen"][B]NUMERIC[/B][/COLOR] [B][COLOR="Red"]nNum1[/COLOR][/B]
As you can see that we are talking to the computer and telling that we are using the variable of this name , it is AS good AS a process?
Hence, it is written in a Processing Box.
As you can see i am prefixing all the numeric variables with n , and you might be wondering , what is this crazy guy talking ?
Basically,
All the variables are prefixed to show what type of variable it is when we use them .
meaning, when we use a numeric variable , we prefix it with n, when we use a character variable we prefix it with c
You can name the variable what ever you like , a, b ,c sum , interest , principle,Name, blah blah etc etc.. anything you like cuz when you will write it in flow chart it will be like nSum, nInterest, nPrinciple , cName. So u will know that Sum ,interest & Principle are numeric variables and Name is a Character variable. Hope now you understand whats the use of prefixing n and c in variable name.
Lets talk about the above flow chart step wise now(referring the numbers in the image above):
After the program starts,
1. There is a Process box. As you know it declares (recollect, declaration means to tell computer that you are using this variable) the variable, hence it is in the process box. In this box the Variables are declared as Numeric and hence are prefixed with n .
2. There is a Input box. What do we do in input box? we take input , and hence there is a proper word defined for it . Accept , and we then write all the variables that we want the values of , from the user.
3. There is a processing box, It adds the two numbers and then stores the value in the Variable Sum which is numeric ( nSum) (it will be clear when i teach you operators in next chapter)
4. There is a Output box, its purpose is to DISPLAY , hence we write Display and then we write all the variables in the Output box that we want to display.
and the program terminates..
======================================================================
Dont give up, let the things sink in. It will take time , you will learn! Trust your self
======================================================================
I would like to advice you to read this again. As you will get a better understanding of it now. And i have added some things in it so dont skip it.
======================================================================
Input:
The Input symbol is used when the user has to input something , in other words it denotes that user will input at this point of program.
eg: the program is about multiplying the two numbers, so the program will ask the user to input two numbers to multiply in this box, 2 and 4
When you want to accept the values from user , you write it in an Input Box. lets suppose you want to Add two numbers , for that you need Three Variables, One variable for storing The first number, second variable for storing the second number , third variable for storing the value of the addition of two variables. And lets name these variables now, nNum1,nNum2 and nSum. So how will you write it in input box?
This way
"Accept nNum1 and nNum2"
Processing:
The Processing symbol is used to show that there will be some processing in the program now.
eg: after the two numbers are accepted, the process of multiplication is shown in this box. 2 * 4
Two things that can be in processes :
The first process box is above, it is used to declare variable with its type,
lets consider the same above example , then u wud write it
"Numeric nNum1, nNum2 and nNum3"
And then you need to add those numbers? correct so you would add it in another processing box like this:
"nSum = nNum1 + nNum2 "
Output:
The result after processing is done, ie after the two numbers are multiplied , the output is given to the user by this symbol.
eg: 2 * 4 = 8
The main purpose of Output box is to show the output.
See the pic below
As we want to display , so we write "Display" in this box. Suppose you want to display Sum calculated above, you would do it this way:
"Display nSum".
We can also write what ever we want in double inverted comas.
Eg
Code:
Display "Hie this is Mihir"
You can even append a variable after it, the constant stored in that variable will be displayed,
Lets suppose there is a variable nNum , in which the Mobile number of a user is saved and the number is 123456789, then you can display it this way:
Code:
Display "Your Mobile number is" nNum
This will display , Your Mobile number is 123456789
Decision:
Some times , its essential for the program to make decisions, this can be achieved with the use of this symbol
eg: If you want the user to input two numbers two multiply, but both the numbers should be less then 5, here u can check if the user has given input as per that , if yes then the program will execute(do the work) the way u code for yes, if no then you have to code a different set of code or re run the program.
Here checking statement means to check something. Eg nSum < 10 or nSum > 10 , nNum <100 etc etc (as of now it consists only of Single Check statement , like you can just see if its a variable is less that 100 and similar things . You cant compare it with two things like a variable is greater than 50 but is less than 100. As of now i cant. We first have to understand operators, after done with operators , we will come back here and talk about it.)
If you were to check if the nSum is less than 100 you would write:
"Is nSum<100 ?"
======================================================================================
Plz read the output box again i have added something. This is for the users who have read the post yest. And i have edited it just now.
======================================================================================
A flow chart for registration.
i guess you can now understand this flowchart above , and i need not explain it to you.
======================================================================================
Chapter 4​
Operators​
===================================================================
Hope the above image , clears your mind about what is variable and constants.. If you still have any confusion about variables and constants then mail me at helpline mail : [email protected] or PM me..
I devote this chapter to Operators..
Operators: The symbols used to make the computer do an operation is know as an operator .
There are various various types of operators:
1)Arithmetical Operators
2)Conditional Operators
3)Relational Operators
1)Arithmetical Operators :
-> Operators used for doing mathematical operations is know as arithmetical operators. This includes the following :
=
+
-
*
/
%
you may be familiar with all the mathematical expressions above, rather than this, one %.
This is not a percentage , its a modulor division operator. Its name is Modulus.
The division operator yields the Quotient as an answer, where as Modulus yields the Remainder as an Answer.
as you can see above,
when you write an expression as 13/2 it will yield an ans 6 . Therefore, 13/2 is 6 or may be 6.5 (calculation in flowchart is not so precise as it is just to understand the flow of the program and not for calculations)
when you write an expression as 13%2 it will yield an ans 1. Therefore, 13%2 is 1.
====================
2)Conditional Operators
Operators that define conditions are known as conditional operators.
They include these
|
&
This | is "OR" operator. It is used when you want to define any conditions like : a<10|a>15. This means either a is less than 10 OR it is greater than 15 , then its yes . (refering to the decision box, cuz thats the only place where you want to put up conditions right?) Only one of the two conditions must be satisfied , in order to make it a YES
If not even one condition is satisfied then it is a NO , n it will run different set of codes .
Image below will help you understand it.
==============================
The second operator is & "AND" operator. This is used when you want conditions like : a>100&a<200. in this , a should be greater than 100 AND a should also be less than 200 , if both the conditions satisfy then only it is a yes, if either of the condition is not satisfied, then its a no.
=======================================================================
3)Relational operators:
->Operators used for relating two variables are known as Relational Operators
They are as follows:
==
<
>
<=
>=
!=
Note: '=' is used to assign the value, eg , a=4, this means a is equal to 4, where as , a==4 , is a relational operator, it checks , IS a is equal to 4?
The two operators == and != are new to you, i explained the first one above,
the second one != is "not equal to", it is used to check , eg , Is a!=4?,if a is not equal to 4 thn its a yes, if a is equal to 4 then its a no.
========================================================================
A flow chart to check whether the number input by the user is positive or negative?
Try this on your own , n then see the answer below,
You would notice , there is a circle after the processing box..
It is an on page conector. When more than one flow lines are conected to something , then this is used, (i havent used it in any of the above eg of flowcharts, just to teach you bit by bit.)
This is what i used before:
this is what is to be used :
====================================================================
This was it Small Chapter 4. On operators..
If you have done this much ,then be proud of your self, cuz u have learned half of the basics of C programming
Next chapter it about Subroutine and off page conector. And then we will commence out voyage in C programming
Chapter 5
Subroutines And Off-Page-Connector​​
==================================================================
So as you have seen many flow charts above, u have came to an end of learning the flow chart, are are soon going to learn about C programming.
==================================================================
So lets talk about Subroutine:
What is Subroutine?
-> It is a symbol used in Flow charts to represent the programs clearly.
You will understand it after you see the flow chart bellow.
Lets suppose you were to make a program to add the numbers (we did it before in Chapter 3) , but using subroutine makes it tidy graphical Representation , and also it is easy to understand while reading it. :
As you can see above , the function of adding the two numbers is separated from the flowchart for better representation , this is known as an Modular Approach of Programming.
(not talking just about FlowCharts , i Am talking of C programming language .)
Modular Approach of programming is , to keep the main code in a file , and then the operating codes in a separate file , as you can see above, the main code is separated from the code that adds the numbers.
It is not of a great help when such a small flowchart, but when u have a full calculator in which you would add , subtract , multiply , divide etc etc , this approach would be the best . :good:
NOTE:at the end of the subroutine , we use a terminator with "RETURN" , and not "STOP"
==================================================================
Lets take another Example.:
You wanted to make a flowchart of a program , a program that adds and subtracts both .
Then it would be represented this way :
(all the three images is one FlowChart Only)
Each image above is like a different page in a book.
So if your flow chart ever exceeds the page in a book or page in any document, then you use the off page Connector.
Lets first talk about subroutine.
As u can see above, the Subroutines add and subtract are separated from the flowchart , you can write it on any page as long as those pages are kept together .
When the page comes to an end, we use a Off-Page-Connector, and then name it what ever we like, and in a new page we make a new Off-Page-Connector with the same name, as you can see a connector with name "A" is on the both page, so the connector "A" on the first page , conects with the conector "A" on the second page , Same way with the connectors named "B"
====================================================================
One more eg and we are done With Flowcharts
A flowchart , to show a program .
The program takes the marks of the students who gave an entrance exam for College, Subjects are Math,English and French. If in each subject a student scores atleast 35 marks and the average of the 3 subject is atleast 50 marks , Then a selection letter from the college is sent , if not , then a rejection letter is sent. Also count the number of selection letters and rejection letters sent.
Note:I wont explain this flow chart. If you can understand it on your own then you are good to go further with C programming , if you cant then please read the chapters again and try understanding it again and then proceed with programming.
The only new thing in this is :
nSelect = nSelect + 1
Lets suppose nSelect is a variable with a value 0 in it , then you can say
nSelect = nSelect + 1 which means , nSelect = 0 + 1
And then suppose nSelect is 1 then
nSelect = nSelect + 1 means nSelect = 1+1 which comes to two.
You can use such type of statements in programing .
Remember ,
The Right Hand Side of an equation is calculated and then stored in the variable Left Hand Side,
NSelect + 1 is calculated and the ans is stored in nSelect on the Left Hand Side. It works as an counter.
And yeah!! you are done with flowcharts.. We will start with Programming ASAP ..
C Programming Begins!!!​
So today we would have started with C programming ,but according to me and my fellow developer friend with whom i discussed of how to teach it to you and decided that we will teach you some extra things. As we are secondarily studying this for learning Android stuff though not only for android , we will try to teach everything about C but we will also try to teach you some extra things that will be helpful while you start with your android development .
So the main things are :
What is Computer?
What is an Operating System?
Where is C usefull in all this?
What is android?
==========================================
What is computer?
-> The definition of computer have changed as it has got many changes in it. Years before when computer wasnt invented , the person who used to do calculations was referred as a Computer as he used compute the Mathematical problems. But as the machine was invented to do the calculation , The machine was then named as "Computer".
==========================================
What is a Operating System?
=> Years Ago when computer was first invented,
it had a monitor of small size, one full room of chips and stuff (today it fits into a small box and we call it CPU) the name of the room was Central Processing Unit , (the room was the core of the computer , and as you know a room is also called as a Unit) . That room used to get commands from other room where the input from user was taken , and then processed and sent back to the same room for displaying it on Monitor. Hence it was a processing room too. So the room with chips used to Process things , it was the Core thing and hence it is named as Central Processing Unit(CPU).
(If you are interested in all the things I said above, then you must study Computer Architecture , as study of all these stuff is known as Computer Architecture .)
When this Computer was invented , it was just for the sake of calculation , you can say it was a 2 room huge calculator. And when you start the computer , You just see a black screen , and then you had to write the whole calculator program in a programming language you like (idk what language was used at that time ) and then do the work. The calculator program was very huge and it was very tiring job of writing it everytime you turn on the computer. So then someone invented "something" that stored the things in it. This "something" was named as Memory. As it stored the calculator program, it was kind of a Memory for the Brain(CPU) of the computer, Hence named as Memory. (This memory was very small it wasnt even 1kb ) And then the Calculator Program was written again and then stored to the memory . So everytime you turn on the Computer you dont have to Write the whole calculator program you just have to write some set of codes to go to memory and run that calculator program. Eventually when the need of computers increased from just calculation to many other Office work , like Storing the customer information, making the list of expenses and profits of an company many such applications were made . But still to run any of these application , some set of codes were neccesary and hence it was useless till some extent for normal people. So a new era was started, The era of operating systems. It was like you will have applications for using APPLICATIONS, eg if you want to use calculator in windows operating system, you will go to Start menu and then accesories and then select calculator. This is called GUI, meaning Graphical User Interface. Today we can make a folder by right clicking and selecting "New Folder" this wasnt the scenerio at that point of time , they had some set of commands to create a folder.(even today you can make a folder with this command in Command Prompt "mkdir NewFolder" mkdir meaning make directory , and then "NewFolder" is the name of the folder. If we want to see what folders we have in c drive, we just go to MyComputer and then go to c drive, this wasnt the case at that time, they had to write set of commands to navigate till that directory , and then had another command to List all the files and folders in that place. So everything was based on Commands Given by the User. So an need of Operating System was essential , where in commands were given by user interface(eg right clicking and making a folder is as good as opening command prompt, navigating to the location and then giving commands to make a new folder .) So when all these things are put together and then the need of Commands is decrease for day to day work , this package of software is known as Operating System.
There are different companies making Operating Systems depending upon the hardware capabilities of a Computer. eg, Windows, Linux and Mac(apple).
Note: The Definition of an Operating System is way too big than i explained above, but this is what you should know as of now.
==============================================================
Where is C usefull in all this?
=> The whole operating System is made in C language. It is a fact that, Windows consists of 13,000 lines of codes where in only 800 lines are not writen in C launguage . Now you can see what is the value of C . (will be writing C rather than C language ) C is widely used in making Operating Systems , Games and Kernels in other electronic Devices.
==============================================================
What is kernel?
=> A set of codes writen in C language that lets the Software and the Hardware communicate is known as kernel. For eg , if you press the volume Down button (hardware) how does android phone knows that the volume down button was pressed and the he has to lower the volume by a level in the phone?
See the image below:
The Hardware says the kernel that the user wants to lower the volume , the kernel comunicates with Operating System(OS) and tells to lower the volume by one level , and then it displays that the volume is decreased .
===================================================
Why C in everything?
=> C is widely used in everything because it is very fast as it is in direct contact with Hardware via kernels. So it is faster than any other programming language. It is not only used in computers. The Food Processor with Timing, the Tv Remote etc everything has C in it.
===================================================
What is Android?
=> Android can be simpt explained by saying "The mobile version of Linux is known as Android"
This was just a chapter for some extra information that would be usefull in your future when you will start doing some work in android or windows, or even when you will try to make some programs in C while you are learning from this tutorial.
Chapter 1 Theory On C prgramming
​So basically What is C?
=> C is a programming language developed at AT & T's Bell Laboratories of USA in 1972. It was designed and written by only one person "Dennis Ritchie". In the late seventies C began to replace the other programming languages like PL/I,ALGOL,etc. No one pushed C neither was it 'official' Bell Labs language nor was it advertised by any means. Still C's reputation spread and its pool of users grew. Ritchie seems to have been rather surprised that so many programmers preferred C over the older languages, including FORTRAN. Still it is choosen over the newer languages like PASCAL and APL.
Probbaly , why C seems so popular is because it is reliable, simple and easy to use. Moreover, In an industry where newer languages, tools and technologies emerge and vanish day in and day out, a language that has survived for more than three decades has to be really good.
An opinion that is often heard today is -
"C has already superceded by languages like C++, C# and Java, so why bother to learn C today!!". I seriously beg to differ with this opinion. There are several reasons for this(according to the aurthor of the book "Let Us C"-Yashwant Kanetkar, and i agree with him):
I believer that nobody can learn C++ or Java directly. This is because while learning these languages you have things like Classes , Objects, Inheritance , polymorphism , Templates , etc. and also the elements like loop , if-else, nested if-else, switch,etc. These elements like loop etc should be learned in C , then about objects in C++ and then Exception handling in Java , so it is like a proper flow in the boat of Knowledge. Though this Three-Step learning process may take more time, but at the end of it you will definitely find it worth the trouble.
C++,C# or Java make use of principle called Object Oriented Programming(OOP) to organize the program. This organizing principle has lots of advantages to offer . But eve while using this organizing principle you would still need a good hold over the language elements of C and the basic programming Skill
Though many C++ and Java based tools and frameworks have evoleved over the years the importance of C is still unchanged because knowingly or unknowingly while using these frameworks and tools you would be still required to use the core C language elements -another good reason whu one should learn C before C++ , C# or Java.
Major parts of popular operating system like Windows, UNIX, Linux are still written in C (As we talked on it earlier) This is because even today when it comes to performance (speed of execution Nothing beats c) Moreover, if one is to extend the operating system to work with new devices one needs to write device driver programs. This programs are exclusively written in C (this is what you will do when you will build android kernels after learning C)
Mobile devices like Cellular phones and palmtops have become rage of today. Also, common consumer devices like mirowaveovens , washing machines and digital cameras are getting smarter by the day. This smartness comes from a microprocessor, an operating system and program embedded in this devices. These programs not only have to run fast but also have to work in limited amount of memory. No wonder that such programs are written in C. With these costraints on time and space, C is the language of choice while building such operating system and programs.
You must have seen several professional 3F computer games where the user navigates some object, like say a spaceship and fires bullets at the invaders. The essence of all such games is speed. Needless to say, such games wont become popular if they take a long time to move the spaceship or to fire a bullet . To match the expectations of the player the game has to react fast to the user inputs. This is where C language scores over the other languages. Many popular gaming frameworks have been built using C language
At times one is required to very closely interact with the hardware devices. Since C provides several languages elements that make this interaction feasible without compromising the performance, it is the preferred choice of the programmer.
I hope that these are very convincing reasons why you should adopt C as the first and the very important step in your quest for learning programming languages.
================================================================================
Getting Started with C​Communicating with a computer involces speaking the language the computer understands , which immediately rules out English as the language of communication with computer. However, there is a close analogy between learning English language and learning C language. The best method to learn English is to first learn the alphabets used in the language , then learn to combine these alphabets to form words, which , in turn, are combined to form sentences and sentences are combined to form paragraphs. Learning C is similar and easier . Instead of straight-away learning how to write programs , we must first know what alphabets, number and special symbols are used in C , then how using them,constants, variables and keywords are constructed and finally, how are these combined to form an instruction. It is illustrated below:
=========================================================================
C Character Set​A character denotes any alphabet, digit or special symbol used to represent information. The Valid aplphabets, numbers and special symbols allowed in C are :
We would talk about what are variables,constants and keywords and set up the programming environment and also make our first prorgram with its flowchart
CHAPTER 2
​I can bet you will relate most of the things with C programming , from flowcharts.
When you run an application , it first reserves the memory required for it to run . Lets suppose you are playing a game on computer, "pinball", this game will first reserve the memory locations in the RAM or storage. And then only THE PINBALL game can access those memory locations. The image below depicts is properly.
as you can see above , memory is made up of cells, each cell has its address (0x111 to 0x142 are the adresses, dont worry about the numbers like 0x111 n stuff i just wrote it to show you , the real memory locations are like 2031576,2031577,2031578,2031579 and so on. We will see it in real when we go further down with the chapters )
Lets say your computer has a memory from 0x000 to 0x999, and then you open the pinball game , the pinball game needs 32memory cells, and it started getting cells from 0x111 and then reserved till 0x142 so that it can run smoothly , and lets suppose you open another app in backgroud , lets say you opened Calculator, and also suppose Calculator needs 50 cells of memory , then it willl start from 0x143 to 0x193.
These cells are nothing but Bytes.
1Gigabyte = 1000Mega Byte
1MegaByte= 1000 Killobyte
1Kilobyte = 1000 byte
This is what we know right? its wrong
1Gigabyte = 1024 Mega Byte
1MegaByte= 1024 Killobyte
1Kilobyte = 1024 byte
What is 1 byte equal to??
1byte = 8bits
NOTE: Google this "1 byte = how many bits"
You will see this at the start , as you can see it works like a converter, just goof around with it have a lil fun n learn mean while.
This was just off topic things, but keep these things in mind while learning C , this is like the general knowledge required for learning C , so now we are starting with Real C programming.
===================================================================================
So now what is variables?
Various Definitions:
Code:
"A variable is the name for a place in the computer's memory where you store some data."
"A variable is a way of referring to a memory location used in a computer program. "
Lets not go into theory again , lets talk about a program in which you want to add two numbers.
First of all you want to accept 2 numbers from users , add them and then store it to another variable?
Lets say you accept two numbers 'x' and 'y' from the user , you cant just write x + y, right? cuz x + y what? you will have to use one more variable 'z' and then store the value sum of 'x' and 'y' in it. ie z=x+y
so now here the three variable 'x' , 'y' and 'z' are variables, agreed?
so these variables WILL be stored in memory?
Each of them will use their own memory cells? or to be precise each one of the variable will use a BYTE from memory?
lets say the three memory locations used are 0x200,0x201,0x202
So you can conclude that the NICKNAMES of the memory location 0x200,0x201,0x202 , are 'x' , 'y' and 'z' respectively.
which in other words means the variable 'x' is reffering to 0x200 , so what ever you store in variable x is gonna be stored in the memory cell with address 0x200 and the same with 'y' and 'z' . so the above definitions are true, If you may read it again , you will understand better . Still you dont know what is DATA in this right? we will talk about it in a while.
What are constants?
The value of a variable is constant.
lets talk about the above program again , the variable x, y and z.
The user inputs the number 2 and 4,
so x = 2 , y = 4 and as these numbers are supposed to add and the answer is stored in z , so z=6.
now the value of x will change from program to program , if i make another program , i can use variable x and it may have a different value.
But the VALUE of value of variable , (2, is the value of x) this will never change, 2 will remain 2 , it wont ever mean 3, like 2=3 or something.
Hence it is a constant. This constant is stored in memory. The image below depicts is clearly.
============================================================================
Lets get in actoin?
So lets download the compiler now.
So the compiler we gonna use is DJGPP, it it like command line GCC (GNU C Compiler) , we will write program in notepad++, and then save it and then open up command prompt and then compile it from there and then we will get an .exe file .(dont worry if you arent getting it, everything will be taught )
Links:
DJGPP
Notepad++
How to download things?
For DJGPP:
select these fields:
The selection of Operating system may change according to your OS. If on Windows 7/vista select windows XP in that os section.
then click on tell me which files to download .
then download each of the zip file .
NOTE : If you are on linux then you have gcc compilers already, google it how to use it.
For notepad++:
go to the link above , then click on download button on left botom panel:
then:
.
===========================================================
Put the downloaded files from DJGPP in a folder named DJGPP.
now open the note pad plus plus exe and install it ..
then copy the DJGPP folder to C drive:
now open notepad++
and then write the name of the files in that DJGPP folder in the notepad++ (write unzip32 and then the file name):
and then save it as DJGPP.bat (dont forget to write .bat in that DJGPP folder..
if you have done the downlaod the way i have said and you have 8 files in the folder then copy this and paste in notepad :
Code:
unzip32 bnu2211b
unzip32 djdev203
unzip32 faq230b
unzip32 gcc472b
unzip32 mak3791b
unzip32 pakk023b
unzip32 rhid15ab
unzip32 txi412b
now go to DJGPP folder and open this DJGPP.bat file.. it will extract things for you..
now go to start menu , right click on my computer then click on properties:
now follow the instructions in the screen shots below(in some screen shots i have show the PATH in note pad, its jst to show you the path in bigger font. you need not write it on notepad):
click on advanced system properties, for windows xp users, you will have a box opened like the image below , click on advanced tab , for vista users IDK i never used Windows vista goof arround with it you will find what to do..
click on environment variables
click on path and then click on EDIT .
Note that in the path , there should be a ':' semicolon , then write c:/djgpp/bin;%PATH% , then click on ok.
now click on new
write these things in the Variable name and variable value , click on ok , then again ok then again ok. and you will be done..
now we have set up our Compiler .
Now lets write our first C program, just to check whether the compiler is running or not.
copy this and paste it in notepad++ ,
Code:
#include<stdio.h>
void main()
{
printf("Hello XDA!!!");
}
now save it with the name hello.c , dont forget to write ".c" at the end.
now open command prompt ,
write
Code:
cd desktop
then write
Code:
gcc hello.c
then write
Code:
a
if you got something like this then you are done.. if you got a error like Gcc is not an internal comand or something.. you messed it up , try the steps above from setting the environment variables.. and still you fail then you mail me at [email protected]
NOTE: Dont worry , we were just checking if its working or no , m gona teach you to use command prompt soon trust me , the boring part is over now. Its all the fun now :good:
Chapter 5 - Part II
Integer and float conversions​
In last tutorial you learnt about the operators used in C programming. Now we will see about how to use them effectively, i am making this tutorial by writing it because it has some tables which will take time for you to understand, and for that its better to write it than to show it in video.
So in order to effectively develop C programs, it will be necessary to understand the rules that are used for the implicit conversion of floating point(means a float variable) and integer values in C. These are mentioned below : (read them carefully , remember float variable, floating point and real variable , all mean one and the same thing)
An arithmetic operation between an integer and integer will always yield an integer result.
Eg. 2*2=4
An operation between real and real will always yield a real result.
Eg, 2.000000 * 2.000000 = 4.000000
Point to remember: : Float variable has 6 digits after the decimal , so if you write ,
Code:
#include<stdio.h>
main()
{
float a;
a=10;
print("%f",a);
}
then it will print 10.000000 as float value has 6 digits of precision..
An operation between an integer and real will always yield a real result.
eg, 6/2.0 = 3.000000 , you see that 6 is integer , 2.0 is real and they are divided, the 6 gets promoted to real value (6.000000) and then 6.000000 is divided with 2.000000 and the answer is 3.000000
Lets list all the operators we know so far:
+ (Addition operator)
- (Subtracting operator)
* (Multiplying operator)
/ (Dividing operator)
% (Modulus)
= (Assignment operator)
== (Equality operator)
Lets suppose you were to write a expresion like this:
Code:
x=2*3+4;
Now there are two possibilities in this ,
The compiler can first multiply:
Code:
2*3
and then add 4 to it.
OR
The compiler can first add:
Code:
3+4
and then multiply it by 2.
These two possibilities can create confusions while making programs, hence to solve these, C has something known as "Operators Precedence".
See the Image Below :
As you can see, that the */% have more precedence then the + -, hence , When there is a expression like:
Code:
x=2*3+4;
First multiplication is carried out , and then it is added. and then it is assigned(the assignment operator has last precedence) to the variable in left.
NOTE: The =! is NOT EQUAL to operator and is used when you compare it. will be explained in following chapters with examples.
===========================================================================================================
In addition to these operators, there are more operators, which we will see as we need them further, and will be explained as we encounter them.,
Chapter 6 (DECISION!! DECISION!! DECISION!!)
Chapter 6​
If you have a calculator which will just ADD the two numbers, then calculator will be pretty useless , wont it?
Hence,There is something in the calculator that decides whether to add or subtract or multiply the two or more numbers provided by the users. This is when we need decision control.
The C language too must be able to perform different sets of actions depending on the circumstances. Actually, this is what makes C popular and very widely usable.
C has three decision making instruction(Reminder:a line of code is instruction)
If Statement
If-Else Statement
Switch
The if Statement​Like most languages, C uses the keyword(if you forgot what is keywords check out the FAQ) if to implement the decision control instruction. The syntax(look FAQ) of if statement looks like this:
Code:
if(condition)
{
[B][I]code[/I][/B];
}
where the CODE is the instructions that you want to run.
And if the CONDITION is true then the CODE is executed.
The keyword if tells the compiler that what follows the keyword if in the ( ) "parenthesis" is the condition. If this condition is true then the CODE in the pair of { } "braces" is executed. if the condition is not true then the statement is not executed, in fact the program skips it.
How to evaluate if the condition is true or false?
With the help of relational operators.(will be taught in the second part of chapter 5, when it will be updated for now just remember that the operators used for relating is known as relational operators Eg. == , !=, < , > , <= , >=.
== is to compare the right hand side with the left hand side and != means not equal and others are simple. Will be taught in detail in Chapter 5 part 2 i will link you as soon as that chapter is done by my friend.)
Lets try a program now:
Code:
//This is a coment
//A program for demonstration of [B][I]if[/I][/B]
#include<stdio.h>
main()
{
int number;
printf("Please enter a number with less than 100\n");
scanf("%d",&number);
if(number<100)
{
printf("What a good student you are!!");
}
}
NOTE:
Never put semi colon after if statement Like this
Code:
if(a<10);
printf("A is less than 10!");
As the program will think that you terminated the if statement after checking the condition , it will think of it this way
Code:
if(a<10)
{
}
printf("A is less than 10!!");
So no matter what the value of a is , it will always print A is less than 10.
A flowchart for the above program to make things clear:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
Another Eg:
If your bill is above 10$ in McDonald's then you get 5% discount, if not then no discount.
(try making a flowchart your self , and then see the C program below)
Code:
#include<stdio.h>
main()
{
float billamount;
[COLOR="Green"]/*float data type because bill can be in decimal. eg 10.40$*/[/COLOR]
int discount;
[COLOR="Green"]/*discount will remain 10% only*/[/COLOR]
float totalamount;
[COLOR="Green"]/*the amount after deducting the discount from the bill we will store the value in the "totalamount" variable*/[/COLOR]
printf("Enter your bill amount in Dollars\n");
scanf("%f",&billamount);
if(billamount>=10)
{
discount=5; //If billamount will be more than or equal to 10$ then we will give discount of 5%
}
totalamount=[COLOR="RoyalBlue"]billamount[/COLOR]-[COLOR="Red"]billamount*discount/100[/COLOR];
[COLOR="Green"]/*here [COLOR="red"]billamount*discount/100[/COLOR] is to calculate the percentage and then subtract it with the real [COLOR="RoyalBlue"]billamount[/COLOR]*/[/COLOR]
printf("The total amount is : %f",totalamount);
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
The If Else Statement
----------------------------------------------------------------------------------------------------------------------------------------------------------------------​
The if -Else statement is the real thing, the if statement was derived from it. Will explain you how and why at the end of the If-Else discussion .
The Syntax(syntax means general form )of the IF-ELSE statement is.
Code:
if(CONDITION)
{
CODE If true;
}
else
{
CODE if the CONDITION is false;
}
Lets go through it Step by step:
The CONDITION is evaluated
The CODE IF TRUE will run if the CONDITION is TRUE
if the condition is false then the CODE IF THE CONDITION IS FALSE will run.
Lets see a example
Code:
/*A program to add or subtract the numbers*/
#include<stdio.h>
main()
{
int a,b,c; /*a and b for accepting number for user and c for storing the addition or subtraction*/
char op;
printf("Hello, Please enter your operation (Addition or Subtraction only)?\n");
scanf("%d%c%d",&a,&op,&b);
if(op=='+')
{
c=a+b;
}
else
{
c=a-b;
}
printf("The answer is : %d",c);
}
Some examples tested in the program.
Found it complicated? The lets simplify:
scanf("%d%c%d",&a,&op,&b);
The %d will accept the first integer and save it in a
The %c will accept the Operator(+ or - ) and save it in op
The %d will accept the second integer and save it in b
Then the If will check if the op=='+', if it is + then it will add and store the answer in the variable c. It will skip the ELSE .
If op is not + then it will skip the if and the codes in the Else will run, meaning it will skip the codes in the if and then subtract the two integers and then store the value in variable c.
After this the printf functions prints the variable c, which is the answer.
---------------------------------------------------------------------------------------------------------------------------------------------------------
Revising Stuffs
---------------------------------------------------------------------------------------------------------------------------------------------------------​
Let me brush up your basics again:
%d is for integers
%c is for characters
%f is for floats
Defining: To tell the computer you want a variable of int/float/char type is called as defining a variable.
Eg.
char a;
int b;
float c;
Initializing: To give a value to a variable is known as initializing a variable.
Eg.
char a;
a='Z';
int b;
b=2;
float c;
c=3.000000; (decimal is not neccesary while initializing, but when you will print a float variable , you will see the decimals)
CAN ALSO BE INITIALIZED THIS WAY:
char a='Z';
int b=2;
float c=3.000000;
Note: To initialize a char type of variable, you use ' ' single inverted commas, Eg. char a = 'Z';. This is what we have used in the if condition in the above example , if(op=='+');
When we write only the variable name like, (supposing int x = 10
printf("%d",x);
We will get 10 as output , that is the value of the varaible.
But when we write a variable name with ampersand(&), (supposing int x is located at 25834 on the memory)
printf("%d",&x);
We will get 25834 as output, as the &(ampersand) is a operator that tells the program to related the variable's address rather than its value.
Now you know why we write
scanf("%d",&a);
Rather than:
scanf("%d",a);
---------------------------------------------------------------------------------------------------------------------------------------------------------​
Switch
---------------------------------------------------------------------------------------------------------------------------------------------------------------​When we have to make only two decisions depending upon only TWO possibilities then we use If-Else.
Eg,
If the numbers are even then add them and if not , then subtract them
If the user is male then he have to pay 25.5% as tax from his income and if not male then 25.0% tax from her income
If a number less than 10 then multiply it by 100, if it is not less than 10 then divide it by 100, Etc.
But what if you want to make various decisions depending on various possibilities
Eg,
If the number is less than 10, then add 10. If the number is greater than 20 then subtract 10, if the number is 0 then add 20.
If the character entered by user is 'a' then print A, if 'b' then B,if 'c' then C, if'd' then D, if 'e' then E , Etc.
This is when you use switch case.
The Syntax of switch case is as follows:
Code:
[COLOR="DarkGreen"]Switch[/COLOR](CASE NUMBER)
[COLOR="DarkGreen"]Case [/COLOR]NUMBER 1:
{
CODES HERE;
}
[COLOR="DarkGreen"]Case [/COLOR]NUMBER 2:
{
CODES HERE;
}
[COLOR="DarkGreen"]Case [/COLOR]NUMBER 3:
{
CODES HERE;
}
[COLOR="DarkGreen"]Case [/COLOR]NUMBER 4:
{
CODES HERE;
}
Default:
{
CODES HERE;
}
Post Under Construction ​

[APP] PRIME's MultiCal: Unit Converter + Age Calculator + Scientific Calculator

PRIME'S MultiCal
The BEST Calculator with Scientific Calculator, Age, Date and Unit Converter.
The original All-In-One Calculator for Android.
It's a FREE, complete and easy to use multi calculator & converter.
Who is this for?
If you are a student, teacher, engineer, handyman, contractor or just somebody who struggles with math & conversions, you really should give this one a try.
• Use it for simple or complex calculations
• Convert units in the same app
• Enjoy easier homework or school assignments
A simple calculator utility for Android
Main Calculator:
Calculator provides simple and advanced mathematical functions in a beautifully designed app.
• Perform basic calculations such as addition, subtraction, multiplication and division
• Do scientific operations such as trigonometric, logarithmic and exponential functions.
Date Calculator:
1. Age Calculator:
- Calculate age by just entering your
DOB.
- shows next birthday.
- shows result in 4 formats.
2 Date difference:
- Calculate difference between two
dates.
- Again shows result in 4 formats.
3. Add/Sub Dates
- subtract or add days/months/years
to and from a date.
Unit Converter:
No.1 unit converter with easy and simple UI.
Unit converter is the 6th set of Smart Tools® collection.
There are a lot of unit conversion apps on the market. However, most are inconvenient and difficult to use because of poor and complicated UI.
This app has intuitive and simple UI, that is designed for casual user like you. Trust me.
These are some conversions you can easily do with our
⭐️ Simple Unit Converter Calculator ⭐️
? Area: Yards, Acres, Hectares & Square: Meters, Miles, Inches & Feet.
? Distance / Length: Meters, Miles, Inches, Feet, Yards, Nautical Miles.
? Speed / Velocity: Kilometers / Miles per hour, Feet per second, Knots, Speed of sound, Speed of light.
? Temperature: Celsius, Fahrenheit, Kelvin.
? Time: Seconds, Minutes, Hours, Weeks, Months, Years.
? Volume: Litters, Cubic Meters, Cubic Inches, Cubic Feet, Gallons, Quarts, Pints, Cups, Teaspoons, Tablespoons, Fluid ounces.
? Weight / Mass: Grams, Kilograms, Milligrams, Pounds, Ounces, Tons, Stones.
? Energy / Power / Torque: Watts, Joules, Calories, ElectronVolt, BTU, Therms, Foot-Pond.
Here is link in case you want to try. As I am a new member XDA is nt allowing me to add links. Sorry for inconvenience. thanks
play.google.com/store/apps/details?id=com.prime.calculator

The best scientific, graphing, and CAS calculator apps for Android: Comprehensive comparative review

Introduction to my app reviews on the XDA forum
This is the first of a series of such comprehensive app review threads that I have planned (the others will be much shorter however).
While I will publish the reviews later in other places also (like my website and medium.com), I have decided to publish them here first in the hope of getting suggestions for improvement from many interested people, and maybe from the developers of the apps also.
Introduction to this review of calculator apps
In this article, I will attempt to find, evaluate, and compare the best advanced calculator apps for Android, as comprehensively and objectively as possible.
I also include high-quality “basic” scientific calculator apps with features like scientific constants, units, and base-n calculation. Further, I include advanced "learning calculators" like Photomath, but I evaluate only their ability to solve mathematical problems, not their pedagogical value.
I hope the article will be helpful to anyone who wants to do more complicated calculations on Android devices, and also to the developers of the calculator apps, and to programmers considering the development of another calculator app.
I decided to write it because there are now many good and useful advanced calculator apps for Android, but not one thorough review (at least I couldn’t find one). While there are many “reviews” of the best such apps on the web, those lack
systematic search for available apps,
thorough tests of the apps,
comparison of features,
comparison of data from Google Play,
examination of other reviews.
Accordingly, they do not provide an objective overview of the best apps. Also, they seem to be written mostly by people with no special love for math and programming.
While I am myself not a mathematician, I have studied mathematical physics and computer science (PhD), and have developed complex Android apps (an advanced 3D modeling app, and App Finder, a sophisticated search engine for apps on Google Play, which I have used for this review).
Please note that this is a VERY long and detailed review. If you just want to know what the best calculator apps are, you may directly read my recommendations here.
If you are mainly interested in this as an example for the usage of App Finder, you may just read the section about the searches.
If you are new to this forum, please note that you can change the style from dark to light via the "XDA-Dark" button at the very bottom of the page. Also, you can hide the left pane using the three-line button top left.
If you like this article, please read the post at the bottom of this page.
Classification of apps and compilation of features
Kinds of calculators
Since for different people and different purposes, different types of calculator apps will be optimal, let us first make a classification.
Traditional handheld calculators may be classified as follows (excluding completely basic and financial calculators):
Basic scientific calculators
Advanced numeric scientific calculators
(distinguished from the basic ones by e.g. equation solving, calculus, and matrix calculation capabilities)
Programmable calculators
Graphing calculators
CAS (Computer algebra system, i.e. symbolic computation) calculators
(also including the functionality of advanced numeric, programmable, and graphing calculators)
However, if one needs more than a basic scientific calculator at all, it will probably be useful to have symbolic as well as numeric calculation, and also graphing (and possibly programming).
This also seems to be what most calculator app developers have thought, since nearly all good apps with a functionality exceeding basic scientific calculators include at least basic symbolic computation and graphing features.
Therefore, I will classify the apps here simply as “basic” or “advanced” calculators for feature comparison.
Nevertheless, a more detailed classification is useful and will be used to structure this review:
Advanced general-purpose calculators
Apps with a wide range of advanced numeric and symbolic computation and graphing that are convenient for both quick and more complicated calculations.
Graphing tools
Apps specializing in graphing, whether or not they include other functionality.
CAS answer engines
Apps with powerful symbolic computation, that also accept input in natural language, and can give not only calculation results, but also information on mathematical definitions and concepts (WolframAlpha is currently the only such app).
Advanced learning calculators
Apps designed for learning mathematics, often with symbolic computation, showing intermediate calculation steps, and able to recognize written problems from photos.
Advanced calculators of other types
E.g., apps with a “notebook interface” (similar to Mathematica), computer algebra systems with a command-line interface, and apps with programming / scripting.
Intermediate scientific and graphing calculators
Apps with some advanced features like 2D graphing, basic numeric / symbolic calculus, numeric equation solving. Up to the level of the TI-84.
Basic scientific calculators
Apps without advanced mathematics like calculus, that are nevertheless suitable for science and engineering (with features like scientific constants and units, and base-n calculation).
Features and test problems
To be able to objectively compare the apps, I have made lists of important features and some test problems.
The test problems are of course quite arbitrary and cover only a small part of the features, and a still smaller part of the range of important problem types. Nevertheless, I think they give some helpful insight into the power and reliability of the apps.
The features that I consider essential are in blue and will be used as the baseline for the reviews. More advanced features, which fewer people will need, are in parenthesis. Even more advanced features are in double-parenthesis. The test problems are in green.
Advanced calculator features and test problems​As a basis I have taken the functionality of advanced hardware calculators like the TI-89 or TI-Nspire CAS, while considering the capabilities of modern Android devices.
Numeric and symbolic calculation
(in addition to the basic functionality of all scientific calculators):
Complex numbers: Rectangular and polar form, common operations and functions
Symbolic computation essentials:
Calculation with exact values (fractions, roots, pi, etc.)
e^pi/e^(2pi) should be simplified to 1/e^pi or e^-pi
Automatic simplification
2x/(x^2-1)-1/(x-1) should be simplified to 1/(x+1)
(Factorization and expansion of polynomials)
((Equation manipulation))
(Assumptions, e.g. domain constraints)
Equation solving:
Numeric
Ln(x) = -x should be solved as x = 0.567143
sin(x) = x/2 should be solved as x = {0, ±1.89549}
Symbolic
sin(1/x)=0 should be solved as x = 1/(n*pi)
ln(x*y) = y*ln( y) should be solved as x = y^(y-1)
Real and complex solutions
(X+1)^2 = -1 should be solved as x = -1±i
(Equation systems)
x²+y² = 2 and x²*y² = 1 should be solved as x = ±1 and y = ±1
(Specification of variable ranges)
(Inequalities)
Differentiation and integration:
Numeric
Symbolic
(e^x+1)/(e^x-1) should be integrated to 2*ln|e^x-1|-x
1/(1+sin(x)) should be integrated to e.g. tan(x/2-pi/4), or -2/(tan(x/2)+1), or (sin(x)-1)/cos(x)
x/(1+sin(x)) should be integrated to e.g. 2*ln(cos(-x/2+pi/4))-x*tan(-x/2+pi/4)
x/ln(x) should be integrated to Ei(2*ln(x))
Multiple / nested operations
Other calculus and analysis:
Finding minima and maxima, numeric (and symbolic)
Minima of sin(1/x) should be given like 2/(4pi*n-pi)
Sums and products of sequences, also infinite, numeric and symbolic
Limits, also one-sided, numeric and symbolic
(Taylor expansion)
((Differential equations solving))
Matrices and vectors:
Standard operations and functions
(Vector calculus, esp. gradient, divergence, curl)
Basic number theory and combinatorics: random, prime factorization, gcd, lcm, factorial, nCr, nPr
Base-n calculation: conversion and bitwise operations for binary, octal, hexadecimal numbers
Statistics and probability
One and two variable statistics: with frequencies, (histograms, box plots)
Regression: Linear, quadradic, logarithmic, exponential, …, with plots
((Confidence intervals calculations))
((Statistical tests, e.g. t, z, F, chi², ANOVA))
(Probability distribution calculations)
Calculation with units and unit conversion
Scientific constants
2D and 3D graphing
Display of multiple graphs in one coordinate system, also of different types
(Multiple workspaces, i.e. coordinate systems)
Graph types:
Cartesian function plots
2D: Polar function plots
Parametric plots, in 3D both curves and surfaces
(Implicit plots)
4*(x^2+y^2+z^2)+16*x*y*z = 1 (Cayley's cubic surface)
((Differential equations plots))
((Complex plots))
Display:
2D: (Customizable) grid, adapting to zoom (with major and minor lines)
3D: Labeled coordinate axes, (optional semitransparent x-y-plane, optional x-y-grid)
Custom colors for individual graphs
(3D: Surface display: solid with variable transparency, and as wireframe)
(3D: Both orthographic and perspective projection)
((3D: Quality settings))
(Animation of parameter variables)
Portrait and landscape orientation
Navigation:
Equal and independent scale of axes
2D: Simultaneous pan and zoom with 2 fingers
3D: Complete and intuitive navigation, e.g., orbit around center with one finger, pan and zoom with 2 fingers
(3D: Automatic rotation)
Analysis:
2D: Tracing
2D: Display of coordinates of intersections, zeros, extrema
Environment and user interface
Variables and functions:
Saving values to variables
(Custom-named variables for storing values and for use in symbolic computation)
(User-defined functions that can be used in numeric and symbolic calculations)
(Piecewise defined functions), ((Programmed functions))
(Intermediate calculation steps)
((Programming environment))
Input and output:
Display and input of expressions in standard mathematical notation, like in a textbook
Copy and paste, also parts of expressions
Undo & Redo
(Automatic calculation without tapping enter key)
(Multiple workspaces)
(“Quick Info”: Display of various useful information about the entered expression or result with one tap, e.g.: prime factorization for integers, alternative formats for numbers, alternative forms for expressions with variables, solutions for different variables for equations, graphs for expressions and equations with 1 or 2 variables)
History of calculations
Import / export, (sync and share) of variables, functions, (and history)
Adaption and customization:
Convenient interface for small phones, good use of the space available on large phones (and tablets)
Adjustable display text size (and keyboard size)
(Keyboard layouts for different screen sizes), ((Custom keyboard layouts))
(Light and dark mode, different themes, custom colors)
Documentation and source
Complete user guide (with full text search), (in-app and external)
(Function / command reference with full text search)
(Info / description of the algorithms used)
(Open source)
For Basic scientific calculators, I use a separate list:
Basic scientific calculator features​
Calculation
in addition to the basic functionality of all scientific calculators:
Basic number theory and combinatorics: random numbers, prime factorization, gcd, lcm, factorial, nCr, nPr
(Calculation with fractions, roots, pi)
(Base-n calculation: conversion and bitwise operations for binary, octal, hexadecimal numbers)
(Complex numbers: Rectangular and polar, common operations and functions)
(One-variable statistics)
(Calculation with units and unit conversion)
(Scientific constants)
Memories/variables, functions
Enough memories/variables
Using variables directly in expressions, not just inserting the value
(Saving functions)
Input and output:
(Standard mathematical notation, like in a textbook)
Otherwise, multi-line
Copy and paste, (also parts of expressions)
(Undo & Redo)
(Automatic calculation without tapping enter key)
Number formatting:
Custom number of decimal places, round/cut modes
Scientific and engineering formats
Thousands separator
(Repeated decimals)
History of calculations
(Import / export of variables, functions, and history)
Adaption and customization:
(Different keyboard layouts, custom keyboard layouts)
Light and dark mode, (different themes, custom colors)
User guide
The search
To search Google Play, I have used App Finder, an advanced app search engine that has data for nearly 2.4 million apps.
I have also quickly searched the following alternative app stores directly:
Samsung Galaxy Store
Huawei AppGallery
Amazon App Store
F-Droid
Aurora store
APKMirror
AppBrain
SlideMe
Aptoide
However, I did not find additional apps that can be recommended.
App Finder
For our purpose, App Finder has several advantages over Google Play’s build-in search:
Search algorithm: Google Play uses a complex undocumented search algorithm that takes many factors into account, and prefers the apps it thinks “you’ll have a good experience with” (see here). While this is often very good for quickly finding some of the best apps, it is not suitable for a comprehensive search.
In contrast, App Finder matches your search query against the descriptions of the apps in a clear and easily comprehensible way (see below).
Search operators: In addition to the usual search operators, App Finder has some special operators. For example, to require specific words to occur in title or summary, which can be very helpful to exclude irrelevant apps.
Filters: While Google Play’s search has only filters for a user rating above 4 or 4.5 stars and for paid apps, App Finder has a filter for user rating in 0.1-star steps, and many other filters.
Sort options: Like Google Play, App Finder sorts the results by “relevance” by default. That is, by a score calculated from the match with the query, the average user rating, and the popularity. However, App Finder also has the option to sort by a single characteristic like the average user rating or the number of ratings, which gives us better orientation for comparing the results.
Result count: App Finder shows the exact result count, so we can add keywords or filters if there are more results than we want to inspect.
Result list: Unlike Google Play’s search, App Finder shows all essential data, summary, and screenshots directly in the result list.
Additional data: App Finder shows
the average user ratings with two decimals, which is relevant for high ratings (consider two apps rated 4.85 and 4.94 stars respectively, which are both rounded to 4.9 stars by Google Play),
the number of downloads with two significant digits, with is quite an improvement over Google Play which rounds them down to powers of ten times 1 or 5,
World-average user ratings in addition to country-specific ratings.
Here’s a how App Finder matches search queries against the app descriptions:
In the simplest case, if you just enter keywords separated by spaces, it returns exactly those apps where all the words (or forms of them, like the plural) appear in the description (or title or developer name).
.
Words inside quotes are required to appear in sequence (different forms of the words are still allowed).
.
+ in front of a word (or quoted words) requires it to occur in title or summary, not just anywhere in the description.
(The summary is a short description limited to 80 characters that the developer must provide).
.
- can be used as usual to exclude words. It can be combined with + to exclude them from title and summary only.
.
The usual OR operator is supported. Additionally, / (a slash) can be used instead of OR. Contrary to OR, / is evaluated first, which makes it often possible to avoid parenthesis and repetitions. Also, / can be used inside quotes. No spaces are required around /.
Simple Search
Since scientific calculator and graphing calculator are universally used terms, we would expect each app intended as such a calculator to have one of these terms in title or summary.
With App Finder, we can search for this using the query +”scientific calculator” OR +“graphing calculator” (see above). Using the / operator, it can be simplified to
Query 1: +“scientific/graphing calculator”
Without filters, this query gives 432 results.
Note that all searches in this article were done in Mai 2023 for the United States.
To not miss anything, I have looked through all results without filters.
Already from the screenshots, it is clear for most of the 432 apps that they are very low quality, or that they are not what we’re looking for.
Investigating the promising apps further, and quickly testing the still promising ones, I found that all the best apps probably have at least 4.5 stars average rating in the US for the full-featured version, at least 100 ratings, and were updated within the last year.
(Which is of course roughly what one would expect anyway.)
With these filters, we get 33 results. The following screenshots show the result list, ordered by number of ratings, which gives us a good orientation.
I have cut away some irrelevant apps, and placed the ad-supported and paid versions of the same apps together (future versions of App Finder will place apps by the same developer together automatically ).
Reading App Finder’s result list
The numbers left of the colorful stars are the average user ratings calculated by Google Play, the top one for the United States, the bottom one the whole world. (App Finder can also show the ratings for any other country supported by Google Play.)
The stars represent the rating distribution: The size (that is, area) of the stars is proportional to the number of 5-, 4-, 3-, 2-, and 1-star ratings (from green to red). Between different apps, the star-size is correlated with the total number of ratings at a logarithmic scale.
Paid apps without an indication do not contain ads. For apps with in-app purchases, the price range is shown in parentheses.
Spoiler: Result list
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Search by functionality
Since there may be advanced calculator apps that are not called scientific or graphing calculator by the developers, I have done a search by functionality mentioned in the description also.
It is of course very difficult to predict which features a developer would choose to include in the description and what words would be used.
But if we only refer to functionality that is very important and popular, and consider alternative descriptions, we can expect to miss only few good apps, if any.
Choosing differentiation, equation solving, and graphing as such functionality, we arrive at a query like
Query 2: differentiate/derivative equation/algebra graph/plot
(Remember that App Finder equates different forms of a word. E.g., calculate also searches for calculator, differentiate also for differentiation, and integrate also for integration and integral.)
(With the simpler query derivative equation graph we miss two relevant apps, Wolfram Alpha and Algeo.)
Without filters, this query gives 264 results.
Again looking through the list and testing promising apps I found that all the best apps here probably have at least 4.2 stars average rating in the US, at least 1 million downloads for the free version, and were updated within the last two years.
With these filters, the query gives 14 results. Below you see the complete list ordered by “relevance”.
While I had to try some different keyword combinations and filters to arrive at this, the result is quite impressive:
The list probably includes all the best advanced calculator apps, no irrelevant apps, only few apps which I would not recommend, and the app that I would rate as the best overall is first in the list.
Spoiler: Result list
Additional searches
I have also repeated the query with -graph/plot instead of graph/plot to check if there are good advanced calculator apps without graphing, but this seems not to be the case.
I have searched for graphing apps specifically with graph/plot function trace and graph/plot function 3D. The latter query yielded 3 additional interesting 3D graphing apps (Grapher– Equation Plotter, Visual Math 4D, and Graphing Calculator 3D).
I have searched for CAS apps specifically with "computer algebra system", which yielded Maxima for Android and Xcas Pad.
Summary of the review and recommendations
Since the introduction of Android in 2008, independent programmers from around the world, as well as small and large companies, have developed hundreds of calculator apps (as we have seen, there are currently at least 432 apps with the phrase scientific calculator or graphing calculator in title or summary available on Google Play).
There is currently no single app with as comprehensive, reliable, and convenient calculation functionality as the best hardware calculators (like the TI-89, TI-Nspire, or Casio fx-CG500 / ClassPad).
However, for many purposes there are perfectly suitable apps, which are sometimes even preferable if one has a hardware calculator at hand (e.g., for graphing).
Note that there are also emulators available for Casio’s and HP’s flagship CAS calculators (but not TI’s), which however greatly suffer from emulation related problems.
For almost all purposes, a combination of the best native Android apps (e.g., Hiper Calc, GeoGebra, and WolframAlpha, see below), is probably the best choice.
Advanced general-purpose calculators
There seem to be essentially 3 advanced general-purpose calculator apps currently (see my definition above).
Of these, I would rate Hiper Calc as the best overall. Its numeric and symbolic calculation functionality is rather comprehensive and seems to be quite reliable. It is very easy to use and often very efficient. Important disadvantages are weaknesses with symbolic computation and small bugs, and very limited graphing.
Scientific calculator plus 991 has a more extensive calculation functionality than Hiper Calc (e.g. for statistics), and its symbolic calculation is more powerful in some areas (simplification and integration). However, it has some bugs and inconveniences, not all functionality is well organized and documented, and 3D graphing is missing.
(There are some very similar apps that may possibly be used instead of the Plus 991.)
Scientific Calculator by Philip Stephens may be chosen for 3D graphing (see below), some user interface advantages, and maybe for statistics. Its numeric calculation functionality seems to be good, but symbolic calculation is very limited. While the user interface has some great features, it also has significant issues, and documentation is missing.
Apps for difficult symbolic and numeric calculations
In general, WolframAlpha (based on the leading mathematics software Mathematica) can be recommended as the most powerful tool for difficult calculations on Android. It can also give further information on definitions and concepts, and often show intermediate calculation steps. However, it does not work offline, and expressions cannot be entered in textbook notation.
Maxima for Android is the long-established open-source computer algebra system Maxima with a command-line interface. Xcas Pad is another open-source computer algebra system with a command-line interface .
The best alternatives seem to be GeoGebra, Symbolab, and maybe Maple Calculator, which all support entry in textbook notation. GeoGebra works offline and is based on the open source CAS Xcas/Giac, but does not give intermediate calculation steps or further information. Symbolab and Maple Calculator often give intermediate calculation steps, but no further information.
For equation solving, Hiper Calc seems to work well also, but it has problems with simplification and symbolic integration. For symbolic integration, Plus 991 seems to work well also, but it has some bugs and problems with equation solving.
WolframAlpha sometimes shows the results in a more complicated form than other apps, and in one of my tests it did not return all minima of a simple function, while Hiper Calc did this. So, it may sometimes be a good idea to check with different apps.
Apps for graphing
For 2D graphing, Plus 991, Graphing Calculator + Math, Desmos, and GeoGebra are probably the best, with different advantages and shortcomings.
For 3D graphing, GeoGebra and Scientific Calculator by Philip Stephens seem to be clearly the best, also with different advantages and shortcomings.
GeoGebra and Graphing Calculator + Math may also be used as a “general-purpose calculator”, however the keys are quite small on phones for quick calculations.
Apps for longer complicated calculations and programming
MATLAB Mobile allows to create and execute MATLAB scripts in the cloud. MATLAB is a full-featured programming language, extensive numeric and symbolic calculation functionality is available, and 2D and 3D graphs can be created (but not navigated).
For tablets, a “notebook interface” is also available, where the code is placed on an interactive document together with the calculation results, graphics, and formatted text. While this concept is optimal for longer complicated calculations, there are serious problems with the interface of the app currently.
micro Mathematics is another calculator app with a notebook interface (for phones also). It seems to work reliably, however the input mechanism is quite inefficient, and symbolic computation and programming are missing.
GeoGebra and Graphing Calculator + Math also have kinds of (more limited) notebook interfaces.
Plus 991 seems to have a full-featured programming language, however there are significant issues currently.
Graphing Calculator (X84) includes TI-BASIC programming.
Scientific Calculator Scalar has limited scripting functionality.
The Casio fx-CG500 / ClassPad emulator might also be chosen for a “notebook interface” (eActivity) and for programming, however there are emulation related inconveniences.
The web-interface of SageMath might also be used, however it is quite inconvenient on phones.
An alternative would be to use a general programming environment with math libraries like SymPy, but this is beyond the scope of this review.
Apps for simple calculations
ChampCalc Scientific Calculator is a very sophisticated and customizable "basic" scientific calculator.
TechCalc Scientific Calculator includes formulas for many important mathematical, scientific, engineering, and financial applications.
Scientific Calculator Scalar allows to define custom functions easily, and has some scripting functionality.
Panecal Scientific Calculator may be very efficient for longer simple calculations.
CalcTastic has comprehensive base-n calculation functionality.
Graphing Calculator – Algeo and Jade Scientific Calculator have a simple and convenient user interface and some advanced features.
If more advanced features are needed, Hiper Calc can be recommended as the easiest to use advanced calculator.
Apps that imitate hardware calculators
Scientific calculator plus 991 has essentially the keyboard layout of the Casio fx-991 calculators, while being much more powerful.
Graphing calculator plus 84 83 has essentially the keyboard layout of the TI-84 calculators, while being much more powerful.
Graphing Calculator (X84) imitates the TI-84 quite closely, still making use of the touch-interface of Android devices.
If you find this review helpful, please read the note at the end of this page.
Introduction to the reviews of individual apps
I list all apps that looked promising to me from the store descriptions (as described in the section about the searches above, I have looked through several hundred apps).
For the apps that I would not recommend after testing, I only give the Play Store data and quickly explain the problems.
For the apps that I would recommend, I give screenshots and more information.
For apps that I would recommend for regular use, I give complete “feature lists”. For the others, I only note distinguishing features.
Reading the feature lists
In the feature lists, I take the “essential” (blue) features from the above lists as the baseline.
As advantages, I note especially good implementations and additional features. As disadvantages, I note bugs, bad implementations, and missing “essential” features. This may be a bit confusing, but I see no better way.
So, to make sense of the feature lists in the reviews, you must read the blue in the lists above.
If you are looking for apps with a specific feature, just use the search of you browser, all reviews are on this page.
I always review the full-featured and ad-free versions. For the good apps these are all available at a very fair (or more than fair) price.
Reading the Play Store data from App Finder
The numbers left of the colorful stars are the average user ratings calculated by Google Play, the top one for the United States, the bottom one the whole world.
The stars represent the rating distribution: The size (that is, area) of the stars is proportional to the number of 5-, 4-, 3-, 2-, and 1-star ratings (from green to red). Between different apps, the star-size is correlated with the total number of ratings at a logarithmic scale.
Paid apps without an indication do not contain ads. For apps with in-app purchases, the price range is shown in parentheses.
Advanced General-Purpose Calculators
Hiper Calc​
This app stands out with quite comprehensive, reliable, and powerful functionality, and an exceptional user interface.
It seems to be very good at equation solving and minima / maxima finding (however there also is a bug).
On the other hand, there are significant problems with simplification, more complicated integrals cannot be solved symbolically, and statistics is very limited.
Graphing is very limited but still useful.
The functionality is very well organized and efficient and easy to use, but it still has some inconveniences, see the feature list.
Numeric and symbolic calculation​
Symbolic computation essentials:
Bad Already some easy simplifications are not done, e.g., ln(2)+ln(3) is not simplified to ln(6), and 2x/(x^2-1)-1/(x-1) is not simplified to 1/(x+1)
Bad In results, polynomials are always given in expanded form, which not always is the simplest one
Feature Factorization, but works only with one variable.
Equation solving:
BUG In some cases it incorrectly returns “No solution exists”, e.g., for sin(1/x) = 0, and for ln(x*y) = ln( y)
Feature Equation systems, entered one equation per line
Feature Inequalities
Good Apart from some special cases (see above), equation solving seems to work very well, and quite complicated equations and equation systems can be solved symbolically, and even more complicated ones numerically. Periodic solutions are handled well.
Differentiation and integration:
Bad Some more complicated integrals cannot be solved symbolically even if they are elementary, e.g. (e^x-1)/(e^x+1). Nonelementary integrals cannot be solved symbolically.
Other calculus and analysis:
Feature Symbolic minima and maxima, also for periodic functions.
Good It correctly found all minima of sin(1/x), what WolframAlpha did not
Statistics and probability:
Missing Only one-variable statistics
Bad Input of data is inconvenient, especially with frequencies.
Missing No regression
Feature High precision calculation with up to 100 digits significand and 9 digits exponent
2D and 3D graphing​
Missing Graphs are only shown in the “calculation details”, and only one graph can be drawn at a time (or two for equations)
Graph types:
Missing No parametric plots
Feature Implicit plots in 2D, but for equations involving periodic functions only one “branch” is shown, e.g. for sin(x+y) = 0
Display:
Good Both 2D and 3D graphs are high quality
Navigation:
Missing 3D: No complete navigation: Rotation only around z axis, inclination cannot be changed
Bad 3D: One must change between rotate and translate/zoom “modes” (one finger for rotate and 2 for translate/zoom would be more convenient)
Bad Equal / independent scale of axes in 3D does not to work well
Analysis:
Missing Tracing
Environment and user interface​
Variables and functions:
Feature Custom-named variables
Feature User-defined functions that can be used in numeric and symbolic calculations
However, note that variable names other than x and y and function names cannot be typed but must be inserted from a menu. Also, variables other than x and y must be defined in this menu before they can be used in symbolic computation. While this is an inconvenience, one may get used to it.
Input and output:
Missing Parts of expressions cannot be selected and copied, only the whole input or result can be copied.
Missing No undo & Redo
Good Keyboard is well designed.
Bad Since recently, the equal sign must be selected from a menu.
Feature Automatic calculation without tapping enter key
Feature Good “Quick Info”
Adaption and customization:
Feature Tablet layout that makes good use of the space available (but only in landscape layout)
Feature Different predefined keyboard layouts and custom keyboard layouts
Feature Many high-quality themes
Bad For larger calculations (e.g. equation systems) the small display area is inconvenient. When the display text size is reduced, the display becomes also smaller (and the keys larger) so that no vertical space is won.
(When multi-line display is enabled the keys are much too small on phones. A solution is to define a custom keyboard with more columns which makes the keys smaller and thus the keyboard lower.)
Documentation and source​
Good There is a well-organized complete in-app help.
Scientific calculator plus 991​
This app stands out with very extensive and quite powerful calculation functionality.
However, it has some worrying bugs (see below).
Simplification and symbolic integration seem to be very good, but there are problems with equation solving and minima / maxima finding. Its statistics features are quite comprehensive.
2D graphing is good but has inconveniences. 3D graphing is missing.
The user interface is sophisticated, but some functionality is not well organized and documented, and there are many inconveniences.
Numeric and symbolic calculation​
Symbolic computation essentials:
Feature Domain constraints, but they are not exploited sometimes, e.g., Ln(x*y)-Ln(x) with x>0 and y>0 is not simplified to Ln( y). (Input: Simplify(Ln(x*y)-Ln(x), x>0 and y>0))
Equation solving:
BUG When trying to solve an equation by just entering it or using SHIFT-SOLVE, inexact results are often returned, e.g., for sin(x) = x, something like [x=-0.0000083, x=-0.0000017] is returned. Using the Solve function, [x=0] is correctly returned.
BUG Even with Solve, equations involving periodic functions are often not correctly solved, e.g.:
For sin(x) = 0 only 0 is returned as solution; for sin(x) = cos(x) two complicated (although correct) numerical expressions are returned instead of the simple exact solution.
For sin(x) = x/2, sometimes [x=-1.89…, x=1.89…], and sometimes [x=0] is returned.
Feature Equation systems
Differentiation and integration:
Good Powerful symbolic integration, even some nonelementary integrals can be solved with special functions, e.g., logarithmic and exponential integrals and Fresnel integrals (however these functions cannot be plotted).
Also, for complicated integrals like x/(1+sin(x)), for the same input, sometimes operation is not supported is returned, and sometimes the correct solution.
Other calculus and analysis:
BUG Minima and maxima are often not correctly calculated, e.g., for x^4-x^2, only x=-1/4 is returned as minimum, for periodic functions also only one minimum and maximum is returned.
Bad No one-sided limits
Statistics and probability:
It may take some time to learn to use the statistics features, but they seem to work quite well.
Bad Data editor shows no row numbers.
Feature Extensive distribution calculation functionality with many distributions (I did not test this much).
Feature Statistical tests (at least in the Plus 84 83, see below)
Feature Confidence intervals calculations (at least in the Plus 84 83)
Feature It has hundreds of advanced functions that are named as in WolframAlpha and Mathematica, e.g., Series, Fourier, PowerExpand, ApplySides(~600 documented, ~300 I could find in the menus). However,
I did not test them and don’t know if they work reliably.
The inconvenience of the interface (e.g., that parts of expressions cannot be copied, and that equation systems must be entered in one line) makes more complicated calculations tedious, so that I question the usefulness of many of them.
The functions cannot be typed, and there is no alphabetic list from which they can be inserted.
Feature Programming:
It seems to have a full featured programming language that can interface the calculation functionality (Symja). However, the print function and graphics output seem not to work (only the result for the last line is printed automatically). Also, files cannot be saved.
2D and 3D graphing​No 3D graphing.
Bad The functions to draw must be entered in linear form (i.e. not textbook form), or all in one line separated by :
Feature 3 workspaces
Graph types:
Feature Implicit plots
Display:
Bad Grid is quite coarse (and cannot be adjusted)
Navigation:
Feature Independent scale of axes
Bad No simultaneous pan and zoom with 2 fingers
Analysis:
Good Tracing is well implemented, tangent can also be shown
Good Derivative can also be shown, inflection points can also be shown
Environment and user interface​
Variables and functions:
Feature User-defined functions that can be used in numeric and symbolic calculations
Input and output:
Missing Parts of expressions cannot be selected and copied, only the whole input or result can be copied
Missing No undo & Redo
Feature Automatic calculation without tapping enter key
Feature Good “Quick Info”
BUG When copying expressions from the history, it often returns incorrect results, even if it retuned the correct result the first time the expression was entered.
Missing No import / export
Adaption and customization:
UI is good for both small and large phones, but not tablets
Feature Many high-quality themes
Bad Not convenient for symbolic computation, e.g.,
Variable x and equal sign are not accessible with one tap
For most symbolic computation one must switch between the main and a 2nd keyboard, whose keys are not well organized
Equation systems must be entered in one line
Documentation and source​
Bad Help is not well organized
Feature Help can be searched (but not full-text)
Feature Function / command reference with search (but not full-text) and examples
Source: Although the developers do not state this, the app is based on the open source CAS Symja, “inspired by Wolfram Language built-in functions”, and implemented in Java.
Scientific Calculator 300 Plus,
Graphing calculator plus 84 83,
Scientific calculator 36 Plus,
Scientific calculator 30 34,
Calc 991 Scientific Calculator
These apps clearly share much code with the Plus 991, even if different developer names are used: Essentially all UI elements other than the keyboard are the same in each of them, and the Symja CAS library is also used (see above).
Thus, it can be expected that they share most of the advantages and disadvantages with the Plus 991.
The main difference seems to be that they are modeled and named after different Casio and TI calculators, and some have a more limited functionality.
Scientific Calculator 300 Plus seems to be essentially the same as the Plus 991.
Graphing calculator plus 84 83 has a significantly different layout, resembling the TI-84 often very closely. It may be better for statistics. Also, it has an alphabetical function catalog.
Below you see the first three.
Scientific Calculator (by Philip Stephens)​
This app stands out with very powerful 3D graphing and some important user interface features that are missing from most or all other calculator apps (see the feature list).
Numeric computation seems to be good, and the statistics and probability functionality is extensive.
Symbolic computation is very limited however.
There are great graphing features (e.g. implicit surfaces), but also problems with graphing.
While the user interface has some great features, it also has significant inconveniences. Documentation is missing, and many things are not obvious.
Numeric and symbolic calculation​
Symbolic computation essentials:
Bad Calculation with exact values mostly does not work:
E.g, pi²/pi gives pi, but (pi²+pi)/pi already gives a decimal or is not simplified at all. Using the sym() function from sym-menu helps sometimes but not for more complicated expressions
Bad Similarly, expressions with variables are only simplified in very simple cases
Equation solving:
Bad The expected problems with simplification
Bad Equations with parameter variables cannot be solved
Feature Equation systems (up to 3 equations), but maximal one solution is shown
Feature Specification of variable range, but only for equations in one variable
Differentiation and integration
Bad Only very simple integrals can be solved symbolically. Integrating e.g. Ln(x)², or 1/(1+x)^2 returns “undefined”
Specific multiple / nested operations, but special templates must be selected
Other calculus and analysis
Missing No min / max finding,
Bad Sums and products of sequences only numeric
Bad Limits only numeric
Feature Taylor series
Matrices and vectors
Feature Vector calculus
Statistics and probability
(I did not test this much)
Missing No plots
Feature Confidence interval calculations
Feature Many statistical tests
Feature Many probability distribution calculations
Feature Random number generators for normal, Poisson, binomial distributions
2D and 3D graphing​
Graph types:
Missing No parametric surfaces
Feature Implicit plots with high quality
Feature Spherical, and cylindrical graphs
Feature “Inverse” and implicit plots also for polar, spherical, and cylindrical coordinates
Feature Inequality plots
Feature Complex plots where real and imaginary parts are shown in two separate 3d graphs.
In these plots it is however difficult to relate real and imaginary part, especially since rotation is not linked.
Feature Many special functions like Error and Gamma function can be used for graphing
Display:
Good Both 2D and 3D graphs are high quality
Good 2D: Grid with major and minor lines that adapts to zoom by fading lines in and out
Missing No landscape orientation
Navigation:
Feature Independent scale of axes
Good Individual translation in coordinate directions
Good Individual scale of coordinate axes by using two-finger-pinch on the axis-controls, this is not documented!
Bad No translation perpendicular to view-direction
Missing 3D: No equal scale of axes. Two-finger zoom does not work to change the drawing area.
Analysis:
Bad Tracing works very poorly
Environment and user interface​
Variables and functions
Only x, y, z can be used as variables. Additionally, there are 5 memories, and 5 constants can be defined.
Feature User-defined functions
Input and output:
This is the only app where parts of expressions can be selected and copied in textbook notation. This generally works as expected but could be improved. Pasting at a specific location is inconvenient or impossible because long-tap triggers selection.
Missing No undo/redo
Feature Automatic calculation without tapping enter key
Good Keyboard is well designed for numeric calculations
Bad History limited to 10 calculations
Missing No import / export
Adaption and customization:
Good Multi-touch display zoom
Feature Scalable keyboard
Feature Custom colors for all UI elements
Documentation and source​
Missing No help document, only a few hints when using some features for the first time.
Casio fx-CG500 / ClassPad Emulator​
This emulator of Casio’s flagship CAS calculator is clearly one of the most comprehensive and powerful calculator apps.
However, it greatly suffer from emulation related problems, e.g.
Graphs cannot be navigated with multitouch and are low-resolution.
Input of expressions is very inconvenient since the physical keyboard is not emulated, and one has to switch between different virtual keyboards often, which requires much tapping, and the keys are very small on phones.
HP Prime Emulator​
This emulator of HP’s flagship CAS calculator is not quite as comprehensive and powerful as Casio’s.
It shares with it most of the emulation-related problems like low resolution. While it supports multi-touch and the hardware keyboard is emulated, the display area is much smaller than Casio’s.
Graphing Tools
GeoGebra​
This app stands out with exceptional 3D graphing (however there are problems with implicit surfaces).
2D graphing is also good, but tracing is missing.
It may also be used as a “general-purpose calculator”, however the keys are quite small on phones for quick calculations.
Numeric and symbolic calculation seems to be very well in general, but there are problems with simplification, and statistics, scientific constants, and unit conversion are missing.
The user interface is sophisticated and intuitive to use. However, a complete user guide is missing, and some things are not obvious.
Note that GeoGebra consists of several apps (mainly Graphing Calculator, 3D Calculator, CAS Calculator, and Geometry), that are available as a suite or singly.
Numeric and symbolic calculation​
Symbolic computation essentials:
Bad Some simple expressions are not simplified automatically, e.g., e^pi/e^(2pi), or e^x/e^(2x). The Simplify function does simplify them however.
Feature Factorization, expansion, substitution
Feature Domain constraints
Equation solving
Equation solving seems to be quite powerful in general, but there are some problems, e.g., sin(x)=x can only be solved numerically
Feature Equation systems
Feature Inequalities
Differentiation and integration
Good Symbolic integration is powerful, quite complicated elementary and nonelementary Integrals can be solved.
However there are sometimes problems with the simplification. (E.g., for the integral of x/(1+sin(x)), a very complicated expression is shown while the solution can be written much simpler. When differentiating the retuned solution, an even more complicated expression is shown, not the originally integrated expression)
Other calculus and analysis
Feature Taylor expansion
Feature First and second order ordinary differential equations solving, numeric and symbolic.
Matrices and vectors
Bad Matrices must be entered in linear form
Statistics and probability
Missing No statistics
Missing No regression
Feature Probability distribution calculator with graphical UI
Missing No base-n calculation
Missing No scientific constants and unit conversion
2D and 3D Graphing​
Graph types
Feature Implicit plots, however it does not draw more complicated implicit surfaces like 4*(x^2+y^2+z^2)+16*x*y*z = 1 (Cayley surface)
Feature Slope field plots for differential equations
Display
Feature 2D: Customizable grid with major and minor lines
Feature 3D: optional semitransparent x-y-plane and x-y-grid
Feature 3D: variable transparency and wireframe surfaces
Feature 3D: Orthographic and perspective projection
Feature Animation of parameter variables with sliders
Navigation
Feature 3D: Automatic (continued) rotation, parameters can be changed while the graph is rotating
Feature 3D: Augmented reality navigation
Analysis
Missing Tracing
Environment and user Interface​
Variables and functions:
Feature Custom-named variables for storing values and for use in symbolic computation
Feature User-defined functions that can be used in numeric and symbolic calculations
Feature Piecewise functions
Input and output:
Missing Parts of expressions cannot be selected and copied, only the whole input or result can be copied.
Feature Automatic calculation without tapping enter key
Feature GeoGebra is also available for iOS, Windows, macOS, Linux, and as web interface. Documents from one device can be saved to the cloud and opened on another.
Adaption and customization:
Bad The keys are quite small for phones
Good Quite optimal for tablets
Documentation and source​
Missing No complete user guide. This is a real problem since some things are not obvious.
Feature Function / command reference with search (but not full-text) and examples
Bad Help is fetched from the internet on demand and takes sometimes long to load (several seconds)
Open Source GeoGebra is essentially open source and uses the open-source CAS Giac/Xcas.
Desmos Graphing Calculator​
This app stands out with very good 2D graphing and “flexible” regression.
However, it has no 3D graphing and no advanced calculation functionality (Desmos Scientific Calculator also has no advanced calculation functionality).
Good Navigation is intuitive and very smooth.
Feature Animation of parameter variables with sliders.
Feature Regression is not limited to fixed functions as in most other calculators. E.g., for a logarithmic model, not only the function y = a+b*ln(x) can be used, but additional parameters can be used, e.g., y = a+b*ln(x-c).
Feature Also available for iOS and as web interface. Documents from one device can be saved to the cloud and opened on another.
It is very easy to use and has a good user guide.
Grapher – Equation Plotter​
This is a good 2D and 3D graphing app, however it has important disadvantages against, for example, GeoGebra and the app by Philip Stephens, e.g.
No “textbook notation”, and no keys for functions like sin(), they must be typed letter by letter
No implicit surfaces
When navigating in 3D, the graphs are updated only after the fingers are lifted
Feature It can draw complex functions using domain-coloring. Also, it can draw both real and complex parts for functions of a real variable.
Visual Math 4D​
This app can produce beautiful 3D graphs, however it has important disadvantages against GeoGebra and the app by Philip Stephens, e.g.
Variable ranges cannot be changed by touch-navigation
Implicit surfaces are not reliably drawn, the algorithm seems not to adapt to the selected variable ranges
Feature It can draw 3D vector fields.
Graphing Calculator 3D​
This is a 3D graphing app under development. It cannot currently be recommended because e.g.
Variable ranges cannot be changed by touch-navigation
Only one graph can be drawn at a time
Problems with Implicit surfaces
For complex plots, only one component is drawn at a time
No “textbook notation”, and no keys for functions like sin(), they must be typed letter by letter
CAS Answer Engines
WolframAlpha​
This app stands out with exceptional calculation capabilities and the possibility to show in-depth information on mathematical (and other) definitions, concepts, and data.
Intermediate calculation steps can often be shown.
Graphing is very limited but still useful.
The user interface is unique in that natural language can often be used to input problems.
Numeric and symbolic calculation​
Symbolic computation essentials
Feature Factorization and expansion
Feature Assumptions
Equation solving:
Feature Equation systems
Feature Specification of variable ranges
Feature Inequalities
Differentiation and integration
Good Very difficult integrals can be calculated. If the result involves special functions, these can be defined
Other calculus and analysis:
BUG Finding minima and maxima: For some (even easy) problems, it returns not all solutions, e.g., for minimize sin(1/x), it returns x = -2/(277pi)
Feature Taylor expansion
Feature Differential equations solving
Matrices and vectors:
Feature Vector calculus
Statistics and probability:
Feature Histograms and box plots
Feature Confidence intervals calculations
Feature Many statistical tests
Feature Many probability distribution calculations
2D and 3D graphing​
Graph types:
Implicit plots, but more complicated implicit surfaces like 4*(x^2+y^2+z^2)+16*x*y*z = 1 (Cayley's cubic surface) cannot be drawn
Feature Complex plots, but not with domain-coloring
Display
Bad Plots are quite small and cannot be enlarged
Missing Navigation
Missing Analysis
Environment and user interface​
Bad Internet connection always required
Good Nevertheless, results appear very fast
Missing Values cannot be saved to variables
Feature Intermediate calculation steps
Input and output:
Missing No input in textbook notation (however the web interface at wolframalpha.com has this possibility).
Missing No undo/redo
Feature Quick info
Adaption and customization:
Missing No dark theme
Documentation and source​
User guide seems not necessary
Feature Very many useful examples
Advanced Learning Calculators
Please note that as I said in the introduction, I evaluate also these apps only for their ability to efficiently solve mathematical problems, not for their pedagogical values.
Symbolab​
This app stands out with powerful symbolic computation and an easy-to-use and quite efficient interface.
Equation solving seems to work well, and many difficult integral can be calculated.
Intermediate calculation steps can often be shown.
3D graphing is missing and 2D graphing very bad.
Numeric and symbolic calculation​
Missing Polar coordinates for complex numbers seem not to be supported
Symbolic computation essentials:
Feature Factorization and expansion
Equation solving:
Bad Some simple equations cannot be solved, e.g. sin(x) = x/2.
Good Apart from some cases (see above), equation solving seems to work very well, also for periodic functions
Feature Equation systems
Feature Inequalities
Differentiation and integration:
Good Symbolic integration seems to be powerful, quite complicated elementary and nonelementary Integrals can be solved.
(the complicated integral of x/(1+sin(x)) is not well simplified)
Other calculus and analysis:
Bad Minima and maxima often cannot be calculated, e.g. for sin(1/x)
Missing For infinite sums, it only returns if it converges, not the value, e.g. for 1/n².
Feature Taylor expansion
Feature Differential equation solving
Missing No random numbers and prime factorization
Statistics and probability:
Missing Only one-variable statistics, no data editor
Missing Regression
Missing No Scientific constants and unit conversion
2D and 3D graphing​Missing No 3D graphing.
Missing Most important 2D graphing features are missing. Graphs are not always correctly drawn (try sin(1/x)). Navigation is juddery and inconvenient. Input of functions in the list does not work well.
There is also a separate app called Symbolab Graphing Calculator, but it does not work better.
Environment and user interface​
Bad Internet connection always required
Good Nevertheless, results appear very fast
Missing Values cannot be saved to variables
Feature Intermediate calculation steps
Input and output:
The keyboard is quite well designed for phones and leaves a large area for the display. The fly-out keys work well.
Missing No copy and paste
Missing No undo/redo
Feature There is also an iOS app and a web interface. Problems can be synced across devices.
Adaption and customization:
Missing Display text size not adjustable
Documentation and source​
Missing No complete user guide
Feature Very many useful examples
Maple Calculator​
This app stands out with powerful symbolic computation and an easy-to-use and quite efficient interface.
Complicated integrals can be calculated, but there are sometimes problems with simplification. There are significant bugs and problems with equation solving. No calculation of minima and maxima.
Intermediate calculation steps can often be shown.
Graphing is very limited but still useful.
Numeric and symbolic calculation​
Symbolic computation essentials
Bad Expressions are not always displayed in the simplest form, e.g., for 2x^2=pi, it shows the positive solution as √(2)√(pi)/2 instead of √(pi/2) (although in the solution steps, it shows ±√(pi/2) as “intermediate step”)
Equation solving:
BUG Equations involving periodic functions are not correctly solved, e.g., for sin(x)=1/2, only one solutions is shown (i.e., not even all solutions between 0 and pi are shown), for sin(1/x)=0, it shows the empty set as solution
Feature Equation systems
Feature Inequalities
Differentiation and integration:
Good Powerful symbolic integration, nonelementary integrals can be solved with special functions, but no further information is given and no graph is shown. There are sometimes problems with simplification, e.g. for x/(1+sin(x)).
Other calculus and analysis:
Missing No minima and maxima finding
Feature Differential equation solving
Missing No base-n calculation
Missing No random numbers and prime factorization
Statistics and probability:
Missing No data editor
Missing No regression
Missing No scientific constants and unit conversion
2D and 3D Graphing​
Missing Only one 3D graph can be drawn at a time (in 2D, multiple functions must be entered in a vector)
Graph types:
Missing No polar plots, not parametric plots
Display
Missing No custom colors
Navigation
Missing Ratio of axes scale is set by the app and cannot be changed
Missing 3D: No complete navigation, graphs are drawn in a fixed variable range that cannot be adjusted
Missing No analysis features
Environment and user interface​
Bad Internet connection required for most calculations. Even for the simplest problems, it takes about 1 second until the results are shown, sometimes a bit longer.
Missing Values cannot be saved to variables
Feature Intermediate calculation steps
Input and output:
Good The keyboard is well designed for phones. It is quite efficient to use while leaving a large area for the display.
Missing No copy and paste (although there is a special mechanism to select parts of expressions)
Feature Automatic calculation without enter, even graphs are shown and updated automatically.
Feature Quick Info
Missing No history
Bad When the app is closed, previous calculation is not restored
Feature Calculations can be copied to desktop Maple (did not test this)
Adaption and customization:
Missing Text size cannot be adjusted
Missing No dark mode
Bad Sometimes the app enters fullscreen mode for no reason
Documentation and source​
Missing No user guide, just a FAQ that cannot be searched
Graphing Calculator + Math​
This app stands out with very good (although not optimal) 2D graphing, quite good 3D graphing, and some useful user interface features that are missing from most or all other apps.
Its calculation capabilities are quite limited however (e.g., simplifications are often not done, more complicated equations cannot be solved, no symbolic integration).
While the user interface has very useful features, it also has significant inconveniences.
The user manual is comprehensive and excellent for people just learning math.
Numeric and symbolic calculation​
Symbolic computation essentials:
Bad Limited calculation with exact values (e.g., logarithms are always evaluated numerically)
Bad Limited simplification, e.g. e^(x+1)/e is not simplified
(however, it simplifies 2x/(x^2-1)-1/(x-1) which Hiper does not simplify)
Feature Polynomials are displayed in both expanded and factored form
Equation solving:
Bad Equations involving periodic functions cannot be solved symbolically
Bad Equations with parameter variables cannot be solved
Feature Inequalities
Differentiation and integration
Bad For symbolic differentiation the simplification problems are an issue, e.g., the derivative of ln(√x) is given as 1/(2x^(1/2)* √x) instead of 1/(2x).
Missing No symbolic integration
Other calculus and analysis:
Bad Sums and products of sequences only numeric
Bad Limits only numeric
Statistics and probability
Missing Only 1 variable statistics, no data editor
Missing Only linear regression
Missing No bit-operations
2D and 3D graphing​
Missing In 3D, only one graph can be shown at a time
Feature Multiple workspaces
Graph types:
Feature Implicit plots in 2D and 3D.
Good Also more complicated implicit surfaces can be drawn, e.g. 4*(x^2+y^2+z^2)+16*x*y*z = 1 (Cayley's surface), which GeoGebra does not draw. However, Scientific Calculator by Philip Stephens draws implicit surfaces in much better quality.
Display
3D: Perspective projection only
3D surfaces display: Wireframe only
Navigation
Feature Independent scale of axes in 2D, well implemented.
Missing No simultaneous pan and zoom with 2 fingers
3D: Complete navigation, but not very efficient (and unusual)
Analysis
Good Tracing is well implemented, also “reverse” tracing with a horizontal line
Environment and user interface​
Variables and functions:
Feature Custom-named variables
Feature User-defined functions that can be used in numeric and symbolic calculations
Input and output
Bad Much functionality is hidden behind unlabeled keys (e.g., for integrals and derivatives, long-tap the x^n key!)
Missing Input of expressions in linear notation (simultaneously, they are displayed in textbook notation, which can also be tapped to position the cursor). The advantage over most other calculators is that parts of expressions can be selected and copied at least in this way.
Bad Very limited undo
Feature It has a limited “notebook interface” where elements can be rearranged and comments can be added.
Feature Multiple workspaces, however all variables and functions are shared
Adaption and customization:
The keys are quite small for phones (the keyboard can “resized” to fewer, larger keys, but then important functionality is missing).
Bad User interface does not adapt to different screen sized and orientations
Documentation and source​
Good The user manual is really comprehensive and excellent for people just learning math, available online and as PDF.
Photomath, ​
Mathway, ​
Microsoft Math Solver​
These apps are similar to Symbolab and Maple Calculator (they also recognize problems from photos and show step-by-step solutions), however their calculation capabilities seem to be more limited, as the following comparison shows.
SymbolabMaplePhotomathMathwayMicrosoftsolve sin(1/x) = 0correct not simplifiedwrong (empty set)xxcorrectsolve ln(x) = -xcorrectcorrectxcorrectxsolve sin(x) = x/2xonly 1 solutionxcorrectxsolve ln(x*y) = y*ln( y) for xcorrectcorrect not simplifiedxcorrect not simplifiedcorrectintegrate (e^x+1)/(e^x-1)correctcorrect not simplifiedcorrectxxintegrate x/ln(x)correctcorrectxxxintegrate 1/(1+sin(x))correctcorrectcorrectxcorrectintegrate x/(1+sin(x))correct not simplifiedcorrect not simplifiedxxx
HiEdu Scientific Calculator,​
Scientific Calculator He-580​
These apps may be good for learning math, however their capabilities are very limited, e.g.:
No symbolic computation
The equation solver can only give one solution
Graphing is limited to simple polynomials
Also, they hide status bar and action bar, and there seems no way to show them permanently.
Advanced calculators of other types
MATLAB Mobile​
This app allows to create and execute MATLAB scripts in the cloud.
Feature MATLAB is a full-featured programming language, extensive numeric and symbolic calculation functionality is available, and 2D and 3D graphs can be created (but not navigated).
The standard editor seems to work well and provides a custom keyboard, autocompletion, and syntax highlighting.
A command-line is also available.
Feature For tablets, a “notebook interface” is also available, where the code is placed on an interactive document together with the calculation results, graphics, and formatted text.
While this concept is optimal for longer complicated calculations, the app has serious issues with this currently. E.g., a stable internet connection seems to be always required while editing, the cursor cannot be moved with the arrow keys, and when text is selected, the keyboard disappears.
Already for working with the standard editor, the dependence on the cloud may be a disadvantage of course. Even with Wi-Fi, the connection gets lost from time to time, and one has to wait until the program is executed, or until one can continue editing.
Maxima on Android​
This is the long-established open-source computer algebra system Maxima (with roots going back to the 1960s) with a command-line interface.
Sadly, it was not updated since 2018, while Maxima is under continuous further development.
Features include
Autocompletion of commands
Results in LaTeX
2D and 3D graphs using Gnuplot (which cannot be navigated however )
User guide for Android and complete Maxima manual
Xcas Pad​
This is the open-source computer algebra system Xcas/Giac with a command-line interface.
Compared to Maxima, it lacks graphing and a user manual (a command reference is available).
Note that GeoGebra is based on Xcas/Giac.
micro Mathematics​
This is a calculator app with a “notebook interface”:
Feature Definitions of variables and functions, calculations, 2D and 3D graphs, text, and images can be placed on an interactive document.
While this concept is optimal for longer complicated calculations, the interface of the app is quite inefficient. For example, to enter sin(x)^2+1, you have to
Type sin(x
Long-tap sin
Type ^2
Long-tap sin
Tap the “expand selection” button
Type +1
(This could admittedly be done more efficiently by starting with the outermost operator, i.e. + in this case. But note that when modifying an expression, e.g. adding a summand, this will not work.)
The calculation and graphing capabilities are quite limited:
No symbolic calculation.
The equation solver cannot find more than one solution and does not work reliably.
Graphs cannot be navigated by touch, the variable ranges, and view angles for 3D, must be typed.
The z-range for 3D plot cannot be defined.
No implicit plots.
A good user manual is available.
Open Source, see here.
DYsolve Math Solver​
This is another calculator app with a “notebook interface”.
While expressions are typed in standard linear notation, which is faster than the method of micro Mathematics, there are serious problems currently, e.g.
Selecting, editing, placing and moving elements does not work well, and sometimes not at all
A bug on newer devices, the whole screen becomes blue sometimes and working on is not possible
The keys are very small on phones
The calculation and graphing capabilities are quite limited as well. I has a numeric solver for equation systems and ordinary differential equations (I did not test this), however
No symbolic calculation
3D graphs can be navigated using sliders only, which is inefficient, and view changes are not persisted
Z-range for 3D plot cannot be defined.
No implicit plots.
It is stated that it supports if/else blocks and for and while loops, however this is not described in the help and I did not find examples.
The app is aimed at engineering students, and there are worksheets for example problems available online.
I will include screenshots when the user interface is improved.
SMath Studio​
This is a further calculator app with a “notebook interface”.
It seems to support differential equation solving and programming, however the user interface is very limited, and I could not find out how to enter more complicated expressions.
TechCalc Scientific Calculator​
This is a uniquely comprehensive “multi-function calculator” with many specialized calculation modes for mathematical, scientific, engineering, and financial applications.
Feature It includes many important mathematical, mechanical, electrical, chemical, financial, and other formulas, ready for calculation. Further custom formulas can be added.
Feature It also has reference sections, e.g. differentiation & integration rules, statistics formulas, the periodic table, etc.
Feature There are several further useful features, it is appropriately called a "Swiss Army Knife".
While it has some advanced functionality like symbolic integration and 3D graphing, it is in general unsuitable for advanced mathematics:
The calculation functionality is distributed over many modes and sub-modes, e.g. for symbolic derivatives, numeric derivatives, symbolic integrals, numeric integrals, limits, etc.
Expressions involving derivatives, integrals etc. are not supported, so that for example the divergence or curl of a vector field cannot be calculated in one step.
Similarly, the graphing functionality is distributed so that for example a function graph and an implicit graph cannot be plotted together.
Further, textbook-style input is not supported, and editing expressions is inconvenient: To make changes in places other than the end, one must switch to an “edit mode” by long-tap, and switch back again before the result can be shown.
The interface is idiosyncratic, but well-organized comprehensive help is included.
Scientific Calculator Scalar​
This is a calculator app with a command-line interface, some advanced calculation features, some scripting functionality, and limited 2D graphing.
Feature Advanced calculation features:
Expressions can be saved to variables (“arguments”) and reference each other
Functions can be defined and can reference each other, also recursively
Variadic and piecewise functions can be defined
Sums and products with conditionals
“rep” statement for repetition with a fixed range of variable values
“if” function for simple alternatives
Very many special functions, like gamma, log-gamma, and digamma function, error function, etc.
Prime-counting function using the sieve of Eratosthenes, and approximations
Arbitrary-base numbers
Random variables for different ranges and distributions
Feature Scripts can be created, and the editor works well. However, the possibilities are quite limited since there are no flexible loops, no GOTO, and control structures cannot be nested.
Feature 2D graphing is well suited for discrete functions.
Otherwise, the calculation and graphing capabilities are quite limited:
No symbolic calculation
The equation solver cannot find more than one solution
Graphs cannot be navigated by touch, the variable ranges must be typed
(they can be zoomed and then moved by touch, but are not recalculated by this)
Only 3 functions can be drawn at a time
No parametric and implicit plots
No 3D graphing
The keyboard is quite well designed, with scrollable key rows. It is efficient for phones while leaving a large display area. However, it does not adapt to tablets.
The app is easy to use, and there are many in-app hints, examples, video tutorials, and a long user manual, which is quite repetitive however.
Source The expression parser is open source, see here.
Intermediate scientific and graphing calculators
I use the feature list for basic scientific calculators as baseline here (scroll down this post).
Graphing Calculator – Algeo​
This app has a simple user interface but some advanced features like 2D graphing.
The textbook-notation input and the always visible calculation history are very convenient.
Calculation:
Missing Random numbers, prime factorization, lcm
Feature Fractions
Feature Complex numbers
Feature Very limited equation solver (returns NaN for sin(x) = 1 and 1/x = -1)
Feature Symbolic differentiation, Numeric integration, Taylor series
Feature One variable statistics
Feature Calculation with units and unit conversion
Feature scientific constants
Graphing:
Feature 2D cartesian, polar, and parametric plots with tracing
Memories/variables, functions:
Bad Only 4 memories, saving is inconvenient
Input and output:
Feature Input in textbook notation
Feature Automatic calculation without tapping enter key
Number formatting:
Missing No custom number of decimal places
Jade Scientific Calculator​
This is another app with a simple user interface but some advanced features.
The textbook-notation input and the always visible calculation history are very convenient.
It has some useful customization options.
Calculation:
Missing Random numbers, prime factorization, gcd, lcm
Feature Calculation with exact expressions like fraction, roots, pi
Feature Simplification of expressions with variables
Feature Numeric and symbolic differentiation and integration,
1/(1+sin(x)), but not others
but no equation solving
Feature Complex numbers (rectangular)
Feature Scientific constants
Input and output:
Feature Input in textbook notation
Number formatting
Missing No custom number of decimal places
Adaption and customization
Feature Different keyboard sizes
Missing No user guide, and some things are not obvious
Graphing Calculator (X84)​
This app is designed to closely resemble the TI-84, while making use of the touch-interface of Android devices.
It seems to do this really well, but graphing could be implemented better.
Also, it seems to include virtually all functionality of the TI-84 calculators, including programming in TI-BASIC (but not Python).
Calculation:
Feature Complex numbers
Feature Calculation with fractions
Feature Base-n calculation
Feature Numeric equation solving (1 real variable)
Feature Numeric differentiation and integration
Feature Numeric minima and maxima finding
Feature Sums and products of sequences
Feature Matrix calculation
Feature Base-n calculation: conversion and bitwise operations for bases 2 to 16
Feature One and two variable statistics with histograms
Feature Statistical tests
Feature Probability distributions
Feature Confidence intervals
Feature Regression with plots
Feature Unit conversion
Feature Scientific constants
Graphing:
Feature 2D cartesian, polar, and parametric plots with tracing
Bad No equal-axes-zoom, no simultaneous pan and zoom with 2 fingers
Bad Quality is unnecessarily low (visible for functions like sin(1/x))
Bad Grid not adapting well to zoom
Programming
Feature TI-BASIC
Memories/variables, functions
Feature Saving expressions
Input and output:
Feature Input in textbook notation
Feature Undo & Redo
Bad Status bar is hidden and cannot be shown permanently
Feature Function / command reference
Class Calc Graphing & Statistics​
This app has a quite sophisticated interface, and statistics and regression seem to be implemented well.
However, it has serious bugs and problems, e.g.:
For the derivative of e^x, it returns something like (1196457)^-x*(32535443)^x (a fraction-approximation of e^x)
For the integral of 1/(1+sin(x)) it incorrectly returns ln(1+sin(X))
It seems not possible to solve equations
No complex numbers
Zooming of graphs does not work well
The web interface has the same problems.
NumWorks Emulator​
This is an emulator of a good intermediate scientific graphing calculator, however it is quite inconvenient since it supports input over the emulated keyboard only.
Scientific Calculator Advanced​
This app has some advanced features like 2D graphing, matrix calculations, and equation solving. However, the user interface is inconvenient for this functionality. Also the status bar is hidden and cannot be shown permanently.
Taculator Graphing Calculator​
This is another app designed to closely resemble the TI-84.
Serious problems are immediately evident:
Lag between tapping a key and the reaction, getting worse with using the app (restarting helps)
Entering 2π gives 23.1415…
2D graphing: when zooming, the graphs are not recalculated, so that they get jaggy.
(The iPhone version has fewer problems.)
Also, the lifetime Pro version costs $64 (against $2 / $4 for the best apps).
Basic scientific calculators​
I use the feature list for basic scientific calculators as baseline here (scroll down this post).
ChampCalc Scientific Calculator​
This is a very sophisticated and customizable basic scientific calculator.
Memory/variable management is better than in most advanced calculators. Also, it has advanced base-n calculation and a large and well-organized library of units and scientific constants. There is a comprehensive user guide.
Calculation:
Missing gcd, lcm
Feature Fractions
Feature Advanced base-n calculation for different integer sizes
Feature Complex numbers
Feature One variable statistics
Feature Many scientific constants
Feature Many unit conversions
Feature Large numbers and high precision with up to 100 decimals of significand
Memories/variables, functions:
Feature Memory and variables manager
Feature Storage of expressions
Input and output:
Feature Syntax highlighting and highlight of matching brackets
Feature Automatic calculation without tapping enter key
Number formatting
Feature Repeated decimals
Feature Quick info with prime factorization and value as fraction, mixed, DMS, Roman, BIN, OCT, HEX
Adaption and customization:
Feature Many useful settings like long-tap time
Feature Many high-quality themes and custom colors
Panecal Scientific Calculator​
This app may be very efficient for longer simple calculations.
In contrast to most other apps, parts of expressions can be selected and copied.
Calculation:
Missing Random numbers, prime factorization, gcd, lcm
Feature Base-n calculation
Feature Many scientific constants
Feature Many unit conversions
Input and output
Feature Parts of expressions can be selected and copied
Feature Large multi-line display
Scientific Calculator by CalcTastic​
This is a quite sophisticated basic scientific calculator with advanced base-n calculation and a stack-interface.
The always visible history is convenient, however, the cursor cannot be moved within the input, and copy and paste seems not to work, so previous calculations cannot be modified.
Calculation
Missing Prime factorization, gcd, lcm
Feature Advanced base-n bitwise and bit operations for different integer sizes
Feature Calculation with fractions
Feature Complex numbers
Feature One variable statistics
Feature Unit conversion
Feature Scientific constants
Memories/variables, functions
Missing Variables cannot be used in expressions (only value inserted)
Input and output
Missing Copy and paste does not work
Bad History, but inputs cannot be modified
Adaption and customization
Feature Special keyboard layout for tablets
Feature Many high-quality themes
MathsApp Graphing / Scientific Calculator​
This is a quite sophisticated scientific calculator with some advanced features.
The always visible history is convenient, however the keyboard seems to be unnecessarily small.
The price for the full version is quite high comparably.
Calculation
Feature Advanced base-n calculation for different integer sizes
Feature Complex numbers
Feature One variable statistics and Probability distributions
Feature Matrix calculation
Feature Scientific constants
Graphing:
Feature 2D cartesian and polar plots with display of coordinates of intersections, zeros, extrema, but no tracing
Feature Import / export of history
Adaption and customization
Missing No light theme
RealCalc Scientific Calculator​
This is a basic old-style one-line scientific calculator. Its more “advanced” features include result history, 10 memories, unit conversion and physical constants, and fraction calculation.
reserved
If this review was helpful to you, I would appreciate if you would check out App Finder.
The review was in this form only possible with it, and it will enable the creation of comprehensive reviews of other kinds of apps, by me or by other people.
Further, App Finder can help anyone to find Android apps with specific features easy, fast, and reliably, as I show here and in the following post. This will also help the developers of innovative high-quality apps that are not yet very popular.
Note that I provide this review and possible future reviews for free and without ads, and the essential functionality of App Finder is also free and without ads.
However, operating App Finder is quite expensive (since Google does not provide an API, the data must be scraped regularly, a page for each about 2.4 million apps for 180 countries = 430 million pages, plus more pages do discover new apps, which is about 73 TB of data. Further, a high-performance database server is needed to handle the search queries), and the creation of App Finder and this review obviously took a lot of time.
Therefore, I would appreciate a review on Google Play and the purchase of an App Finder Plus license, it would contribute to the operation and improvement of App Finder and the creation of other innovative high-quality software.

Categories

Resources