HTML #2 Link

Obiettivo: Utilizzare i link per: realizzare collegamenti tra pagine HTML o navigare più facilmente attraverso le sezioni delle stessa pagina.

Link

I link in HTML sono uno strumento fondamentale per la navigazione e possono essere suddivisi in due principali categorie: link interni alla stessa pagina e link verso altre pagine. I link interni, noti anche come “anchor links”, permettono di spostarsi rapidamente tra le sezioni di una singola pagina. Sono utili in pagine lunghe o con contenuti strutturati in capitoli, poiché consentono all’utente di accedere direttamente a una specifica parte della pagina tramite un identificatore (ID) associato a un elemento. D’altra parte, i link verso pagine esterne si dividono in due tipi: link interni e link esterni. I link interni rimandano ad altre pagine o risorse all’interno dello stesso sito web, mantenendo gli utenti all’interno del dominio. I link esterni, invece, puntano a pagine esterne al sito, spesso utilizzati per citare fonti o fornire informazioni aggiuntive, ma possono condurre l’utente lontano dal sito originale. Entrambi i tipi di link migliorano l’esperienza di navigazione, collegando contenuti e facilitando l’accesso alle informazioni.

1. Anchor link (Link interni alla stessa pagina)

Il tag utilizzato per creare i link in HTML è l’elemento <a>, che sta per “anchor”. Questo tag contiene l’attributo href(hyperlink reference), che (in questo caso) specifica l’identificativo della sezione alla quale il link punta.
L’identificativo (ID) è un attributo che definisce in modo univoco un elemento all’interno di una pagina HTML. Ogni ID deve essere unico per tutta la pagina, il che significa che non puoi avere più di un elemento con lo stesso ID.
Ad esempio:

<h2 id=”sezione1″>Sezione 1</h2> 
<p id=”paragrafo1″>Questo è un paragrafo con ID “paragrafo1”.</p>

Il codice

Viene in seguito riportato il codice di una serie di anchor links che puntano a differenti sezioni all’interno della stessa pagina.



2. Link verso altre pagine (esterne)

Anche in questo caso, il tag utilizzato per creare i link è l’elemento <a>. A differenza dal caso precedente l’attributo href(hyperlink reference) deve contenere l’indirizzo della pagina alla quale si vuole effettuare il collegamento.
Ad esempio:

<a href=”https://www.google.com”>Visita Google</a>

Il codice

Viene in seguito riportato il codice di una serie di anchor links che puntano a differenti sezioni all’interno della stessa pagina.



3. Link verso altre pagine (interne)

Anche in questo caso, il tag utilizzato per creare i link è l’elemento <a>. A differenza dal caso precedente l’attributo href(hyperlink reference) deve contenere l’indirizzo relativo (può essere espresso anche il percorso assoluto ma non verrà analizzato in questa guida) della pagina alla quale si vuole effettuare il collegamento.
Un percorso relativo collega a una pagina all’interno dello stesso sito senza specificare il dominio completo. Si basa sulla posizione attuale della pagina nel sito.
Ad esempio:

<a href=”pagina2.html”>Vai a Pagina 2</a>
<a href=”cartella/pagina3.html”>Vai a Pagina 3</a>
<a href=”../pagina4.html”>Vai a Pagina 4</a>

Il percorso relativo dipende dalla posizione della pagina che si vuole linkare in relazione alla pagina corrente.
Nel primo caso le due pagine si trovano nello stessa cartella. Nel secondo caso in una sotto-cartella. Nel terzo caso in una cartella superiore.




HTML #1 Titoli, Paragrafi, Liste, Immagini, Ritorni a capo

Obiettivo: Realizzare una pagina HTML che preveda l’utilizzo dei tag principali per inserire Titoli, Paragrafi, Liste, Immagini e Ritorni a capo.

La pagina HTML

