Fondamenti Di Programmazione

LAB Stampa Menu

Esercizio di Laboratorio sui Sottoprogrammi: introduzione al concetto di Procedura senza valore di ritorno attraverso la Stampa di un Menu Grafico Opzioni.

Durata

20 minuti

Software

Flowgorithm / Pseudocodice

Linguaggio

Diagrammi di Flusso

Stampa del Menu Grafico con una Procedura

Argomenti: introduzione alle Procedure, sottoprogrammi senza valore di ritorno (Void), formattazione output, interfaccia utente

In questo laboratorio introduciamo il secondo tipo di sottoprogramma: la Procedura. A differenza delle Funzioni viste finora, una procedura non calcola un risultato da restituire al Main (non usa l'istruzione Ritorna), ma esegue un'azione pratica, come la stampa di una cornice grafica o di un menu opzioni.

Traccia dell'Esercizio:

Progetta un algoritmo per la gestione di un semplice registratore di cassa che mostri a schermo un Menu Grafico di Opzioni prima di leggere la scelta dell'utente.

L'algoritmo deve:

  • Definire la procedura StampaMenu() che stampa una cornice decorativa e le tre opzioni disponibili (1. Nuova Vendita, 2. Ristampa Scontrino, 3. Uscita).
  • Nel programma principale (Main), invocare la procedura StampaMenu().
  • Leggere la scelta effettuata dall'utente (un numero intero da 1 a 3) e confermare l'operazione selezionata con un messaggio di testo.

1. Tabella delle Variabili e Dominio dei Dati

Memoria: Dichiarazione e Ruolo delle Variabili e dei Parametri

Ambito (Scope) Nome Variabile Tipo di Dato Ruolo / Descrizione
Procedura
StampaMenu
Nessuna Void (Nessuno) Nessun parametro e nessun valore di ritorno: Esegue soltanto le istruzioni di output a schermo.
Main
Programma Principale
scelta Intero Input: Memorizza l'opzione selezionata dall'utente (1, 2 o 3).

2. Algoritmo Risolutivo e Diagramma di Flusso

Rappresentazione: Flowchart e Pseudocodice affiancati

Diagramma di Flusso (Flowchart):
Diagramma di Flusso Procedura Stampa Menu
Procedura StampaMenu: Blocchi di output sequenziali
Main: Chiamata StampaMenu() ➔ Leggi scelta
Pseudocodice con Numeri di Riga:
1 // DEFINIZIONE DELLA PROCEDURA (Senza Ritorna)
2 Procedura StampaMenu()
3     Scrivi "================================"
4     Scrivi " MENU REGISTRATORE DI CASSA "
5     Scrivi "================================"
6     Scrivi " 1. Nuova Vendita"
7     Scrivi " 2. Ristampa Scontrino"
8     Scrivi " 3. Uscita"
9     Scrivi "================================"
10 Fine Procedura
11
12 // PROGRAMMA PRINCIPALE (MAIN)
13 Inizio
14     Intero scelta
15
16     // Chiamata diretta della procedura
17     StampaMenu()
18
19     Scrivi "Seleziona un'opzione (1-3):"
20     Leggi scelta
21
22     Scrivi "Hai selezionato l'opzione numero: ", scelta
23 Fine

3. Tabella di Traccia dell'Esecuzione (Trace Table)

Simulazione: Traccia dell'invocazione della procedura e lettura dell'input (scelta = 1)

Passo / Riga Ambito (Scope) Azione / Istruzione Valore Restituito Stato Variabile (scelta)
Riga 14 Main Dichiarazione variabile - scelta = ?
Riga 17 Procedura StampaMenu() Stampa a schermo della cornice e delle 3 opzioni Nessuno (Void) scelta = ?
Righe 19-20 Main Prompt e lettura input utente (es. inserisce 1) - scelta = 1
Riga 22 Main Stampa del messaggio di conferma finale - scelta = 1

Osservazione

Nota come alla riga 17 la procedura StampaMenu() venga invocata come una semplice istruzione singola, senza la necessità di essere assegnata a una variabile (es. non si scrive x = StampaMenu()). Questo perché le procedure non restituiscono alcun dato al programma principale!

La Sfida: Menu Interattivo Ripetuto con Ciclo

Ora che hai capito come creare e chiamare una procedura per la stampa del menu, accetti la sfida?

Modifica il programma principale (Main) per fare in modo che il menu continui a comparire finché l'utente non decide di uscire:

  • Inserisci la chiamata a StampaMenu() e la lettura della scelta all'interno di un ciclo Mentre (scelta != 3).
  • Utilizza una struttura Se...Altrimenti (o uno Scegli/Switch) per mostrare messaggi personalizzati per le opzioni 1 e 2.
  • Quando l'utente inserisce l'opzione 3, il ciclo termina e l'algoritmo mostra il messaggio "Arrivederci!".

Suggerimento: La procedura StampaMenu() non deve essere modificata! Sfrutta il suo riutilizzo chiamandola all'inizio di ciascuna iterazione del ciclo.


In sintesi

Argomenti: concetti principali, riepilogo, competenze

  1. Differenza chiave: a differenza della Funzione, la Procedura esegue una serie di azioni e NON utilizza l'istruzione Ritorna.
  2. Utilità pratica: isolare la logica dell'interfaccia utente (stampa menu e cornici) rende il codice del Main pulito e leggibile.

Cosa hai imparato
  1. Comprendere il concetto di Procedura (sottoprogramma di tipo Void).
  2. Invocare una procedura all'interno del programma principale come un'istruzione a sé stante.
  3. Riconoscere quando conviene usare una Procedura rispetto a una Funzione.


Esercizio Svolto, Algoritmi, Procedure, Void, Menu Grafico, Interfaccia, Pseudocodice,