Programmazione 3F 2025/2026

NextJS

App esempio
npx create-next-app@latest

Scelte:
Se da il seguente errore (permessi)

Usare il seguente comando:
Set-ExecutionPolicy unrestricted -Scope CurrentUser




Se vi compare un errore relativo all'aggiornamento di npm o altro fate così:
npm install -g npm@latest

Se compare un errore relativo all'esecuzione di script in PowerShell aprirla come amministratore ed eseguire:
Set-ExecutionPolicy Unrestricted

#todo

Apri la cartella dell'applicazione su Visual Studio Code


Riconoscimento TAG in nextJS:

  •  Vai su FilePreferenzeImpostazioni
  • cerca  emmet.includeLanguages
  • completa come nella foto





Dal terminale:
npm run dev


#todo

Apri nel browser l'url dell'applicazione:

Collegarsi via Browser a localhost:3000

Home page con componenti

Titolo Esercizio: Creazione di una Homepage Personale con Layout e Componenti

Consegna:

Dovrete creare la homepage di un sito web. Il sito avrà un tema specifico (assegnato individualmente, vedi sotto) e dovrà rispettare i seguenti requisiti:

  1. Layout Condiviso:

    • La homepage deve utilizzare un layout condiviso.
    • Questo layout conterrà la navbar (vedi punto 2) e gestirà la struttura di base di tutte le pagine del sito (anche se per questo esercizio creerete solo la homepage).
  2. Navbar:

    • Create un componente Navbar.js (o adattatene uno esistente).
    • La navbar deve essere inclusa nel layout condiviso.
    • Deve contenere: 
      • Un logo.
      • Almeno tre link di navigazione: "Home", "Progetti" (o "Portfolio"), e "Contatti". Per ora, i link possono puntare a # (segnaposto).
    • Utilizzate Tailwind CSS per stilizzare la navbar.
  3. Immagine Hero:

    • Create un componente Hero.js.
    • La homepage deve includere un'immagine "hero" immediatamente sotto la navbar.
    • Questa immagine deve: 
      • Avere un rapporto di aspetto di 4:1 (larghezza 4 volte l'altezza). 
      • Occupare  tutta la larghezza della finestra del browser.
      • Avere un titolo e un breve testo sovrapposti, posizionati in modo che siano ben leggibili (facoltativo).
    • L'immagine deve essere pertinente al tema assegnato al vostro sito.
  4. Componenti Preesistenti (da adattare e riutilizzare):

    • Dovete utilizzare i seguenti componenti, che avete già creato (o che creerete, se non li avete ancora): 
      • Bannerone: Usatelo almeno una volta nella homepage. Pensate a come posizionarlo in modo strategico. Adattate il testo del banner al tema del vostro sito.
      • Product: Usatelo almeno quattro volte. Le card devono mostrare contenuti diversi, ma coerenti con il tema del vostro sito. Ad esempio, se il sito è un portfolio di un fotografo, le card potrebbero mostrare diverse foto; se è un blog di cucina, potrebbero mostrare diverse ricette.
  5. Struttura della Homepage (app/page.js):

    • La homepage deve includere, in ordine: 
      • La Hero section (con l'immagine 4:1).
      • Il componente Bannerone.
      • Almeno quattro componenti Card.
  6. Stilizzazione:

    • Tutto il sito deve essere stilizzato utilizzando Tailwind CSS.
  7. Temi Individuali:

    • Ognuno di voi avrà un tema specifico per il proprio sito web:

      • BASSETTO MATTIA: Sito portfolio per un fotografo naturalista.
      • CAGAYAN MENGO ALESSANDRO: Blog di viaggi, focus su destinazioni esotiche.
      • CALZAVARA CARLO ANDREA: Sito web per un musicista/band (genere: rock).
      • CANCIAN ACHILLE: Portfolio di un web designer/developer.
      • CAPIOTTO FILIPPO: Blog di cucina, focus su ricette vegane.
      • COSI FILIPPO: Sito portfolio per un illustratore digitale.
      • DRIUSSO GIULIANO: Blog personale su argomenti di tecnologia e programmazione.
      • KRASNIQI ARDISON: Sito web per un personal trainer/fitness coach.
      • MAFTEUTA LIVIU: Blog di recensioni di libri (genere: fantasy/sci-fi).
      • MASCHIETTO DEBRA: Sito portfolio per una make-up artist.
      • POLI PIETRO: Sito web per un'attività di vendita di prodotti artigianali (es. gioielli, ceramiche).
      • PURISIOL ACHILLE: Blog di giardinaggio e cura delle piante.
      • RIVOLI LUCA: Sito portfolio per un videomaker/filmmaker.
      • ROMAN CARLO: Blog di storia locale, con focus sulla propria città/regione.
      • SOCAL MATTIA: Sito web per un'associazione sportiva locale (es. calcio, basket).
      • VIGANO’ PIERPAOLO: Portfolio di un architetto/interior designer.
      • ZOIA MANUEL: Blog di recensioni di videogiochi.
    • Scegliete immagini, colori, font e contenuti coerenti con il tema assegnato.

Home page e chi siamo

VIETATO USARE CHAT GPT E ALTRE IA PER GENERARE CODICE, AL MASSIMO PER CHIEDERE PROPRIETA' TAILWIND O INFO. CHI USERA IA PERDERA' TUTTI I PUNTI CON UN CONSEGUENTE 4 (VERETE INTERROGATI SUL CODICE). 

LEGGERE MOOOOLTO BENE LA CONSEGNA GRAZIE!


Esercizio: Costruzione di un Sito Web Semplice con Componenti Riusabili

Durata: 1 ore

Obiettivo: Creare un sito web semplice con una homepage, utilizzando componenti riusabili e personalizzati, con particolare attenzione al footer(opzionale) e all'Hero Section.

Requisiti:

  1. Nuovo Repository:

    • Crea un nuovo repository su GitHub per questo progetto.
  2. Layout Condiviso:

    • Utilizzare un layout condiviso (layout.js) che includa: 
      • Navbar (componente Navbar.js)
      • Footer (nuovo componente Footer.js) - Il footer contiene in genere informazioni di contatto base (es. email), copyright, e social media (facoltativo).
  3. Navbar:

    • Utilizzare il componente Navbar.js preesistente, personalizzandolo con Tailwind CSS.
    • Aggiungere i link: "Home", "Chi siamo", e "Contatti".
  4. Footer (opzionale ma fino 300 punti):

    • Creare un nuovo componente Footer.js che includa: 
      • Informazioni di contatto (es. un indirizzo email).
      • Un breve messaggio di copyright.
      • Facoltativo: Icone dei social media con link.
    • Utilizzare Tailwind CSS per stilizzare il footer.
  5. Homepage (app/page.js):

    • Creare una homepage con: 
      • Hero Section:
        • Creare un componente Hero.js che includa: 
          • Un'immagine di sfondo a tutta larghezza, pertinente al tema.
          • Un titolo principale che descriva lo scopo del sito, sovrapposto all'immagine(opzionale).
          • Una breve descrizione, anch'essa sovrapposta all'immagine(opzionale).
      • Utilizzare almeno 2 Card preesistenti e personalizzate, con temi coerenti al tema del singolo studente.
      • Un Bannerone.
  6. Stilizzazione:

    • Utilizzare Tailwind CSS per stilizzare l'intero sito web.
    • Assicurarsi che il design sia coerente e responsivo.
Temi Individuali:

  • BASSETTO MATTIA: Sito di recensioni di film.
  • CAGAYAN MENGO ALESSANDRO: Blog di videogiochi retro.
  • CALZAVARA CARLO ANDREA: Sito di ricette facili.
  • CANCIAN ACHILLE: Sito di consigli per la cura degli animali domestici.
  • CAPIOTTO FILIPPO: Sito di notizie locali.
  • COSI FILIPPO: Sito di frasi motivazionali.
  • DRIUSSO GIULIANO: Guida base alla programmazione.
  • KRASNIQI ARDISON: Consigli per una vita sana.
  • MAFTEUTA LIVIU: Recensioni di giochi da tavolo.
  • MASCHIETTO DEBRA: Tutorial per principianti, Cinema.
  • POLI PIETRO: Sito di consigli per il fai da te.
  • PURISIOL ACHILLE: Consigli per la cura del proprio giardino.
  • RIVOLI LUCA: Recensioni di attrezzatura video base.
  • ROMAN CARLO: Eventi della città.
  • SOCAL MATTIA: Classifica squadre locali.
  • VIGANO’ PIERPAOLO: Consigli di design per la casa.
  • ZOIA MANUEL: Elenco giochi per bambini.
Note aggiuntive:

  • Personalizzare MOLTO i componenti preesistenti con stili e contenuti unici.
  • Utilizzare immagini e icone pertinenti.
  • Rendere il sito web facile da navigare e intuitivo.


Passaggio proprietà
In questo esempio vediamo una pagina che usa la griglia di Bootstrap per visualizzare tre Card, passando a ognuna un diverso attributo titolo:

Il componente che disegna la card è questo. Gli attributi vengono passati nell'oggetto props, che è possibile utilizzare per mostrare una specifica proprietà, come ad esempio props.titolo:

Nota: quando in JSX vogliamo scrivere un blocco di JavaScript puro, lo mettiamo tra parentesi graffe, come ad esempio in { props.titolo }.

 

Ecco come comporre il percorso di un file per passarlo come prop a un elemento img:

 

Destrutturare le props


È possibile prendere l'oggetto props ricevuto e destrutturarlo in singole variabili:

 


Passare props diverse da stringhe


In questo esempio vediamo come passare dei valori booleani, numerici o addirittura degli array come props, inserendoli tra parentesi graffe (ricorda che il codice all'interno viene valutato come semplice JavaScript):

Componenti con props
Creare nuovo repository

Usare il componente Card  per personalizzare 3 card
Usare il componente Product per personalizzare 4 Product
Usare il componente Login per personalizzare 1 Login
Usare il componente Iscrizione per personalizzare 1 Iscrizione

Dovete personalizzare tutte le informazioni dei componenti, ovvero titoli, testi, immagini , e link

BASSETTO MATTIA: "Cinematographe" (Recensioni cinematografiche)
CAGAYAN MENGO ALESSANDRO: "Retrogaming Italia" (Blog di videogiochi retro)
CALZAVARA CARLO ANDREA: "Cucina Facile" (Ricette semplici e veloci)
CANCIAN ACHILLE: "Amici Animali" (Consigli per la cura degli animali)
CAPIOTTO FILIPPO: "Notizie della Nostra Città" (Informazioni locali)
COSI FILIPPO: "Rivoluzione Francese" 
DRIUSSO GIULIANO: "Programmare Facile" (Guida introduttiva alla programmazione)
KRASNIQI ARDISON: "Vivere Sani" (Consigli per la salute)
MAFTEUTA LIVIU: "Gioca con Noi" (Recensioni di giochi da tavolo)
MASCHIETTO DEBRA: "Cinema per Tutti" (Tutorial per principianti sul cinema)
POLI PIETRO: "Fai da Te Facile" (Guide per il fai da te)
PURISIOL ACHILLE: "Giardini Felici" (Consigli per la cura del giardino)
RIVOLI LUCA: "Video Maker Principianti" (Recensioni di attrezzatura video)
ROMAN CARLO: "Eventi in Città" (Calendario eventi locali)
SOCAL MATTIA: "Sport di Casa" (Classifiche sportive locali)
VIGANO’ PIERPAOLO: "Casa Bella" (Consigli di design per la casa)
ZOIA MANUEL: "Giochi per Bambini" (Elenco di giochi per l'infanzia)


Passaggio con oggetti


Per prima cose definiamo nella pagina page.js un oggetto JavaScript con tutti i dettagli del post:

Lo passeremo come props del componente che andremo a creare:
Ricordati di importare il componente.

Nel nostro componente dobbiamo ricordarci di inserire nelle tonde della funzione il nome della props con le parentesi graffe{ }:


Nel componente userò le props con il nome_della_props.proprietà
esempio: post.immagine

Sito con props
Consegna del Progetto: Sviluppo di un Sito Web con Next.js

Obiettivo:

Creare un sito web semplice ma funzionale utilizzando Next.js e i componenti forniti (Navbar, Card, Product/Bannerone, Iscrizione). Il sito deve essere composto da almeno due pagine e seguire il tema assegnato. 

Il sito deve essere popolato usando le props e i componenti devono essere rivoluzionati usando CSS


Studenti e Temi:

  • BASSETTO MATTIA: "Racconti Brevi" (Storie di fantasia concise)
  • CAGAYAN MENGO ALESSANDRO: "Esplora le Piante" (Guida alle piante da appartamento)
  • CALZAVARA CARLO ANDREA: "Disegna Facile" (Tutorial di disegno per principianti)
  • CANCIAN ACHILLE: "Suoni del Mondo" (Raccolta di suoni rilassanti)
  • CAPIOTTO FILIPPO: "Il Meteo di Oggi" (Previsioni del tempo locali)
  • COSI FILIPPO: "Viaggi Brevi" (Itinerari per weekend fuori porta)
  • DRIUSSO GIULIANO: "Impara le Parole" (Vocabolario di base di una lingua straniera)
  • KRASNIQI ARDISON: "Ridi con Noi" (Barzellette e brevi storie divertenti)
  • MAFTEUTA LIVIU: "Costruisci con i Lego" (Idee creative con i Lego)
  • MASCHIETTO DEBRA: "Canta con Noi" (Testi di canzoni popolari)
  • POLI PIETRO: "Ricicla Facile" (Idee per riutilizzare oggetti comuni)
  • PURISIOL ACHILLE: "Osserva le Stelle" (Guida introduttiva all'astronomia)
  • RIVOLI LUCA: "Fotografa Facile" (Consigli per scattare foto migliori)
  • ROMAN CARLO: "Le Ricette della Nonna" (Ricette tradizionali)
  • SOCAL MATTIA: "Quiz Time" (Quiz interattivi su argomenti vari)
  • VIGANO’ PIERPAOLO: "Crea con la Carta" (Origami e lavoretti con la carta)
  • ZOIA MANUEL: "Il Mondo dei Colori" (Attività e giochi sui colori)
Requisiti:

  • Pagine:
    • Home Page: Pagina principale con titolo, descrizione del tema, elenco di contenuti (utilizzando le Card) e, se pertinente, Bannerone/Product e Iscrizione.
    • Pagina "Articolo/Contenuto": Pagina dedicata a un articolo, guida o risorsa specifica, con testo dettagliato, immagini e/o video.

  • Componenti:
    • Navbar: Utilizzare il componente Navbar nella pagina layout.js per la navigazione tra le pagine.
    • Card: Utilizzare le Card per presentare i contenuti nella Home Page.
    • Product e Bannerone: Utilizzare in modo creativo.
    • Iscrizione: componente di iscrizione ad una news letter.

  • Layout:
    • Usare la navbar.
    • Aggiungere un footer (facoltativo).

  • Contenuto:
    • Utilizzare testo chiaro e conciso, adatto al pubblico di riferimento.
    • Aggiungere immagini, video o altri elementi multimediali per arricchire il contenuto.

  • Valutazione:
    • Funzionalità: Il sito deve funzionare correttamente e la navigazione deve essere fluida.
    • Design: Il sito deve avere un design accattivante e coerente.
    • Contenuto: Il contenuto deve essere pertinente, chiaro e ben presentato.
    • Originalità: Si valuterà l'originalità del contenuto e del design.
    • Utilizzo di Next.js: Si valuterà l'utilizzo corretto di Next.js e dei suoi componenti.

  • Consegna:
    • Avete 6 ore di tempo per completarlo 

  • Suggerimenti:
    • Pianificare la struttura del sito prima di iniziare a scrivere il codice.
    • prendere i componenti già sviluppati con le props
    • Cancellare il contenuto di global CSS(tranne l'import di tailwind), creare la cartella components e images
    • Usare commit e push

  • Ricordate: L'obiettivo principale è creare un sito web semplice, funzionale e accattivante che dimostri la vostra comprensione di Next.js, dei suoi componenti e Tailwind.

Il metodo Map
In questo esempio viene creato un nuovo array quadrati prendendo ogni numero e calcolandone il quadrato.

Questa operazione viene chiamata mappatura:

A .map() viene passata come argomento una funzione che restituisce il quadrato del numero (num*num).

 

In questo altro esempio mappiamo ogni nome con una versione dello stesso nome con l'iniziale maiuscola:

Nota: viene passata una funzione anonima usando la sintassi delle funzioni "freccia".

Mapping di Array
Possiamo sfruttare il metodo .map per creare una serie di bottoni.
Apri il file di una pagina a tua scelta (o creane una nuova) e crea dopo la sezione import un array con i nomi dei bottoni:

Crea una nuova sezione che usa il metodo map per mappare ogni stringa in un list item (li):

Come vedi map prende ogni singolo elemento dell'array bottoni e lo mette nella variabile temporanea nome.
Sarà quindi possibile usare nome per creare il list item corrispondente.

Trasformiamo ora i list item nei rispettivi bottoni, inseriti in un componente Stack di MUI (ricordati di importarlo):





Product con map
Modificare il componente product in modo che sia compatibile con il metodo map
Creare in una pagina a piacere con 10 product completamente popolati dalle props usando map

BASSETTO MATTIA
: "Prime Parole" (Vocabolario essenziale di una lingua straniera)
CAGAYAN MENGO ALESSANDRO: "Cucina" (Ricette semplici e tradizionali)
CALZAVARA CARLO ANDREA: "Storie per Bambini" (Racconti semplici per l'infanzia)
CANCIAN ACHILLE: "Fotografia Facile" (Consigli di base per foto migliori)
CAPIOTTO FILIPPO: "Lavoretti di Carta" (Attività semplici con la carta)
COSI FILIPPO: "Barzellette e Sorrisi" (Raccolta di barzellette per bambini)
DRIUSSO GIULIANO: "Piante in Casa" (Consigli pratici per la cura delle piante da appartamento)
KRASNIQI ARDISON: "Il Tempo di Oggi" (Informazioni meteo giornaliere)
MAFTEUTA LIVIU: "Primi Disegni" (Le basi del disegno per chi inizia)
MASCHIETTO DEBRA: "Suoni della Natura" (Registrazioni di suoni rilassanti di ambienti naturali)
POLI PIETRO: "Costruzioni Lego" (Progetti semplici con i mattoncini Lego)
PURISIOL ACHILLE: "Riciclo Creativo" (Idee per riutilizzare materiali di scarto)
RIVOLI LUCA: "Canzoni per Tutti" (Testi di canzoni popolari per bambini)
ROMAN CARLO: "Guardiamo le Stelle" (Introduzione all'osservazione del cielo notturno)
SOCAL MATTIA: "Gite Vicino a Te" (Idee per brevi escursioni locali)
VIGANO’ PIERPAOLO: "Giochi a Quiz" (Domande e risposte su argomenti semplici)
ZOIA MANUEL: "I Colori" (Attività di base con i colori)

Simulazione home page sito reale
Ricreare in modo identico, con le competenze conosciute, le seguenti home page
HTML.it:
w3schools.com:

BASSETTO MATTIA: HTML.it
CAGAYAN MENGO ALESSANDRO: w3schools.com
CALZAVARA CARLO ANDREA: MDN Web Docs
CANCIAN ACHILLE: HTML.it
CAPIOTTO FILIPPO: w3schools.com
COSI FILIPPO: MDN Web Docs
DRIUSSO GIULIANO: HTML.it
KRASNIQI ARDISON: w3schools.com
MAFTEUTA LIVIU: MDN Web Docs
MASCHIETTO DEBRA: HTML.it
POLI PIETRO: w3schools.com
PURISIOL ACHILLE: MDN Web Docs
RIVOLI LUCA: HTML.it
ROMAN CARLO: w3schools.com
SOCAL MATTIA: MDN Web Docs
VIGANO’ PIERPAOLO: HTML.it
ZOIA MANUEL: w3schools.com


Ripasso JavaScript

Tabelline da 1 a 10
Creare un programma con 2 cicli for annidati, devo stampare a video le tabelline da 1 a 10.

la stampa deve essere tipo:
2 x 2 = 4

Esercizi array

1. Nomi pari

Scrivere un programma che, dato un array contenente 10 nomi, scriva solo il secondo, il quarto, il sesto, l'ottavo e il decimo nome. usare for


2. Cerca

Dato un array contenente venti parole, e un secondo array contenente 5 parole da cercare,
scrivere un programma che per ognuna delle parole da cercare scriva la corrispondente posizione nel primo array, ad esempio:

nomeArray.indexOf(stringa)

sedia: 5


3. Frutta (zitto mango)

Dati due array,
il primo contenente i nomi di cinque frutti,
il secondo contenente cinque numeri,
scrivere un programma che scriva il nome di ogni frutto tante volte quanto è specificato dal corrispondente elemento del secondo array.
Ad esempio se il primo elemento del primo array è mela e il primo elemento del secondo array è 3, scriverà

mela mela mela

Suggerimento: servirà un secondo for nidificato all'interno del primo for.

Esercitazioni if/for

Conteggio a step

Scrivi un programma che conti da 0 a 100, ma con una condizione particolare:

  • Il programma deve iniziare a contare di 2 in 2 (0, 2, 4...).

  • Quando il contatore arriva o supera 50, il programma deve cambiare ritmo e iniziare a contare di 5 in 5 (55, 60, 65...).

  • Usa un ciclo for e, all'interno, una struttura if per decidere di quanto aumentare la variabile del ciclo o come stampare il valore.



Punteggio

Scrivi un programma che simuli il completamento di 10 livelli di un gioco. Per ogni livello (da 1 a 10), il punteggio ottenuto è pari al numero del livello moltiplicato per 15 (es: Livello 1 = 15 punti, Livello 2 = 30, ecc.). All'interno del ciclo, usa if ed else if per stampare un messaggio diverso in base al punteggio del livello corrente:

  • Se il punteggio è inferiore a 50: stampa "Grado: Bronzo".

  • Se il punteggio è tra 50 e 99: stampa "Grado: Argento".

  • Se il punteggio è tra 100 e 149: stampa "Grado: Oro".

  • Se il punteggio è 150 o superiore: stampa "Grado: Platino".


Cassificatore numeri

Scrivi un programma che analizzi i numeri da 1 a 30. dobbiamo classificare i numeri in base a dove "cadono" rispetto a delle decine prefissate. Per ogni numero nel ciclo for, verifica le seguenti condizioni in ordine di priorità usando if e diversi else if:

  1. Se il numero è esattamente uguale a 10, 20 o 30: stampa "Traguardo Decina".

  2. Altrimenti, se il numero è minore di 10: stampa "Prima unità".

  3. Altrimenti, se il numero è minore di 20: stampa "Decina 10-19".

  4. Altrimenti (per tutti gli altri): stampa "Decina 20-29".



 Il Filtro dei Numeri Pari


Obiettivo: Scorrere un array di 10 numeri e stampare solo i numeri pari.

  • Logica: Usa l'operatore modulo % per verificare se il resto della divisione per 2 è zero (cercate online come si usa % non con AI).


Conta le Occorrenze


Obiettivo: Contare quante volte un determinato valore (es. il numero 5) appare in un array, array di 15 elementi.

  • usare almeno ciclo for


Somma Cumulativa 


Obiettivo: Calcolare la somma di tutti gli elementi presenti in un array. usare un for

Trasformazione Dati (Il "Map" manuale)


Obiettivo: Dato un array di prezzi, crea un nuovo array con i prezzi scontati del 20%.

  • Logica: Usa il ciclo for per moltiplicare ogni elemento per 0.8 e salva il risultato nel nuovo array.












Esercitazioni funzioni

Stampa nome

Scrivi una funzione chiamata stampaNome che accetta un argomento stringa (nome). La funzione deve stampare in console la frase: "Il mio nome è [nome]".

Numero massimo

Scrivi una funzione chiamata trovaMassimo che accetta tre argomenti numerici (a, b, c) e ritorna il più grande tra i tre, utilizzando le strutture condizionali (if/else). "il numero massimo è + variabile"

Fattoriale

Scrivi una funzione chiamata calcolaFattoriale che accetta un argomento intero positivo (n) e ritorna il fattoriale di quel numero. (Ricorda che il fattoriale di un numero n  è il prodotto di tutti gli interi positivi minori o uguali a n. Esempio: 5= 5 x 4 x3 x2 x1 = 120). Dovrai usare un ciclo (for).


Sequenza

Scrivi una funzione chiamata generaSequenza che accetta due argomenti: limite (un numero) e passo (un numero). La funzione deve ritornare un array contenente tutti i numeri interi che partono da 0 e che sono multipli di passo fino a raggiungere o superare il limite. (Esempio: generaSequenza(10, 2) dovrebbe ritornare [0, 2, 4, 6, 8, 10]).

Potenza

Scrivi una funzione chiamata potenza che accetta due argomenti: base e esponente.

  1. L'argomento esponente deve avere un valore predefinito (default value) di 2.

  2. La funzione deve ritornare il risultato di base elevato a esponente.

  3. Testa la funzione chiamandola con un solo argomento (es. potenza(5)) e poi con entrambi gli argomenti (es. potenza(3, 4)).

Pari o dispari

Scrivi una funzione chiamata isPari che accetta un numero come argomento. La funzione deve ritornare true se il numero è pari e false se è dispari.

  • Suggerimento: Usa l'operatore modulo %(non ve lo chiedo in verifica tranquilli).

Media di tre numeri


Scrivi una funzione chiamata calcolaMedia che accetta tre numeri. La funzione deve ritornare la media aritmetica dei tre.

  • Formula: (a + b + c) / 3.

Conta Caratteri


Scrivi una funzione chiamata lunghezzaStringa che accetta una stringa. Se la stringa è più lunga di 10 caratteri, deve stampare: "Stringa lunga". Altrimenti, deve stampare: "Stringa corta".

Somma Array


Scrivi una funzione chiamata sommaElementi che accetta un array di numeri. La funzione deve usare un ciclo for per sommare tutti i numeri all'interno dell'array e ritornare il totale.

  • Esempio: sommaElementi([10, 20, 30]) dovrebbe ritornare 60.