Anteprima
Vedrai una selezione di 9 pagine su 36
Informatica Pag. 1 Informatica Pag. 2
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Informatica Pag. 6
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Informatica Pag. 11
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Informatica Pag. 16
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Informatica Pag. 21
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Informatica Pag. 26
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Informatica Pag. 31
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Informatica Pag. 36
1 su 36
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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: ```html

dicitura: 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

Dettagli
Publisher
A.A. 2021-2022
36 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher luisa_pis di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Sansone Carlo.