HTML, acronimo di HyperText Markup Language, è il linguaggio di markup standard utilizzato per la creazione e la strutturazione di pagine web. È uno dei componenti fondamentali del World Wide Web ed è essenziale per la visualizzazione di contenuti su Internet. HTML si basa su un sistema di marcatura che utilizza una serie di tag per definire la struttura e il significato del contenuto all’interno di una pagina web. Questi tag forniscono istruzioni al browser su come presentare e organizzare il contenuto, consentendo agli sviluppatori di creare pagine web complesse e interattive.
I tag HTML sono elementi fondamentali del linguaggio di markup. Ogni tag è racchiuso tra parentesi angolari < > e può contenere attributi che forniscono informazioni aggiuntive sul tag stesso. Gli attributi forniscono informazioni aggiuntive sui tag e sui loro comportamenti. Ad esempio, l’attributo src dell’elemento specifica l’URL dell’immagine da visualizzare.

I Principali Tag

  • Il tag <h1> in HTML viene utilizzato per definire il titolo principale di una pagina web. È il titolo di livello più alto e di solito viene visualizzato con una dimensione del carattere più grande rispetto agli altri elementi del testo sulla pagina.
  • Il tag <h2> in HTML viene utilizzato per definire un titolo di secondo livello all’interno di una pagina web. È utilizzato per indicare una sezione o un sotto-titolo all’interno di un contesto più ampio rispetto al tag <h1>
  • Il tag <h3> in HTML viene utilizzato per definire un titolo di terzo livello all’interno di una pagina web. Viene utilizzato per indicare una sezione o un sotto-sottotitolo all’interno di un contesto più specifico rispetto al tag <h2>
  • Il tag <p> in HTML viene utilizzato per definire un paragrafo di testo all’interno di una pagina web. Questo tag è essenziale per organizzare e strutturare il contenuto testuale in paragrafi separati.
  • Il tag <ol> in HTML viene utilizzato per creare una lista ordinata di elementi, mentre il tag <li> (list item) viene utilizzato all’interno del tag <ol> per definire ciascun elemento della lista.
  • Il tag <ul> in HTML viene utilizzato per creare una lista non ordinata di elementi, mentre il tag <li> (list item) viene utilizzato all’interno del tag <ul> per definire ciascun elemento della lista.
  • Il tag <br> in HTML viene utilizzato per inserire un’interruzione di linea, cioè una nuova riga, all’interno di un documento HTML. Questo tag non ha un tag di chiusura (<br>) poiché è un tag vuoto, il che significa che non contiene contenuti o testo.
  • Il tag <img> in HTML viene utilizzato per inserire un’immagine all’interno di una pagina web. Questo tag è un elemento vuoto, il che significa che non ha un tag di chiusura e non contiene alcun contenuto. Questo tag prevede una serie di attributi quali: l’attributo src specifica l’URL o il percorso del file dell’immagine da visualizzare, l’attributo alt fornisce un testo alternativo che viene mostrato se l’immagine non può essere visualizzata, l’attributo width che fornisce indicazioni in merito alla grandezza dell’immagine, l’attributo height che fornisce indicazioni in merito alla altezza dell’immagine.
    .

Il codice

Viene in seguito riportato il codice di una ipotetica pagina web statica.



Figura: Esempio della pagina creata

Esercizio:

Realizzare il sito di una semplice ricetta che preveda la seguente struttura

  • Titolo
  • Immagine
  • Descrizione della ricetta
  • Lista degli ingredienti
  • Procedimento



C++ #15 Realizzazione di una Slot Machine

Obiettivo: Realizzare un programma che implementi una Slot Machine utilizzando il linguaggio di programmazione C++.

Il codice

Viene in seguito illustrato il codice utilizzato per implementare una semplice versione di una Slot Machine. Nel dettaglio, il codice prevede una netta distinzione tra il motore grafico che permette di stampare la griglia del gioco ed il codice di gestione del gioco (i.e., gestione dei soldi, controllo delle vincite, etc…).

  • Motore Grafico: La funzione void grafica(char s[]) ha il ruolo di stampare la griglia di gioco definita nell’array di caratteri t che contiene le informazioni relative alle celle del tabellone e aggiorna la console con il contenuto di ogni cella, disegnando una griglia di gioco.
