Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
<Laufwerk>:
cd \
cd mapm_4.9.2
make -f makefile.unx
#include <cstdlib>
#include <iostream>
#include <locale>
#include <m_apm.h>
using namespace std;
ostream& operator<< (ostream& out, const MAPM& mapm_var) {
const int digits = mapm_var.significant_digits();
char* buffer = new char[digits + 12];
if (out.flags() & ios::fixed) {
mapm_var.toFixPtString(buffer, digits);
} else {
mapm_var.toString(buffer, digits);
}
out << buffer;
delete[] buffer;
return out;
}
istream& operator>> (istream& in, MAPM& mapm_var) {
// parse a floating point or integer number, if successful
// assign it to mapm_var.
//
// note: the parsing is somewhat redundant since operator=
// of the MAPM class just calls the mapm_set_string
// function which parses the string AGAIN into a
// number, but since the function just returns void and
// hence does not indicate an error (except printing an
// error message on the console) this seems necessary.
enum { start, /* initial state / skip whitespace */
sign, /* seen a minus / plus sign */
integer, /* read an integer value */
point, /* encountered a decimal point */
floatnum, /* read a floating point number */
floateE, /* floating point number with [eE] suffix */
floatexp } /* floating point number with exponent and optional plus/minus sign */
state = start;
int c;
string num;
const char decimal_point = use_facet<numpunct<char> >(in.getloc()).decimal_point();
while(in && (c = in.get()) != EOF) {
if (isspace(c)) {
if (state == start) continue;
else break;
} else if (isdigit(c)) {
switch (state) {
case start: /* fall through */
case sign: state = integer; /* fall through */
case integer: break;
case point: state = floatnum; /* fall through */
case floatnum: break;
case floateE: state = floatexp; /* fall through */
case floatexp: break;
}
} else if (c == decimal_point) {
bool exit_loop = false;
switch (state) {
case start:
case sign: state = point; break;
case integer: state = floatnum; break;
default:
exit_loop = true;
}
if (exit_loop) break;
} else if (c == '+' || c == '-') {
if (state == start) state = sign;
else if (state == floateE) state = floatexp;
else break;
} else if (c == 'e' || c == 'E') {
if (state == integer || state == floatnum) state = floateE;
else break;
} else {
break;
}
num += static_cast<char>(c);
}
switch (state) {
/* accept states. */
case integer:
case floatnum:
case floateE:
case floatexp:
mapm_var = num.c_str(); break;
default:
in.setstate (ios::failbit);
}
return in;
}
int main(int argc, char *argv[])
{
MAPM a = 5, p = 14, q = "9.8", d;
p /= a;
q /= a;
d = pow(p/2, 2) - q;
cout << "Diskriminante = " << d << " = " << fixed << d << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <algorithm>
ostream& operator<< (ostream& out, const MAPM& mapm_var) {
const int digits = mapm_var.significant_digits();
char* buffer = new char[digits + 12];
if (mapm_var.is_integer()) {
mapm_var.toIntegerString(buffer);
} else if (out.flags() & ios::fixed) {
mapm_var.toFixPtStringEx(buffer, min(out.precision(), digits));
} else {
mapm_var.toString(buffer, min(out.precision(), digits));
}
out << buffer;
delete[] buffer;
return out;
}