
ProgCalc
Éducation
Gratuit · Conçue pour iPad
**ProgCalc Overview**
ProgCalc is a high-precision (38-digit) programmable calculator with true-decimal arithmetic, offering a Swift programming language interface for creating complex algorithms. It supports both scalar and non-scalar data types and operations. Non-scalar data types include complex numbers, quaternions, n-dimensional vectors, arrays, lists, and hierarchical tuples.
The app uses a tailored subset of the standard Swift language, optimized for numerical applications. It includes a comprehensive 38-digit scalar math library featuring well-known transcendental functions (trigonometric, hyperbolic, logarithmic, and exponential) as well as specialized functions such as arithmetic-geometric mean, arbitrary-precision rounding, modulo operations, binomial coefficients (log and normal), factorial functions (log and normal), ceiling and floor functions (toward -∞ and 0), and more.
A detailed app documentation is included, accessible via the [2nd][8] key. It provides a comprehensive guide to all calculator features, a language reference with examples and grammar, and additional resources.
**User Interface Modes**
ProgCalc offers three interactive modes, detailed in the app documentation:
- Standard infix notation (infiX, default)
- Fully editable infix notation (infiXE)
- Reverse Polish Notation (RPN)
You can switch between modes from the device’s home screen by using a pressure gesture on the app icon. On iPad devices, dedicated mode-switch keys provide a more convenient option.
**Additional Notes**
- ProgCalc is ad-free and will remain so.
- The app does not collect any information.
- The app does not rely on any third-party software.
Notes et avis
Cette app n’a pas reçu suffisamment de notes ou d’avis pour en proposer un aperçu.
Bug Fix Release 1.91
Several bugs related to property operator entry in infiX and infiXE interactive modes have been resolved. To test these fixes, try using the .map, .gmap, .gmapr, .bmap, .reduce, .zip, and .contains property operators in the interactive infix modes. These operators now work correctly with non-scalar types and non-scalar expression results, including operator chaining (e.g., .bmap(agm).map(sin).gmap(fixedround, 32)), without displaying confusing transient error messages. Additionally, some macOS shortcut keys have been updated or added.
For detailed information about all the changes in this release, refer to the built-in app documentation, specifically in Section 11.9, “Release Notes.” All subsections have been updated.
Late Bugs Detected:
In infiX / infiXE interactive modes, memory registers ($m0 through $m11) are treated as scalar variables by default. If you store a tuple in a memory register and attempt to use chained property operators like '.map(.elem_access_op)' interactively (e.g., $m4.map(.y)), it will fail with:
"syntax error, unexpected 'vector element access operator"
However, the same operation works when compiled and run in a program:
$m4.map(.y) // works in compiled programs
This happens because memory registers are implicitly declared as scalars, and type-casting is not available interactively.
var $m4: scalar // type-cast is not available interactively.
Workaround: Now assume that you've stored a tuple value in the $m4 memory register. Define a tuple-type global variable that mirrors $m4, and avoid purging it.
// type-cast is required. Refreshes value from $m4 on each execution.
var m4: tuple = $m4 as tuple
// purge(m4)
Now, the same operation will work interactively -- use [2nd][swap|VARS] view to enter 'm4':
m4.map(.y) // works — 'm4' has explicit tuple type
Note that a tuple resulting from a 'vexpr' works interactively just as it does in a compiled program. For example, you can interactively create an array object, convert it to a tuple, and extract the .y field from each element to build a list of y-values:
[ your_array ].map ( cis ) .map ( .y )
In general, any interactive expression requiring an explicit type cast will fail. For instance, starting with a 'vexpr' tuple and attempting '.map(.y)' will result in a syntax error in interactive mode, even though it works when compiled as type information would be available.
Le développeur Neopoise a indiqué que les pratiques de l’app en matière de confidentialité peuvent inclure le traitement des données tel que décrit ci‑dessous. Pour en savoir plus, consultez la politique de confidentialité du développeur .
Données non collectées
Le développeur ne collecte aucune donnée avec cette app.
Accessibilité
Le développeur n’a pas encore indiqué quelles fonctionnalités d’accessibilité sont prises en charge par cette app. En savoir plus
Informations
- Fournisseur
- Akif M. Suyabatmaz
- Taille
- 10,1 Mo
- Catégorie
- Éducation
- Compatibilité
Nécessite iOS 15.0 ou version ultérieure.
- iPhone
Nécessite iOS 15.0 ou version ultérieure. - iPad
Nécessite iPadOS 15.0 ou version ultérieure. - iPod touch
Nécessite iOS 15.0 ou version ultérieure. - Mac
Nécessite macOS 12.0 ou une version ultérieure et un Mac doté d’une puce Apple M1 ou une version ultérieure. - Apple Vision
Nécessite visionOS 1.0 ou version ultérieure.
- Langues
- Anglais
- Âge
4+
- 4+
- Copyright
- © 2018, Akif Suyabatmaz