Esempio componente grafica del gioco del tris

  • Codice di gestione del gioco: La dinamica del gioco viene sviluppata all’interno della funzione main. Nel dettaglio l’intero gioco viene implementato attraverso un ciclo while indefinito che prevede la condizione (soldi>0). In questo caso il giocatore continuerà a giocare fino a che avrà soldi a disposizione. Ogni volta che il giocatore preme invio per giocare, vengono rispettivamente: decrementi i soldi, generati nuovi valori nella griglia della slot, stampata la grafica, e controllate eventuali vincite.
    Sono inoltre definite una serie di funzioni, alcune già implementate ed altre invece da implementare al fine di terminare il gioco.
  • Costanti e Definizione dei colori: Utilizza macro per definire alcuni colori (rosso, verde, giallo, blu) per il testo in console e applicarli tramite escape codes. La macro NUMCELLE definisce la dimensione del tabellone (3×3 = 9 celle).
  • Funzione mySleep(int seconds): Definisce una versione personalizzata della funzione sleep, compatibile con l’ambiente di esecuzione online di OnlineGDB, per ritardare l’output di un certo numero di secondi. In aggiunta, std::cout.flush() forza l’output immediato del buffer di stampa.
  • Funzione intro(): Visualizza un messaggio: Best Slot Machine Ever usando colori diversi per ogni parola (“Best”, “Slot”, “Machine”, “Ever”) con una pausa tra ognuna. Chiede poi all’utente di premere Invio per proseguire.
  • Funzione regole(): È una funzione vuota che può essere riempita per mostrare le regole del gioco. Al momento, non ha alcuna implementazione.
  • Funzione generazioneSlot(int slot[]): genera il contenuto della slot machine riempiendo ogni cella con un numero casuale compreso tra 0 e 2. Ogni numero rappresenta un simbolo differente.
    Funzione conversioneSlot(int slot[], char slotCaratteri[]): converte i valori interi generati in generazioneSlot in caratteri. I valori rappresentano i simboli:
  • Funzione controlloVittoria(char s[], int &soldi): verifica se c’è una combinazione vincente nella slot machine



https://onlinegdb.com/cDD7cRgAy

Modifiche:

Al fine di rendere il gioco più avvincente è possibile introdurre una serie di modifiche:

  • Completare le funzioni di riferimento per terminare il gioco.
    Design più Creativo per il Tabellone: Offrire temi personalizzati per il tabellone e simboli differenti.



C++ #14 Realizzazione del tris

Obiettivo: Realizzare un programma che implementi il gioco del TRIS utilizzando il linguaggio di programmazione C++.

Il codice

Viene in seguito illustrato il codice utilizzato per implementare una semplice versione del gioco del TRIS. Nel dettaglio, il codice prevede una netta distinzione tra il motore grafico che permette di stampare la griglia del gioco ed il codice di gestione del gioco (i.e., scelta della posizione, controllo del vincitore etc…).

  • Motore Grafico: La funzione void grafica(char t[]) ha il ruolo di stampare la griglia di gioco definita nell’array di caratteri t che contiene le informazioni relative alle celle del tabellone e aggiorna la console con il contenuto di ogni cella, disegnando una griglia di gioco.
Esempio componente grafica del gioco del tris

  • Codice di gestione del gioco: La dinamica del gioco viene sviluppata all’interno della funzione main. Nel dettaglio l’intero gioco viene implementato attraverso un ciclo while indefinito che prevede l’impiego di due condizioni ((vittoriaG1==0) && (vittoriaG2==0)). In questo caso i giocatori continueranno a giocare fino a che uno dei due non vince e la variabile di riferimento è impostata uguale ad 1. Ogni volta che un giocatore sceglie la posizione all’interno della griglia, viene aggiornata la GUI attraverso la funzione, precedentemente illustrata, grafica(tabellone).
    Sono inoltre definite una serie di funzioni, alcune già implementate ed altre invece da implementare al fine di terminare il gioco.
  • Costanti e Definizione dei colori: Utilizza macro per definire alcuni colori (rosso, verde, giallo, blu) per il testo in console e applicarli tramite escape codes. La macro NUMCELLE definisce la dimensione del tabellone (3×3 = 9 celle).
  • Funzione mySleep(int seconds): Definisce una versione personalizzata della funzione sleep, compatibile con l’ambiente di esecuzione online di OnlineGDB, per ritardare l’output di un certo numero di secondi. In aggiunta, std::cout.flush() forza l’output immediato del buffer di stampa.
  • Funzione intro(): Visualizza un messaggio di benvenuto al gioco del tris usando colori diversi per ogni parola (“Il”, “Gioco”, “del”, “Tris”) con una pausa tra ognuna. Chiede poi all’utente di premere Invio per proseguire.
  • Funzione regole(): È una funzione vuota che può essere riempita per mostrare le regole del gioco. Al momento, non ha alcuna implementazione.
  • Funzione inserimentoPosizione(char tabellone[], char simbolo): Chiede all’utente di inserire una posizione (indice da 0 a 8) dove desidera giocare il proprio simbolo (‘x’ o ‘y’). La funzione aggiorna l’array tabellone on il simbolo alla posizione specificata. È presente un commento per inserire un controllo di validità per evitare inserimenti fuori dai limiti dell’array o su celle già occupate.
  • Funzione controlloVittoriaG1(char t[], char mark): Controlla se il giocatore ha vinto. Verifica solo una combinazione di vittoria, cioè se le prime tre celle del tabellone contengono lo stesso simbolo (mark). Ritorna 1 se la condizione è vera e 0 altrimenti. Questa funzione è molto semplice e non verifica tutte le combinazioni vincenti (orizzontali, verticali, diagonali), quindi necessita di ampliamento.



