#include <iostream>
#include <typeinfo>

int aufgabe_1() {
    int i = 2;
    int a = 5; int b = 2; double c = b;
    auto z1 = a * b - - - - - - 12.0f;
    std::cout << "type of " << i << ": \t" << typeid(z1).name() << std::endl;
    std::cout << "value of " << i << ": \t" << z1 << "\n" << std::endl;
    i++;
    
    auto z2 = a / b / c;
    std::cout << "type of " << i << ": \t" << typeid(z2).name() << std::endl;
    std::cout << "value of " << i << ": \t" << z2 << "\n" << std::endl;
    i++;
    
    auto z3 = a / c / b;
    std::cout << "type of " << i << ": \t" << typeid(z3).name() << std::endl;
    std::cout << "value of " << i << ": \t" << z3 << "\n" << std::endl;
    i++;
    
    auto z4 = -1.0f - a * 2E-1 + a / 2;
    std::cout << "type of " << i << ": \t" << typeid(z4).name() << std::endl;
    std::cout << "value of " << i << ": \t" << z4 << "\n" << std::endl;
    i++;
    
    auto z5 = 1.0 + (a *= (2 / - b - (c += .0E2)));
    std::cout << "type of " << i << ": \t" << typeid(z5).name() << std::endl;
    std::cout << "value of " << i << ": \t" << z5 << "\n" << std::endl;
    i++;
    
    return 0;
}

int main() {
    aufgabe_1();
    return 0;
}
