8: I dati e la loro struttura nella programmazione( ARRAY, MATRICI, RECORD) Vers. 10.0 – Maggio 2025
ALGORITMO CaricaVisualizzaAssegnaRecord _ Prodotto _ SICONTROL _ SISUBREC
TIPO DettaglioProdotto = RECORD CodProdotto: ARRAY [ 6 ] DI CHAR NomeProdotto: ARRAY [ 25 ] DI CHAR
FINE RECORD
...... Ambiente globale
TIPO Prodotto = RECORD DatiP: DettaglioProdotto Giacenza: INT Prezzo: REAL
FINE RECORD
PROCEDURA main() p1, p2: Prodotto
Ambiente locale
INIZIO
/* leggo il record p1 campo x campo( operazione NON ATOMICA) SENZA EFFETTUARE tutti i controlli */ RIPETI
Leggi( p1. DatiP. CodProdotto) FINCHE’( p1. DatiP. CodProdotto ≠ "") AND( Lunghezza( p1. DatiP. CodProdotto) ≤ 6)
RIPETI
Leggi( p1. DatiP. NomeProdotto) FINCHE’( p1. DatiP. NomeProdotto ≠ "") AND( Lunghezza( p1. DatiP. NomeProdotto) ≤ 25)
RIPETI
Leggi( p1. Giacenza) FINCHE’( p1. Giacenza ≥ 0) AND( p1. Giacenza ≤ 9999)
RIPETI
Leggi( p1. Prezzo) FINCHE’( p1. Prezzo ≥ 0) AND( p1. Prezzo ≤ 999.99)
/* visualizzo il record p1 campo x campo( operazione NON ATOMICA)*/ Scrivi( p1. DatiP. CodProdotto) Scrivi( p1. DatiP. NomeProdotto) Scrivi( p1. Giacenza) Scrivi( p1. Prezzo)
/* Assegnazione tra 2 record( operazione ATOMICA) – in questo caso equivale a 4 assegnazioni */ p2 � p1(*)
/* visualizzo il record p2 campo x campo( operazione NON ATOMICA)*/ Scrivi( p2. DatiP. CodProdotto) Scrivi( p2. DatiP. NomeProdotto)(*) p2. DatiP. CodProdotto � p1. DatiP. CodProdotto p2. DatiP. NomeProdotto � Scrivi( p2. Giacenza) p1. DatiP. NomeProdotto Scrivi( p2. Prezzo) p2. Giacenza � p1. Giacenza
FINE
�
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 68