https://onlinegdb.com/4tpuwLrc3

Modifiche:

Al fine di rendere il gioco più avvincente è possibile introdurre una serie di modifiche:

  • Completare le funzioni di riferimento per terminare il gioco.
    Design più Creativo per il Tabellone: Offrire temi personalizzati per il tabellone e per i simboli (X e O) che i giocatori possono scegliere, creando un’esperienza più personalizzata.
  • Implementare una intelligenza artificiale come avversario, così i giocatori possono competere anche da soli (introdurre differenti livelli di difficoltà, facile medio e difficile).
  • Implementare un sistema di punteggio e statistiche che memorizzi il numero di vittorie, sconfitte e pareggi in una sessione.
  • Tabellone alternativo: realizzare un tabellone alternativo 4×4 del tris.



Java #1 Come realizzare il gioco della tombola in Java – La tombola Fanese

Obiettivo: Realizzare il gioco della tombola utilizzando il linguaggio di programmazione Java. Un progetto realizzato dagli alunni della classe terza del Istituto Tecnico Commerciale di Fano, Zaninati Luca, Cesarotti Valentina, Cuccaroni Edoardo, Bartoli Luca con la supervisione del Prof. Emanuele Tonucci

Teoria:

Il gioco della tombola è un tradizionale gioco da tavolo inventato a Napoli nel XVIII secolo come alternativa casalinga al gioco del lotto. Uno degli elementi caratterizzanti di questo gioco è il sistema di associazione tra numeri e significati di solito umoristici.
Elemento caratteristico del gioco è la casualità: un giocatore con il ruolo di croupier ha a disposizione un tabellone sul quale sono riportati i numeri da 1 a 90. Il croupier estrae i pezzi in modo casuale ed annuncia agli altri giocatori il numero uscito. L’annuncio termina generalmente con la citazione di una delle immagini che la trazione napoletana associa ai numeri da 1 a 90. I giocatori dispongono invece di una o più cartelle, ogni volta che il numero estratto è presente sulla scheda del giocatore questo copre la casella corrispondente. Vince il giocatore che per primo copre tutti e quindici i numeri presenti sulla scheda.

Scopo di questa lezione è implementare in codice Java il gioco della tombola, nello specifico il programma permetterà la gestione randomica dei numeri estratti, attività solitamente affidata al croupier.

Il codice:

Viene in seguito riportato il codice utilizzato per l’estrazione automatica dei 90 numeri.
Elemento caratterizzante della tombola è la personalizzazione della smorfia in dialetto Fanese.
Per gestire questi due elementi il tabellone e il testo associato ad ogni numero sono utilizzati due differenti array tombola e frasi con dimensione pari a 90.
Dopo la dichiarazione e relativa inizializzazione dell’array delle frasi, l’array tombola viene riempito con numeri casuali (da 1 a 90) utilizzando la classe rand del linguaggio di programmazione Java.
E’ importante considerare che l’array tombola non può contenere due volte lo stesso numero, per questo è stato implementato uno specifico meccanismo di controllo



Codice Eseguibile:


https://onlinegdb.com/b21Kj50g6




C++ #13 Realizzazione del gioco dell’oca in C++

