Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma region IntelliSense_Fix
- #ifdef __INTELLISENSE__
- #include <print>
- #include <string>
- #include <chrono>
- #endif
- #pragma endregion
- import std;
- int valuta_fattore(std::string_view expr = "");
- int valore_assoluto(int n);
- int stima_ampiezza();
- void riga_divisoria(char simbolo, int lunghezza=stima_ampiezza());
- //Definizione di una funzione
- // Intestazione
- // {
- // dichiarazione/definizione di VARIABILI LOCALI
- // corpo con istruzioni
- // }
- //
- //versioni legacy e moderne
- //INTESTAZIONE LEGACY per funzione con valore di ritorno
- // tipo_valore_restituito nome_funzione(lista parametri, anche vuota)
- // {
- // istruzioni
- //
- // return espressione_tipo_restituito
- // }
- int f() { return 200;}
- //void f2(int p1, int p2 = 10, int p3 = 20, int p4=56);
- //void disegnaRettangolo(int base, int altezza, int colore = NERO, int spessore = 1, int livello = 0);
- int valuta_espressione(std::string_view& expr) {
- // Un'espressione inizia sempre con un fattore
- int risultato = valuta_fattore(expr);
- //... ecc
- return risultato;
- }
- int valuta_fattore(std::string_view expr) {
- if (expr.empty()) return 0;
- // Caso 1: Trova una parentesi. La delega torna all'espressione.
- if (expr.front() == '(') {
- expr.remove_prefix(1); // Consuma '('
- int risultato = valuta_espressione(expr); // Chiamata mutuamente ricorsiva
- //... ecc
- }
- }
- //emula la funzione abs della STL (ma solo per gli int)
- int valore_assoluto(int n)
- {
- //if (n < 0)
- //{
- // n = -n;
- //}
- //
- //return n;
- return n >= 0 ? n : -n;
- }
- int stima_ampiezza() { return 60; }
- void riga_divisoria(char simbolo, int lunghezza)
- {
- std::println("{}", std::string(lunghezza, simbolo));
- return;
- }
- auto main() -> int
- {
- //f2(10,20);
- int risultato = -100;
- std::println("{}", valore_assoluto(34));
- riga_divisoria('-');
- std::println("{}", risultato);
- int v = valore_assoluto(-9);
- if (valore_assoluto(risultato) > 80)
- {
- std::println("Soglia sicurezza superata!!");
- }
- riga_divisoria('-');
- }
Advertisement