SYSTEM AND METHOD FOR PERFORMING CALCULATIONS USING A PORTABLE ELECTRONIC DEVICE
An apparatus and method for performing calculations is provided so that a paradigm of a tape is utilized in a calculator application that executes on a computing platform and which is configured to enable a user to see and interact with multiple virtual tapes that each show numerical values and operators. Each tape functions as a user-accessible memory and a memory value may be recalled from any one tape and that value placed on any other tape. The calculator application is configured to enable the user to enter a sequence of values and operators which are all displayable on a given tape, as well as support the user's ability to edit any value or operator that was previously entered on that tape. Calculations are updated to reflect the user's edits on both the tape currently being edited and any other tape that uses the edited tape as a memory.
Latest HALE SOFTWARE CONCEPTS, INC. Patents:
Portable electronic devices such as calculators and multipurpose computing platforms that can run software applications that provide calculator functionalities typically display information line by line (i.e., one line at a time). Such information may include numerical values that a calculator user enters using a user interface such as a keypad which includes number keys (i.e., buttons) as well as keys for mathematical binary operators and unary functions. Many calculators interpret keystrokes using an immediate execution mode. For binary operations (e.g., addition, subtraction, multiplication, division) in immediate execution mode, intermediate results are calculated as each key is pressed for each operation. The order of operations in mathematical expression is not taken into account by immediate execution mode calculators unless brackets or parentheses are supported by the calculator and utilized by the user. For unary operations (e.g., square root, reciprocal, exponents, etc.), the user keys the numerical value in first, followed by the unary operator. The immediate execution mode of operation compares with that utilized in formula-based calculators where the user types in an entire expression and then presses an “enter” key to evaluate the expression.
Most users find immediate execution mode calculators to be straightforward enough to use, particularly for short and simple calculations. However, even for simple calculations, mistakes can easily be made and be difficult to spot. Errors can occur using many current calculators for a variety of reasons and commonly result because of keystroke errors and/or use of an incorrect sequence of button pushes that misapplies precedence rules when performing calculations of expressions in which the order of operations affects the results. The inability to see prior entries before the current line and the fact that operators are not typically shown on the calculator's line-by-line display can compound difficulties because the user cannot see that an error was made or where in a given calculation it was made. Many calculators support use of a memory feature to help improve calculator functionality (and help address, for example some of the aforementioned issues in operation precedence) by enabling users to store a result of a calculation and then recall the result in a subsequent calculation. However, the number of available memories is typically limited in many consumer-oriented calculators to just one or two. In addition, the calculations used to create the stored results can still be prone to the errors that result from the limitations of the line-by-line display.
This Background is provided to introduce a brief context for the Summary and Detailed Description that follow. This Background is not intended to be an aid in determining the scope of the claimed subject matter nor be viewed as limiting the claimed subject matter to implementations that solve any or all of the disadvantages or problems presented above.
SUMMARYAn apparatus and method for performing calculations is provided so that a paradigm of a tape, like that employed by a traditional adding machine or printing calculator, is utilized in a calculator application that executes on a computing platform and which is configured to enable a user to see and interact with multiple virtual tapes that each show numerical values and operators using a scrollable user interface window. Each tape functions as a user-accessible memory and a user may recall a memory value (which is typically the last value on the tape) from any one tape and place that value on any other tape, for example, as part of a calculation. The calculator application is configured to enable the user to enter a sequence of values and operators which are all displayable on a given tape, as well as support the user's ability to edit any value or operator that was previously entered on that tape. The calculator application will update the calculations to reflect the user's edit on both the tape currently being edited and any other tape that uses the edited tape as a memory.
In various illustrative examples, the calculator application is embodied substantially using software that executes on a portable electronic device such as a smartphone or personal media player. The calculator application enables the user to name tapes as well as provide textual comments and line-annotations on the tapes. A memories window is supported by the calculator application's user interface so that the user can see a summary of tape names and memory values before recalling a value. Multiple different calculations may be included on a tape and calculations using various units of time (e.g., hours, minutes, seconds, days, months, years) are supported by the calculator application. The calculator application is also configured with functionality to e-mail tapes selected by the user to specified recipients.
Advantageously, the calculator application provides enhanced features and functionalities, compared to ordinary conventional calculators, that can typically be expected to increase productivity, improve the quality of the user experience when performing calculations, and reduce the occurrence of errors. In particular, the ability to see an entire chain of calculations, including all values and operators, and edit the values and operators to make desired changes facilitates much more user control over calculations and provides a visual confirmation of values and operators so that longer or more complex calculations can be performed with a high degree of confidence in the calculated result. In addition, the calculator application's support for multiple tapes, each of which functions as a memory to the other tapes provides additional flexibility when performing calculations. The textual commenting and annotation features provide the user with more options to organize and track calculations.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Like reference numerals indicate like elements in the drawings. Elements are not drawn to scale unless otherwise indicated.
DETAILED DESCRIPTIONTypically, the touchscreen 110 is made up of a touch-sensor component that is constructed over a display component. The display component displays images in a manner similar to that of a typical monitor on a PC or laptop computer. In many applications, the device 105 will use a liquid crystal display (“LCD”) due to its light weight, thinness, and low cost. However, in alternative applications, other conventional display technologies may be utilized including, for example, cathode ray tubes (“CRTs”), plasma-screens, and electro-luminescent screens.
The touch sensor component sits on top of the display component. The touch sensor is transparent so that the display can be seen through it. Many different types of touch sensor technologies are known and may be applied as required to meet the needs of a particular implementation. These include resistive, capacitive, near field, optical imaging, strain gauge, dispersive signal, acoustic pulse recognition, infrared, and surface acoustic wave technologies, among others. Some current touchscreens can discriminate among multiple, simultaneous touch points and/or are pressure-sensitive. Interaction with the touchscreen 110 is typically accomplished using fingers or thumbs, or for non-capacitive type touch sensors, a stylus may also be used.
The calculator application is typically implemented using device- or machine-executable code that may be arranged in an application layer as shown in the software architecture 600 depicted in
Storage 713 can include, for example, one or more storage media including a hard-drive, solid state drive, flash memory, permanent memory such as ROM (read-only memory), any other suitable type of storage component, or any combination thereof. Storage 713 can store, for example, media data (e.g., music and video files), application data (e.g., for implementing functions on electronic device 105), firmware, user preference information data (e.g., media playback preferences), authentication information (e.g. libraries of data associated with authorized users), lifestyle information data (e.g., food preferences), exercise information data (e.g., information obtained by exercise monitoring equipment), transaction information data (e.g., information such as credit card information), wireless connection information data (e.g., information that can enable electronic device 105 to establish a wireless connection), subscription information data (e.g., information that keeps track of podcasts or television shows or other media a user subscribes to), contact information data (e.g., telephone numbers and e-mail addresses), calendar information data, and any other suitable data, or any combination thereof.
Memory 715 can include cache memory, semi-permanent memory such as RAM (random access memory), and/or one or more different types of memory used for temporarily storing data. In some implementations, memory 715 can also be used for storing data used to operate electronic device applications, or any other type of data that can be stored in storage 713. In some implementations, memory 715 and storage 713 can be combined as a single storage medium.
I/O (input/output) circuitry 718 can be operative to convert (and encode/decode, if necessary) analog signals and other signals into digital data. In some implementations, I/O circuitry 718 can also convert digital data into any other type of signal, and vice-versa. For example, I/O circuitry 718 can receive and convert physical contact inputs (e.g., from a multi-touchscreen), physical movements (e.g., from a mouse or sensor), analog audio signals (e.g., from a microphone), or any other input. The digital data can be provided to and received from control circuitry 707, storage 713, memory 715, or any other component of electronic device 105. Although I/O circuitry 718 is illustrated in
Electronic device 105 can include any suitable interface or component for allowing a user to provide inputs to I/O circuitry 718. For example, the electronic device 105 can include any suitable input mechanism, such as for example, a button, keypad, dial, a click wheel, or a touchscreen. In some implementations, the electronic device 105 can include a capacitive sensing mechanism, or a multi-touch capacitive sensing mechanism.
In some implementations, the electronic device 105 can include specialized output circuitry associated with output devices such as, for example, one or more audio outputs. The audio output can include one or more speakers (e.g., mono or stereo speakers) built into electronic device 105, or an audio component that is remotely coupled to electronic device 105 (e.g., a headset, headphones, or earbuds that can be coupled to a communications device with a wire or wirelessly).
In some implementations, I/O circuitry 718 can include display circuitry (e.g., a screen or projection system) for providing a display visible to the user. For example, the display circuitry can include a screen (e.g., an LCD screen) that is incorporated in electronics device 105. As another example, the display circuitry can include a movable display or a projecting system for providing a display of content on a surface remote from electronic device 105 (e.g., a video projector). In some implementations, the display circuitry can include a coder/decoder (codec) to convert digital media data into analog signals. For example, the display circuitry (or other appropriate circuitry within the electronic device 105) can include video codecs, audio codecs, or any other suitable type of codec.
The display circuitry also can include display driver circuitry, circuitry for driving display drivers, or both. The display circuitry can be operative to display content (e.g., media playback information, application screens for applications implemented on the electronic device, information regarding ongoing communications operations, information regarding incoming communications requests, or device operation screens) under the direction of control circuitry 102. Alternatively, the display circuitry can be operative to provide instructions to a remote display.
Communications circuitry 110 can include any suitable communications circuitry operative to connect to a communications network and to transmit communications (e.g., voice or data) from electronic device 105 to other devices within the communications network. Communications circuitry 110 can be operative to interface with the communications network using any suitable communications protocol such as, for example, Wi-Fi (e.g., an IEEE 802.11 protocol), Bluetooth™, radio frequency systems (e.g., 900 MHz, 1.4 GHz, and 5.6 GHz communication systems), infrared, GSM (Global System for Mobile communications), GSM plus EDGE (Enhanced Data rates for Global Evolution), CDMA (Code Division Multiple Access), quadband and other cellular protocols, VoIP (Voice over Internet Protocol), or any other suitable protocol.
In some implementations, communications circuitry 719 can be operative to create a communications network using any suitable communications protocol. For example, communications circuitry 719 can create a short-range communications network using a short-range communications protocol to connect to other devices. For example, communications circuitry 719 can be operative to create a local communications network using the Bluetooth protocol to couple electronic device 105 with a Bluetooth headset.
Electronic device 105 can include one more instances of communications circuitry 719 for simultaneously performing several communications operations using different communications networks, although only one is shown in
As shown in
Such connection to the host device 807 may also facilitate access to a remote service and/or content provider 818 over the Internet 825. For example, electronic device 105 can access the service/content provider 818 to download, for example, media content (e.g., music, videos, multimedia, etc.) and applications via the host device 807 (which is coupled to the Internet 825 using a network gateway such as a modem 829). Alternatively in some cases, the electronic device 105 may connect directly to the Internet 825 via a Wi-Fi connection 832 to the modem 829 when the modem is configured with Wi-Fi functionality.
Several electronic devices 105 can also be coupled to a single host device 807 using the host device as a server. Alternatively or additionally, the electronic device 105 can be coupled to several host devices (e.g., to each of the plurality of the host devices to serve as a backup for data stored in electronic device 105).
When the user 102 actuates the function key 1016, a function panel window 1103, as depicted in
When the user 102 actuates the preferences key 1121, a preferences window 1203 is shown on the touchscreen display 110. The preferences window 1203 includes various user-selectable options for setting and selecting certain user preferences as to how the calculator application operates. For example, the user 102 can touch a switch icon 1207 to set whether an audible key click is emitted by the electronic device 105 when keys are actuated. Similarly, switches 1210, 1213, 1215, and 1218 may be set by the user 102 to enable or disable particular features as respectively shown in
If switch 1213 is “on”, then the memories (as described below) may be erased. If switch 1215 is “on”, then a warning dialog is displayed to the user 102 prior to memories being erased. If switch 1218 is “on”, then a warning dialog is displayed to the user 102 when the colon key 1029 (
When the arrow button 1238 is actuated, a decimal precision window 1303 is shown on the touchscreen display 110. By interacting with this window, the user 102 may select the number of decimal places that are displayed by the calculator application 515. The user 102 may interact with a slider 1310 to select the desired decimal precision from zero digits past the decimal point to up to six digits past the decimal point. Alternatively, the user 102 may choose from among several presets for decimal precision by actuating the appropriate buttons 1313, 1316, 1321, and 1327 which respectively set the decimal point precision automatically to zero digits (i.e., none), to two digits to represent hundredths in monetary calculations, or to the maximum value of six digits, as shown in
The virtual tape 1505 provides all the benefits of visual confirmation of values and operators in a given calculation while adding additional features and functionalities that are difficult or impractical to implement using a conventional paper tape, as described in more detail below. As shown in
As shown in
To the right of each of the tape names in the memories window 1903 is the last value on each of respective tapes. Thus, “Tape” has a last value of 2,215.12, “Business income” has a last entry of 6,203.08, and so forth. A mathematical total of all the tape's last values is also shown in the memories window 1903, as indicated by reference numeral 1934. The presentation of the available tapes, the respective last values contained therein, and the mathematical total of the last values in a single window can often be expected to be beneficial to many users. For example, unlike memory recall features that are implemented in many conventional calculators, the user of the present calculator application can see the values in memory prior to recalling, or otherwise using such values.
When button 1940 is actuated, the user 102 is returned to the main calculator window 1003 (
Buttons 1955, 1958, and 1962 enable the user 102 to select the respective actions of recalling, displaying, or showing details about the selected tape. As shown in
When the user 102 touches one of the editable fields (fields 2620, 2630, and 2640, as shown in
As shown in
Returning to
When the e-mail button 2656 is actuated, the tape associated with the memory details window 2612 will be placed into a queue for e-mailing. The e-mail queue may be viewed by actuating the e-mail button 1130 in the function panel window 1103 (
The calculator application automatically populates the body of the e-mail 3025 with the values and operators as they appear on the tape (in this example, the Household Expenses tape 2112). Line numbers are also included in the e-mail 3025 to indicate the positions of the values on the tape. The user 102 can send the e-mail or cancel it using the respective send button 3030 or cancel button 3032. If the e-mail is sent, then the calculator application will generally interface with a mail application that is operable on the electronic device and hand off the e-mail to the mail application for delivery using its functionalities.
Returning again to
Another feature of the calculator application is to provide the capability to edit entries on any of the tapes 1803 (
As shown in
In addition to supporting live edits of values, the calculator application enables the user to edit operators as well. For example, as shown in
As noted above in the text accompanying
The calculator application enables values to be converted from one time unit to another (e.g., hours, minutes, seconds, days, months, years) using time unit keys 1133 in the function panel window shown in
The user's selected preference for time in the time preferences window 1203 (
In addition to being added, time values can be subtracted and multiplied or divided by non-time values as respectively shown in calculations 3925, 3931, and 3949 on the tape 3910. Tape 3910 further depicts how multiple calculations (both time-based and non-time-based) may be supported on a single tape. As noted above, the last value on the tape is used as the tape's memory value, which in this example is “45.00” as indicated by reference numeral 3955.
As shown in
The display window 4112 supports a feature that enables the user 102 to select the number of digits displayed past the decimal by touching the display window 4112 and dragging to the right or left. As shown in
The unit indicator 4127 in the display window 4112 may be utilized to toggle the displayed number between decimal and time units. As shown in
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Claims
1. One or more non-transitory computer-readable media storing instructions which, when executed on an electronic device, implement a calculator application configured for performing a method comprising the steps of:
- receiving a sequence of values and operators which comprise a calculation that are entered by a user on a keypad implemented by the calculator application via a user interface;
- implementing a virtual tape for storing the sequence and being displayed on the user interface to show at least portions of the stored sequence responsively to user selection, the displayed virtual tape being arranged as a user-accessible memory so that user-selected data or a user-selected calculated result in the displayed virtual tape is linkable to one or more respective virtual tapes in a plurality of virtual tapes, the linking comprising enabling the user-selected data or user-selected calculated result to be shown on a linked virtual tape when displayed or used by a calculation on a linked virtual tape, each of the virtual tapes i) being alternatively displayed one at a time via the user interface responsively to user selection, and ii) including a visible graphic device, the visible graphic device resembling a watermark and providing information to uniquely identify a given virtual tape when displayed on the user interface;
- configuring the user interface to enable live editing of the values or the operators in the stored sequence on the displayed virtual tape;
- responsively to the live editing, dynamically updating the calculation on the virtual tape and dynamically updating the calculations on any linked virtual tape; and
- showing the updated calculation on the displayed virtual tape.
2. The one or more non-transitory computer-readable media of claim 1 including a further step of arranging each of the plurality of virtual tapes to store a sequence of values and operators for a respective plurality of calculations, the sequence of values and operators for the respective plurality of calculations being received via user input on the keypad.
3. The one or more non-transitory computer-readable media of claim 1 including a further step of utilizing each of the plurality of virtual tapes as a user-accessible memory, the user-accessible memory being recallable by the user through the user interface for inclusion as a recalled value in calculations on any of the plurality of virtual tapes.
4. The one or more non-transitory computer-readable media of claim 1 including an additional step of configuring the user interface for accepting one of textual comment or annotation from the user, the textual comment or annotation being shown on the virtual tape.
5. The one or more non-transitory computer-readable media of claim 4 in which the user interface is configured so that annotations may be associated on a line-by-line basis with values.
6. An electronic device, comprising:
- storage adapted for storing instructions that when executed during runtime on the electronic device implement a calculator application using a plurality of virtual tapes, each of the virtual tapes being used by the calculator application to store and display calculations comprising a sequence of values and operators entered by a user through a user interface exposed by the calculator application;
- control circuitry adapted for configuring the plurality of virtual tapes as a plurality of respective user-accessible memories that are each linkable, under control of a user through the user interface, to one or more virtual tapes in the plurality of virtual tapes, each of the virtual tapes i) being configured so that the stored sequence is viewable by the user on the user interface according to user selection, and ii) including a visible graphic device, the visible graphic device resembling a watermark and providing information to uniquely identify a given virtual tape, each of the user-accessible memories being configured for storing user-selected data or a user-selected calculated result as a memory value that is includable as a recalled value in the one or more linked virtual tapes, the selecting of the one or more virtual tapes being performed through the user interface; and
- input/output circuitry adapted for receiving input from a user through the user interface implemented by the calculator application during runtime and, responsively to a selection by the user, displaying the one or more linked virtual tapes one at a time, the displaying including showing the unique identifying watermark and the recalled value,
- and wherein the control circuitry is further adapted for dynamically updating the recalled value in the one or more linked virtual tapes whenever the memory value changes.
7. The electronic device of claim 6 in which the input/output circuitry is further adapted for exposing a live editing functionality to the user through the user interface so that values or operators in the calculations are selectively changed through editing by the user and recalculating the memory value responsively to the editing.
8. The electronic device of claim 7 in which the user interface includes a touchscreen and in which the input/output circuitry is further adapted for enabling the user to scroll through the selected virtual tape using the touchscreen.
9. The electronic device of claim 6 in which the memory value is the last value on a virtual tape.
10. The electronic device of claim 6 in which the input/output circuitry is further adapted for exposing functionality through the user interface to input a name for one or more of the virtual tapes in the plurality.
Type: Application
Filed: Mar 11, 2013
Publication Date: Jul 25, 2013
Applicant: HALE SOFTWARE CONCEPTS, INC. (Encinitas, CA)
Inventor: HALE SOFTWARE CONCEPTS, INC. (Encinitas, CA)
Application Number: 13/794,662
International Classification: G06F 17/10 (20060101);