Obiettivo: Realizzare un programma che implementi il gioco dell’oca utilizzando il linguaggio di programmazione C++.

Il codice

Viene in seguito illustrato il codice utilizzato per implementare una semplice versione del gioco dell’oca. Nel dettaglio, il codice prevede una netta distinzione tra il motore grafico che permette di stampare la griglia date le posizioni dei due giocatori ed il codice di gestione del gioco (i.e., lancio dei dadi aggiornamento della posizione, etc…).

  • Motore Grafico: La funzione void grafica(int pos1, int pos2) ha il ruolo di stampare la griglia di gioco date le posizioni pos1 e pos2 dei due differenti giocatori. Nel dettaglio viene stampata una griglia con 17 caselle su ognuna delle quali viene riportato un numero da 00 a 16. L’impiego delle variabili relative alle posizioni degli utenti sono utili per stampare sulla specifica posizione del giocatore gli indicatori “XX” e “YY”. Ogni volta che il giocatore cambia posizione attraverso questa funzione viene effettuato un refresh della pagina.
Esempio componente grafica del gioco dell’oca

  • Codice di gestione del gioco: La dinamica del gioco viene sviluppata all’interno della funzione main. Nel dettaglio l’intero gioco viene implementato attraverso un ciclo while indefinito che prevede l’impiego di due condizioni (pos1<NUMPOS) && (pos2<NUMPOS). In questo caso i giocatori continueranno a lanciare dadi fino a che un giocatore non supera la posizione definita dalla DEFINE NUMPOS. Ogni volta che viene lanciato un dado viene aggiornata la GUI attraverso la funzione, precedentemente illustrata, grafica(pos1, pos2).





Modifiche:

Al fine di rendere il gioco più avvincente è possibile introdurre una serie di modifiche:

  • Caselle speciali: per avanzare, indietreggiare, o saltare dei turni
  • Ponti: per passare da una casella ad un’altra.
  • Gestione dei dadi: si può prevedere un secondo lancio quando si ottiene un sei.



C++ #12 Realizzare un programma per creare ASCII Art con le matrici

Obiettivo: Realizzare un programma per creare immagini utilizzando le matrici in stile ASCII Art. Attraverso il codice può essere inoltre aggiunto il senso del movimento.

Il codice (statico)

Viene in seguito illustrato il codice utilizzato per stampare su console una forma specifica creata con caratteri. L’esempio specifico rappresenta una barchetta stilizzata.
Inizialmente, questo programma dichiara una matrice 11×11 e la inizializza con spazi vuoti. Successivamente, imposta alcuni caratteri specifici in posizioni specifiche della matrice per creare una forma particolare, e infine, stampa la matrice.

Ecco una descrizione dettagliata del funzionamento del codice:

  1. Inclusione delle librerie: Questo programma include le librerie <iostream> e <unistd.h> per la gestione delle operazioni di input/output.
  2. Dichiarazione della funzione foo: Questa funzione prende come argomento una matrice bidimensionale di caratteri di dimensione 11×11 e la stampa su console.
  3. Main: Il main prevede una inizializzazione della matrice ed una serie di comandi che permettono di impostare alcuni caratteri specifici (come asterischi e trattini) in posizioni specifiche della matrice per creare una forma particolare. Infine la funzione foo(matrix) viene utilizzata per stampare il contenuto della matrice sulla console.





Il codice (dinamico):

In questa versione del codice, viene aggiunto il movimento dell’immagine grazie all’utilizzo delle funzioni usleep e System(“clear”) che rispettivamente bloccano il codice per un numero dato di microsecondi e cancellano il testo sulla console.








C++ #11 Realizzare un programma per creare i gruppi di lavoro in modo casuale

Obiettivo: Realizzare un programma per creare i gruppi di lavoro in modo casuale utilizzando il linguaggio di programmazione C++. Il programma prevede di utilizzare una codifica intera per associare ad ogni persona un numero (ad esempio sfruttando l’ordine alfabetico dei cognomi di ogni partecipante). 

Il codice:

Questo programma scritto in C++ è progettato per suddividere un certo numero di alunni in gruppi di dimensioni specifiche e quindi assegnare casualmente ciascun alunno a un gruppo in modo da garantire che ogni gruppo abbia il numero desiderato di alunni.

