Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Riempimento
Rappresenta il numero di componenti effettivamente usato nella compilazione del programma. Spesso non coincide con il numero di componenti dichiarato nel programma. All'inizio del programma esso assume sempre valore zero.
PROGRAMMAZIONE Pagina 7
PROGRAMMAZIONE Pagina 8
18-19-20 novembre
martedì 8 febbraio 2022 09:00
PROGRAMMAZIONE Pagina 9
PROGRAMMAZIONE Pagina 10
PROGRAMMAZIONE Pagina 11
PROGRAMMAZIONE Pagina 12
PROGRAMMAZIONE Pagina 13
Parte teorica La modularità
Esiste la tecnica top-down permette di realizzare dei programmi più efficienti, ovvero i moduli. Ciò che fa il modulo e come interagisce con gli altri moduli è chiamata interfaccia. Per la realizzazione di tale tecnica si ha un processo che produce sottoproblemi. Nel linguaggio di programmazione il sottoproblema è definito come sottoprogramma. Il sottoprogramma permette di assegnare a una sequenza di istruzioni un nome che può essere utilizzato con una sua abbreviazione e che
può essere inserito al suo posto nel programma. Il sottoprogramma è definito da parametri formali (che scrivono il programma in forma generelazzata) e da parametri attuali o effettivi (che sono associati ai formali quando il programma viene eseguito). Quando il sottoprogramma è rappresentato da un risultato viene chiamato funzione, negli altri casi è chiamato procedura. Esso è composto dall'intestazione e dal corpo. L'intestazione è il nome, invece il corpo è l'insieme delle istruzioni ed è delimitato dalle parentesi graffe. Durante la stesura di un sottoprogramma si userà la chiamata di procedura. Essa è un'istruzione di salto.
Il sottoprogramma deve conoscere i valori dei parametri di ingresso e come comunicare i risultati. Esistono, quindi, due meccanismi di associazione dei parametri effettivi con quelli formali, essi sono la sostituzione per valore (il parametro effettivo viene ricopiato
nel parametro formale, il sottoprogramma opera su una copia senza modificare il parametro effettivo.) e la sostituzione per riferimento(ilsottoprogramma lavora direttamente sul parametro effettivo.).Notiamo la differenza tra chiamata per valore e per riferimento quanto dichiariamo le variabili, per quelle di riferimento usiamo "&".La sostituzione per valore la uso quando i parametri formali sono solo di ingresso, negli altri casi uso quella per riferimento.Procedure e funzioniLe procedure sono dei sottoprogrammi che non riportano un risultato ovvero una stampa. Esse hano le seguenti proprietà:Sono eseguite solo mediante una specifica attivazione, ovvero la chiamata;Svolgono compiti ben definiti;Scambiano con il programma informazioni tramite il meccanismo di sostituzione per valore o riferimento.Dal punto di vista sintattico sono definite da:Dichiarazione del titolo e intestazione del corpoMeccanismo di attivazione.Un esempio semplice di un possibile codiceÈ:Void somma(int a, int b, int& c) ovvero ho:{ il nome della procedura (somma), la parola chiave VOID che mi fa capire che sto analizzando una procedura. c=a+b; (void lo uso perché non restituisce un risultato.). Tra le parentesi tonde specifico i parametri formali di ingresso-uscita e del meccanismo di sostituzione.} -uscita e del meccanismo di sostituzione. Come attivo una procedura? Uso le seguenti istruzioni: Int num1,num2,num3; Num1=3; Num2=4; //posso attivare somma in 2 modi somma(num1,num2,num3); somma(3,4,num3); Le funzioni sono dei sottoprogrammi che riportano un risultato ovvero una stampa. Essa è definita da: Il nome della funzione Intestazione Un esempio di codice e: Int somma(int a, int b) ovvero ho:{ il nome della funzione (somma), il tipo restituito dalla funzione (int), il corpo della funzione è costituito dall'istruzione Return a+b; return} Come attivo una funzione? Uso le seguenti istruzioni: Int num1,num2,num3; Num1=3; Num2=4; //posso attivare somma in 2 modi Num3= somma(num1,num2); Num3=somma(3,4);
PROGRAMMAZIONE Pagina 1425-26-27 novembre venerdì 11 febbraio 2022 09:10
PROGRAMMAZIONE Pagina 15
PROGRAMMAZIONE Pagina 16
PROGRAMMAZIONE Pagina 17
PROGRAMMAZIONE Pagina 18
PROGRAMMAZIONE Pagina 19
Parte teorica Break È un istruzione che viene usato all'interno del ciclo while, do-while e soprattutto all'interno dello switch. Esso consente di uscire, una volta eseguito il corpo del ciclo, da esso.
Switch PROGRAMMAZIONE Pagina 20
Switch Esso è un costrutto e consente di scegliere l'istruzione di inizio della esecuzione in una sequenza di istruzioni. Calcola il valore di un' espressione detta selettore e successivamente la confronta con una serie di valori indicati con la parola case. La struttura è:
Switch(selettore) il selettore viene confrontato prima con cost1, se è uguale si ferma se è diverso lo confronta con cost2….
{Case cost1: S1;……Case costn:Sn;}
La struttura dello switch è definito da
blocchi quando è presente il break.Stringa è una sequenza di caratteri dotata di una lunghezza, è definita come un array di char ed ogni suo elemento è un carattere della stringa.
Char nome_stringa[dimensione];
Il termine della stringa è indicato da '\0' (terminatore di stringa). Come l'array, anche con la stringa bisogna specificare la lunghezza.
Per la definizione del tipo stringa è opportuno scrivere:
char* nome_stringa;
Le elaborazioni tipiche delle stringhe sono:
- Calcolo della lunghezza
- Assegnazione della stringa S1 ad S2
- Concatenazione di s2 a s1 genera una terza stringa in cui la sequenza di caratteri di s2 viene accodata a quella di s1 con lunghezza complessiva che è la somma delle lunghezze di s1 e s2.
- Confronto tra 2 stringhe
- Estrazione di una sottostringa di s1 di lunghezza lung1, genera una nuova stringa prelevando n caratteri da s1 a partire dalla posizione pe compresa tra 1 e lung1. La lunghezza di s2 sarà lung2 = n quando p+n.
è minore od uguale a lung1Zero se p è maggiore di lung1Uguale a lung-p+1 negli altri casi
PROGRAMMAZIONE Pagina 21Stringhe
Il programma mette a disposizione la libreria string.h nella quale si trovano le funzioni che gestiscono le stringhe.
Per usare tali funzione bisogna sempre aggiungere all'inizio del programma
#include <string.h>
Tali funzioni sono:
PROGRAMMAZIONE Pagina 222-3-4 dicembresabato 12 febbraio 2022 15:34
PROGRAMMAZIONE Pagina 23
PROGRAMMAZIONE Pagina 24
PROGRAMMAZIONE Pagina 25
PROGRAMMAZIONE Pagina 26
Parte teorica Puntatore
È un indirizzo di una locazione di memoria che contiene l'indirizzo di memoria. Esso associa ad ogni variabile un insieme di locazioni dimemoria con indirizzi che servono per la rappresentazione di un valore.
Dichiarazione di un puntatore
Quando dichiaro una variabile puntatore devo sempre specificare il tipo a cui deve puntare:
Nome_tipo* nome_puntatore
Per la dichiarazione di più variabile è necessaria tale
dell'utente. Per fare ciò, possiamo utilizzare l'operatore `new` per allocare dinamicamente la memoria necessaria e restituire un puntatore al blocco di memoria allocato. Ecco un esempio di come utilizzare l'allocazione dinamica: ```htmldicitura: int *p1, *p2, *p3;
Quando ad una variabile puntatore non associo nessun valore essa assume il valore di zero e si chiama puntatore nullo.
Per la gestione delle variabili uso 2 operatori "&" e "*". "&" la uso perché restituisce l'indirizzo della variabile -----> punt=&x assegno a punt l'indirizzo di memoria di x. "*" è applicabile solo a variabili di tipo puntatore, serve per accedere al valore della variabile---> *punt=15 assegno ad x il valore di 15.
Operazioni sui puntatori
Un puntatore contiene una variabile che può essere manipolata solo che il suo valore è trattato come un indirizzo ed è sempre un valore positivo.
Le operazioni ammissibili sono somma e sottrazione:
Punt+n, *punt++,(*punt)++, *punt++=val, val=*--punt
Allocazione dinamica
Si può utilizzare esattamente la quantità di memoria necessaria per l'applicazione che può variare di volta in volta a seconda della specifica dell'utente. Per fare ciò, possiamo utilizzare l'operatore "new" per allocare dinamicamente la memoria necessaria e restituire un puntatore al blocco di memoria allocato.
``` Ricorda che il codice HTML deve essere inserito all'interno dei tag `` e `` per essere visualizzato correttamente in un browser.Esecuzione del programma. Nell'allocazione dinamica è il programmatore che controlla la gestione della memoria tramite gli operatori new e delete o tramite le funzioni malloc e free. Delete e new
L'operatore new è usato per restituire l'indirizzo. Quando l'area è interamente occupata verrà restituito il valore di null come condizione di errore. Per usare tale operatore devono essere sempre specificati:
- <T> il tipo della variabile da creare
- Dimensione il numero delle variabili da creare
- Valore iniziale valore iniziale con cui l'area allocata viene inizializzata.
Ex: int* punt= new int
L'operatore delete dealloca la memoria dell'area riferita dal puntatore specificato, non restituisce nessun valore. Il delete : dichiara libera la zona di memoria riferita da punt, non cancella il contenuto delle locazioni di memoria rilasciate, non cancella il contenuto della variabile puntatore.
PROGRAMMAZIONE
Pagina 289-10-11 dicembre
Martedì 15 febbraio 2022 09:12
PROGRAMMAZIONE
Pagina 29PROGRAMMAZIONE
Pagina 30PROGRAMMAZIONE
Pagina 31PROGRAMMAZIONE
Pagina 32PROGRAMMAZIONE
Pagina 33PROGRAMMAZIONE