fcamuso

Corso C++ 36 - esercuzi funzioni - A

Jun 7th, 2026
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.21 KB | None | 0 0
  1. import std;
  2.  
  3. struct Persona {
  4.     std::string cognome{};
  5.     std::string nome{};
  6.     std::vector<int> redditi_mensili;
  7. };
  8.  
  9. double varianza_redditi_mensili(const std::vector<Persona>& persone)
  10. {
  11.    //elaborazioni di vario tipo
  12.  
  13.    //NO il vector é const ...
  14.    //persone.push_back({ "Rossi", "Mario", {100, 150, 400, 190} });
  15.  
  16.    //NO il vector é const ...
  17.    //persone.at(0).redditi_mensili.at(0) = -999;
  18.  
  19.    return 0.0;
  20. }
  21.  
  22. auto main() -> int
  23. {
  24.  
  25.     std::vector<Persona> dipendenti{};
  26.  
  27.     dipendenti.push_back({"Rossi", "Mario", {100, 150, 400, 190}});
  28.  
  29.     std::println("{}", dipendenti.at(0).redditi_mensili.at(1));
  30.  
  31.     //i reference type
  32.     auto varianza = varianza_redditi_mensili(dipendenti);
  33.  
  34.     std::println("{}", dipendenti.at(0).redditi_mensili.at(1));
  35.  
  36.     /*
  37.     1. Validazione base di una password
  38.  
  39.     Obiettivo: Scrivere una funzione chiamata password_valida
  40.     che verifica se una password inserita da un utente rispetta
  41.     la lunghezza minima di sicurezza (almeno 8 caratteri).
  42.  
  43.     Input: Una stringa (la password).
  44.  
  45.     Output Atteso: True se la password ha 8 o più caratteri,
  46.     False se ne ha di meno.
  47.  
  48. 2. Il generatore di Username aziendali
  49.  
  50.     Obiettivo: Scrivere una funzione chiamata crea_username
  51.     che prende il nome e il cognome di un nuovo dipendente
  52.     e genera il suo nome utente standard (tutto minuscolo
  53.     e separato da un punto).
  54.  
  55.     Input: Due stringhe (nome, cognome).
  56.  
  57.     Output Atteso: Una stringa unita. Esempio: inserendo "Mario"
  58.     e "Rossi", restituisce "mario.rossi".
  59.  
  60. 3. Il calcolatore di mance del ristorante
  61.  
  62.     Obiettivo: Scrivere una funzione chiamata calcola_mancia
  63.     che calcola quanto lasciare di mancia in base al totale
  64.     del conto e alla percentuale desiderata.
  65.  
  66.     Input: Un numero decimale (il totale del conto) e un numero
  67.     intero (la percentuale, es. 10 o 15).
  68.  
  69.     Output Atteso: Un numero decimale che rappresenta solo il
  70.     valore della mancia da aggiungere.
  71.  
  72. 4. Il filtro "Family Friendly" (Censura)
  73.  
  74.     Obiettivo: Scrivere una funzione chiamata censura_parola
  75.     che riceve un testo e una parola da censurare. La funzione
  76.     deve sostituire tutte le apparizioni di quella parola con degli
  77.     asterischi (es. ***).
  78.  
  79.     Input: Due stringhe (il testo completo, la parola da censurare).
  80.  
  81.     Output Atteso: La stringa originale ma con la parola incriminata
  82.     censurata. Esempio: testo="Che cavolo fai?", parola="cavolo"
  83.     -> restituisce "Che *** fai?".
  84.  
  85. 5. Controllo giacenza in magazzino
  86.  
  87.     Obiettivo: Scrivere una funzione chiamata verifica_scorte
  88.     che controlla se in un negozio c'è abbastanza merce per soddisfare
  89.     l'ordine di un cliente.
  90.  
  91.     Input: Due numeri interi (quantità richiesta dal cliente,
  92.     quantità attualmente in magazzino).
  93.  
  94.     Output Atteso: Una stringa. Se c'è abbastanza merce,
  95.     restituisce "Ordine confermato". Se non ce n'è abbastanza,
  96.     restituisce "Errore: merce insufficiente".
  97.  
  98. 6. Estrattore del dominio Email
  99.  
  100.     Obiettivo: Scrivere una funzione chiamata estrai_dominio che, data un'email,
  101.     restituisce solo la parte dopo la chiocciola,
  102.     per capire quale provider sta usando l'utente.
  103.  
  104.     Input: Una stringa (l'indirizzo email).
  105.  
  106.     Output Atteso: Una stringa. Esempio: inserendo "[email protected]",
  107.     restituisce "azienda.it".
  108.  
  109. 7. Formattatore di numeri di telefono internazionali
  110.  
  111.     Obiettivo: Scrivere una funzione chiamata aggiungi_prefisso
  112.     che prende un numero di telefono italiano e aggiunge il prefisso
  113.     internazionale "+39 ", assicurandosi che non ci siano spazi extra
  114.     all'inizio o alla fine del numero originale.
  115.  
  116.     Input: Una stringa (il numero di telefono inserito dall'utente).
  117.  
  118.     Output Atteso: Una stringa formattata. Esempio: inserendo " 3331234567 ",
  119.     restituisce "+39 3331234567".
  120.  
  121. 8. L'analizzatore di recensioni (Conta parole)
  122.  
  123.     Obiettivo: I siti di e-commerce spesso richiedono recensioni
  124.     lunghe almeno un tot di parole. Scrivi una funzione chiamata
  125.     conta_parole che riceve il testo di una recensione e calcola
  126.     da quante parole è composta.
  127.  
  128.     Input: Una stringa (la recensione).
  129.  
  130.     Output Atteso: Un numero intero (il totale delle parole).
  131.     (Suggerimento : pensare a come sono separate le parole nelle frasi).
  132.  
  133. 9. Calcolatore di prezzi con IVA (con parametro di default)
  134.  
  135.     Obiettivo: Scrivere una funzione chiamata calcola_prezzo_ivato
  136.     che aggiunge l'IVA al prezzo netto di un prodotto.
  137.     L'IVA predefinita deve essere del 22%, ma la funzione deve
  138.     permettere di specificare un'IVA diversa (es. 4% o 10%) se necessario.
  139.  
  140.     Input: Un numero (il prezzo netto) e un parametro di default (l'IVA a 22).
  141.  
  142.     Output Atteso: Il prezzo finale (numero) con l'IVA aggiunta.
  143.  
  144. 10. Il filtro "Solo Maggiorenni"
  145.  
  146.     Obiettivo: Scrivere una funzione chiamata filtra_maggiorenni che
  147.     prende in carico le età degli iscritti a un evento e scarta tutti
  148.     quelli sotto i 18 anni, salvando solo le età valide.
  149.  
  150.     Input: un vector di numeri interi (es. {15, 22, 17, 30, 18, 12}).
  151.  
  152.     Output Atteso: un nuovo vector contenente solo i numeri maggiori
  153.     o uguali a 18 (es. {22, 30, 18}).
  154.    
  155.     */
  156.  
  157.    
  158. }
  159.  
Add Comment
Please, Sign In to add comment