Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@2:0e96f4495b43, 2015-06-26 (annotated)
- Committer:
- okano
- Date:
- Fri Jun 26 10:16:24 2015 +0000
- Revision:
- 2:0e96f4495b43
- Parent:
- 1:eb37ff1cb458
- Child:
- 3:4ef74510cc5b
divided to multiple modules
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okano | 0:6be9f112093f | 1 | #include "mbed.h" |
okano | 2:0e96f4495b43 | 2 | #include "calc.h" |
okano | 0:6be9f112093f | 3 | |
okano | 0:6be9f112093f | 4 | #define MAXOP 100 |
okano | 0:6be9f112093f | 5 | |
okano | 0:6be9f112093f | 6 | int main() |
okano | 0:6be9f112093f | 7 | { |
okano | 0:6be9f112093f | 8 | int type; |
okano | 0:6be9f112093f | 9 | double op2; |
okano | 0:6be9f112093f | 10 | char s[ MAXOP ]; |
okano | 0:6be9f112093f | 11 | |
okano | 0:6be9f112093f | 12 | while ( (type = getop( s )) != EOF ) { |
okano | 0:6be9f112093f | 13 | switch( type ) { |
okano | 0:6be9f112093f | 14 | case NUMBER: |
okano | 0:6be9f112093f | 15 | push( atof( s ) ); |
okano | 0:6be9f112093f | 16 | break; |
okano | 0:6be9f112093f | 17 | case '+': |
okano | 0:6be9f112093f | 18 | push( pop() + pop() ); |
okano | 0:6be9f112093f | 19 | break; |
okano | 0:6be9f112093f | 20 | case '*': |
okano | 0:6be9f112093f | 21 | push( pop() * pop() ); |
okano | 0:6be9f112093f | 22 | break; |
okano | 0:6be9f112093f | 23 | case '-': |
okano | 0:6be9f112093f | 24 | op2 = pop(); |
okano | 0:6be9f112093f | 25 | push( pop() - op2 ); |
okano | 0:6be9f112093f | 26 | break; |
okano | 0:6be9f112093f | 27 | case '/': |
okano | 0:6be9f112093f | 28 | op2 = pop(); |
okano | 0:6be9f112093f | 29 | if ( op2 != 0.0 ) |
okano | 0:6be9f112093f | 30 | push( pop() / op2 ); |
okano | 0:6be9f112093f | 31 | else |
okano | 0:6be9f112093f | 32 | printf( "error: zero divisor\n" ); |
okano | 0:6be9f112093f | 33 | break; |
okano | 0:6be9f112093f | 34 | case '\n': |
okano | 1:eb37ff1cb458 | 35 | printf( " %.8g\n", op2 = pop() ); |
okano | 1:eb37ff1cb458 | 36 | push( op2 ); |
okano | 1:eb37ff1cb458 | 37 | break; |
okano | 1:eb37ff1cb458 | 38 | case 0x0D: |
okano | 1:eb37ff1cb458 | 39 | // just ignore |
okano | 0:6be9f112093f | 40 | break; |
okano | 0:6be9f112093f | 41 | default: |
okano | 0:6be9f112093f | 42 | printf( "error: unknown command %s (0x%02X)\n", s, *s ); |
okano | 0:6be9f112093f | 43 | break; |
okano | 0:6be9f112093f | 44 | } |
okano | 0:6be9f112093f | 45 | } |
okano | 0:6be9f112093f | 46 | } |