Ecco una descrizione dettagliata del funzionamento del codice:

  1. Vengono dichiarate le variabili numAlunni, numGruppi, numAlunniGruppo, e numAlunniResidui per memorizzare il numero totale di alunni, il numero desiderato di gruppi, il numero di alunni per gruppo e il numero di alunni rimanenti non assegnati a un gruppo.
  2. L’utente viene invitato a inserire il numero di alunni della classe e il numero di gruppi desiderati. Ci sono alcune condizioni di controllo che verificano che il numero di gruppi non sia maggiore del numero di alunni e che entrambi i numeri siano positivi. Se queste condizioni non sono soddisfatte, il programma mostra un messaggio di errore e termina.
  3. Viene calcolato il numero di alunni per gruppo (numAlunniGruppo) dividendo il numero totale di alunni per il numero di gruppi.
  4. Viene calcolato il numero di alunni residui (numAlunniResidui) che non possono essere distribuiti uniformemente tra i gruppi. Questi alunni residui verranno assegnati casualmente ai gruppi successivamente.
  5. Viene dichiarato un array numAlunniGruppoVect per tenere traccia del numero di alunni in ciascun gruppo. Inizialmente, ogni gruppo avrà numAlunniGruppo alunni.
  6. I alunni residui vengono assegnati casualmente ai gruppi in modo da assicurare che tutti i gruppi abbiano il numero desiderato di alunni. Per fare ciò, viene utilizzato un ciclo while e un array estrattiAlunniVect per tenere traccia degli alunni già assegnati.
  7. Viene quindi dichiarato un array ordineAlunniVect per tenere traccia dell’ordine in cui gli alunni sono stati assegnati ai gruppi.
  8. Un ciclo while viene utilizzato per assegnare casualmente gli alunni ai gruppi finché non sono stati assegnati tutti gli alunni.
  9. Infine, viene stampata la composizione dei gruppi con il numero degli alunni in ciascun gruppo.

In sintesi, questo programma accetta il numero di alunni e il numero di gruppi desiderati, assegna casualmente gli alunni ai gruppi, assicurandosi che ogni gruppo abbia il numero corretto di alunni, e quindi visualizza la composizione dei gruppi.



Codice Eseguibile:






C++ #9 Scrittura e Lettura da File

Obiettivo: Gestire la lettura e la scrittura su file utilizzando le relative funzioni c++. 

Teoria:

Il fatto che un file abbia una vita indipendente dal programma utilizzato per la sua creazione/modifica/lettura permette l’implementazione di algoritmi complessi che prevedono l’impiego della memoria permanente e non solo della memoria volatile (tipicamente impiegata per l’elaborazione dei dati).
Le operazioni tipicamente effettuate da un programma su uno specifico file sono 4. Nel dettaglio:

  • Apertura: Il programma comunica al sistema operativo la necessità di accedere ad uno specifico file.
  • Chiusura: Il programma comunica al sistema operativo che non ha più necessità di accedere ad uno specifico file.
  • Apertura: Il programma richiede dei dati dal file come input.
  • Chiusura: Il programma intende scrivere dei dati in un file come output.

Attenzione: Un programma non può leggere o scrivere dei dati se prima non ha aperto il file in questione.

La libreria tipicamente utilizzata per la gestione dei file è la fstream (file con accesso contemporaneo sia in lettura che in scrittura).

Codice:








C++ #6 Esercizi con le funzioni

Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo delle funzioni.
Gli esercizi,  a complessità crescente, prevedono inizialmente la realizzazione di funzioni con passaggio dei parametri per valore ed in seguito per riferimento.

Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:


https://www.onlinegdb.com/online_c++_compiler

FUNZIONI CON PASSAGGIO PARAMETRI PER VALORE

1) Implementare una funzione che ricevuto un numero in ingresso restituisca il valore assoluto di tale numero. Realizzare un programma che utilizzi tale funzione.

2) Implementare una funzione che ricevuti due numeri in ingresso restituisca il numero maggiore. Realizzare un programma che utilizzi tale funzione.

3) Implementare una funzione che ricevuti in ingresso i valori della base e dell’altezza di un rettangolo restituisca il valore dell’area. Realizzare un programma che utilizzi tale funzione.

4) Implementare una funzione che ricevuti in ingresso i valori della base e dell’altezza di un rettangolo restituisca il valore del perimetro. Realizzare un programma che utilizzi tale funzione.

