just a sample of what can be done

Dependencies:   mbed

PRN電卓プログラム

「プログラミング言語C (K&R本)」に出てくる例を元にした,RPN計算機です.

hp写真はイメージです

このプログラムは..

Committer:
okano
Date:
Fri Jun 26 11:01:35 2015 +0000
Revision:
3:4ef74510cc5b
Parent:
2:0e96f4495b43
Child:
4:b4c8aee2ecad
displaying stack by hitting [Enter] and operators

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okano 2:0e96f4495b43 1 #include "mbed.h"
okano 2:0e96f4495b43 2 #include "calc.h"
okano 2:0e96f4495b43 3
okano 2:0e96f4495b43 4 #define MAXVAL 100
okano 2:0e96f4495b43 5
okano 2:0e96f4495b43 6 int sp = 0;
okano 2:0e96f4495b43 7 double val[ MAXVAL ];
okano 2:0e96f4495b43 8
okano 2:0e96f4495b43 9 void push( double f )
okano 2:0e96f4495b43 10 {
okano 2:0e96f4495b43 11 if ( sp < MAXVAL )
okano 2:0e96f4495b43 12 val[ sp++ ] = f;
okano 2:0e96f4495b43 13 else
okano 2:0e96f4495b43 14 printf( "error: stack full, can't push %g\n", f );
okano 2:0e96f4495b43 15 }
okano 2:0e96f4495b43 16
okano 2:0e96f4495b43 17
okano 2:0e96f4495b43 18 double pop( void )
okano 2:0e96f4495b43 19 {
okano 2:0e96f4495b43 20 if ( sp > 0 )
okano 2:0e96f4495b43 21 return val[ --sp ];
okano 2:0e96f4495b43 22 else {
okano 2:0e96f4495b43 23 printf( "error: stack empty\n" );
okano 2:0e96f4495b43 24 return 0.0;
okano 2:0e96f4495b43 25 }
okano 2:0e96f4495b43 26 }
okano 3:4ef74510cc5b 27
okano 3:4ef74510cc5b 28 void show_stack( void )
okano 3:4ef74510cc5b 29 {
okano 3:4ef74510cc5b 30 for ( int i = 0; i < sp; i++ )
okano 3:4ef74510cc5b 31 printf( "%3d: %f\n", i, val[ i ] );
okano 3:4ef74510cc5b 32 }