3° Anno TEORIA 9. Tipi di dato strutturato: vettori e record | Page 67

8 : I dati e la loro struttura nella programmazione ( ARRAY , MATRICI , RECORD ) Vers . 8.2 – Settembre 2022
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 . 67