5) Implementare una funzione che ricevuto in ingresso un carattere restituisca il valore 0 se il carattere ricevuto è una consonante mentre restituisca 1 se il carattere ricevuto è una vocale. Realizzare un programma che utilizzi tale funzione.

6) Implementare una funzione che ricevuto un numero in ingresso restituisca il valore del fattoriale del numero ricevuto. Realizzare un programma che utilizzi tale funzione. Nota bene, il fattoriale di un numero N è N*(N-1)*(N-2)…*1

7) Implementare una funzione che ricevuti in ingresso due interi, calcoli il Minimo Comune Multiplo e restituisca tale valore. Realizzare un programma che utilizzi tale funzione.

8) Implementare una funzione che ricevuti in ingresso due interi, calcoli il Massimo Comune Divisore e restituisca tale valore. Realizzare un programma che utilizzi tale funzione.

9) Implementare una funzione che ricevuto in ingresso un numero intero, restituisca true se è un numero primo, altrimenti restituisca false. Realizzare un programma che utilizzi tale funzione.

10) Implementare una funzione che ricevuto in ingresso il valore dei cateti di un triangolo rettangolo, restituisca il valore dell’ipotenusa (il calcolo della radice quadrata può essere eseguito sfruttando la libreria matematica: math.h). Realizzare un programma che utilizzi tale funzione.

FUNZIONI CON PASSAGGIO PARAMETRI PER RIFERIMENTO

11) Implementare una funzione che ricevute due variabili in ingresso permetta di scambiare il valore di tale variabili. Realizzare un programma che utilizzi tale funzione.

12) Implementare una funzione che ricevuto in ingresso il valore della base e dell’altezza di un rettangolo permetta di calcolare area e perimetro. Questi ultimi due valori devono essere passati sfruttando la tecnica del riferimento. Realizzare un programma che utilizzi tale funzione.

13) Implementare una funzione che ricevuto in ingresso il valore dei parametri a, b, e c di una equazione di secondo grado ax2+bx+c=0 calcoli le soluzioni x1 e x2 della suddetta equazione . Questi ultimi due valori devono essere passati sfruttando la tecnica del riferimento. Realizzare un programma che utilizzi tale funzione.

14) Implementare una funzione che ricevuti in ingresso il valore del numeratore e denominatore di due differenti frazioni, calcoli numeratore e denominatore della frazione ottenuta moltiplicando le due precedenti frazioni. Questi ultimi due valori devono essere passati sfruttando la tecnica del riferimento. Realizzare un programma che utilizzi tale funzione.

15) Implementare una funzione che ricevuti in ingresso il valore del numeratore e denominatore di una frazione, riduce la frazione ai minimi termini. Realizzare un programma che utilizzi tale funzione.

16) Implementare una funzione che ricevuti in ingresso il valore del numeratore e denominatore di due differenti frazioni, calcoli numeratore e denominatore della frazione ottenuta sommando le due precedenti frazioni. Questi ultimi due valori devono essere passati sfruttando la tecnica del riferimento. Realizzare un programma che utilizzi tale funzione.

FUNZIONI CON PASSAGGIO DI ARRAY

17) Implementare una funzione che ricevuto in ingresso un array e la sua dimensione inserisca al suo interno tutti zero. Realizzare un programma che utilizzi tale funzione.

18) Implementare due differenti funzioni. Una prima funzione che ricevuti in ingresso un array e la sua dimensione, inserisca al suo interno valori scelti dall’utente. Una seconda funzione che ricevuti in ingresso un array e la sua dimensione riporti i valori contenuti nell’array. Realizzare un programma che utilizzi tali funzioni di input e output.

19) Implementare una funzione che ricevuti in ingresso un array e la sua dimensione calcoli il valore massimo presente all’interno dell’array e lo restituisca. Realizzare un programma che utilizzi tale funzione.

20) Implementare una funzione che ricevuti in ingresso un array, la sua dimensione, ed un interno N, calcoli quante volte il valore N è presente all’interno dell’array e lo restituisca. Realizzare un programma che utilizzi tale funzione.

ANALISI DI CODICE

21) Esercizi di analisi di codice (passaggio per valore e per riferimento)