Programmazione Procedurale

Slides:



Advertisements
Presentazioni simili
I DATI I PRINCIPALI TIPI DI DATO UTILIZZATI IN PROGRAMMAZIONE
Advertisements

Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A CDL in Ingegneria Meccanica - A.A Tipi di dati Ing. Simona Colucci.
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Tipi di dati Ing. Simona Colucci.
G. Mecca – – Università della Basilicata Basi di Dati Progettazione di Basi di Dati: Introduzione versione 2.0 Questo lavoro è concesso.
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.
Tecnologie di Sviluppo per il Web
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Algoritmi e Strutture Dati
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 7 - Tabelle hash Alberto Montresor Università di Trento This work is licensed under the Creative.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Dichiarazioni e tipi predefiniti nel linguaggio C
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
CODIFICA Da flow-chart a C++.
Riconfigurare il diritto dautore. Lipertesto, una necessità di riconfigurazione. Secondo G. P. Landow, lavvento dellipertesto implica la necessità di.
Tipi di dati semplici in C (1/3)
1 Numeri interi e numeri in virgola mobile F. Bombi 2 6 novembre 2003.
Programmazione Procedurale in Linguaggio C++
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Appunti su formati numerici. Tipi numerici Il C dispone di due tipi numerici: tipi interi e tipi reali; I tipi reali sono anche detti floating, ovvero.
Fondamenti di Informatica A - Massimo Bertozzi LE FUNZIONI.
Fondamenti di Informatica A - Massimo Bertozzi I PUNTATORI.
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella.
NUMERI ed ERRORI MANOLO VENTURIN UNIVERSITÀ DEGLI STUDI DI PADOVA DIP. DI MATEMATICA PURA ED APPLICATA A. A. 2007/2008.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Tipi e Valori Moreno Marzolla
Gestione della memoria
© 2007 SEI-Società Editrice Internazionale, Apogeo
Java World Introduzione.
Java: concetti e costrutti base
Introduzione al linguaggio C
Linguaggio C: Espressioni
Lezione 2 Fondamenti di Programmazione.
Il linguaggio C Strutture Moreno Marzolla
Lezione 2 Fondamenti di Informatica-Modulo Fondamenti di Programmazione.
Logica binaria Moreno Marzolla
Commenti Ogni riga che comincia con il simbolo # non viene letta dall’interprete per cui rappresenta un modo per commentare il listato # Questo è un esempio.
TIPI PRIMITIVI TIPI STRUTTURATI
JAVA usa una rappresentazione in VIRGOLA MOBILE
Corso Java Introduzione.
Tipo Carattere Finora abbiamo lavorato con valori numerici.
Programmazione e Laboratorio di Programmazione
Linguaggio C++ Selezione.
Secondo Programma in C.
Esercitazioni di C++ 31 dicembre 2018 Claudio Rocchini IGMI.
Programmazione e Laboratorio di Programmazione
Algebra Booleana.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo
La struttura dei primi programma in C
Le stringhe in C++ Laboratorio 26 Aprile Dott. Serena Villata
Programmazione e Laboratorio di Programmazione
Le variabili Tipo Valori ammissibili
Programmazione e Laboratorio di Programmazione
Unità 1 Programmi base.
Java Introduzione.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Programmazione e Laboratorio di Programmazione
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
Programmazione e Laboratorio di Programmazione
Programmazione Procedurale
Programmazione Procedurale
Transcript della presentazione:

Programmazione Procedurale 09/12/2019 Programmazione Procedurale Elementi di Base Dettagli e Approfondimenti versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca – Università della Basilicata – mecca@unibas.it

Sommario Approfondimenti sui Tipi di Dato Espressioni 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Sommario Sommario Approfondimenti sui Tipi di Dato Altri Tipi di Dato Espressioni G. Mecca - Programmazione Procedurale

Approfondimenti sui Tipi di Dato 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Approfondimenti sui Tipi di Dato Finora ci siamo concentrati solo sui tipi di dato fondamentali del C++ Ma esistono altri tipi di dato le regole di compatibilità sono più complesse di quelle che abbiamo descritto G. Mecca - Programmazione Procedurale

Altri Tipi di Dato Esistono altri tipi Intero corto: short int 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Altri Tipi di Dato Esistono altri tipi Intero corto: short int esempio: short int raggio; 16 bit di memoria, valori (-32768, +32767) Intero lungo: long int esempio: long int risultato; tipicamente: bit int ≤ bit long int G. Mecca - Programmazione Procedurale

Altri Tipi di Dato Intero con segno/senza segno 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Altri Tipi di Dato Intero con segno/senza segno signed int risultato; signed short int risultato; unsigned int risultato; unsigned long int risultato; Reali lunghi: long double esempio: long double circonferenza; tipicamente: #bit double < #bit long double G. Mecca - Programmazione Procedurale

Altri Tipi di Dato Caratteri con segno/senza segno Inoltre 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Altri Tipi di Dato Caratteri con segno/senza segno char car1; (-127,127) unsigned char car2; (0,255) Inoltre esiste un tipo per rappresentare caratteri al di fuori del set di caratteri ASCII standard tipo wchar_t (“wide char type”) normalmente 16 bit per la rappresentazione dipende dal compilatore G. Mecca - Programmazione Procedurale

Altri Tipi di Dato Attenzione Esempio 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Altri Tipi di Dato Attenzione a differenza di quanto affermato per semplicità in precedenza, lo spazio assegnato a ciascun tipo di dato non è fisso dipende dal compilatore e dal processore Esempio in alcune macchine int può essere di 32 bit in altre macchine di 16 bit G. Mecca - Programmazione Procedurale

Altri Tipi di Dato Operatore sizeof Sintassi 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Altri Tipi di Dato Operatore sizeof operatore fornito dal linguaggio per scoprire la dimensione esatta attribuita dal processore ad una variabile o un tipo di dato Sintassi sizeof(<tipo>) sizeof(<variabile>) G. Mecca - Programmazione Procedurale

Altri Tipi di Dato Esempi int i; 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Altri Tipi di Dato Esempi int i; cout << "i : " << sizeof(i); //4 cout << "short int: " << sizeof(short int); //2 cout << "int : " << sizeof(int); //4 cout << "long int: " << sizeof(long int); //4 cout << "char : " << sizeof(char); //1 cout << "float: " << sizeof(float); //4 cout << "double: " << sizeof(double); //8 cout << "long double:“<< sizeof(long double);//10 G. Mecca - Programmazione Procedurale

Una Classificazione Complessiva 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Una Classificazione Complessiva Tipi di base del C++ tipi “enumerabili” tipo booleano bool tipi carattere char unsigned char wchar_t tipi interi short int long unsigned short unsigned int unsigned long tipi in virgola mobile float double long double G. Mecca - Programmazione Procedurale

Compatibilità tra Tipi 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Compatibilità tra Tipi Le regole complete di compatibilità tra tipi sono più complesse di quanto visto finora tutti i tipi di base sono compatibili tra loro In particolare il tipo char è considerato un tipo numerico (valore di un carattere pari al codice ASCII) il tipo bool è considerato un tipo numerico (valore pari a 0 oppure 1); qualsiasi valore diverso da 0 è considerato true G. Mecca - Programmazione Procedurale

Compatibilità tra Tipi 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Compatibilità tra Tipi Esempio: int i; bool b; char c; c = ‘a’; i = c; // assegno un char ad un int b = i; // assegno un int ad un bool cout << c << “ “ << i << “ “ << b; a 97 1 G. Mecca - Programmazione Procedurale

Compatibilità tra Tipi 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Compatibilità tra Tipi Gerarchia di Tipi Numerici tipo booleano: bool (tipo meno generale) tipi carattere: char, unsigned char tipi interi: short int, int, long int (tutti signed e unsigned) tipi reali: float, double, long double (tipi più generali) Nelle espressioni sono compatibili troncamento e ampliamento G. Mecca - Programmazione Procedurale

Compatibilità tra Tipi 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Approfondimenti sui Tipi Compatibilità tra Tipi Attenzione queste sono da considerarsi idiosincrasie del C/C++ (non presenti in FORTRAN) è opportuno evitare di utilizzare queste funzionalità (i caratteri sono diversi dagli interi) è importante conoscerle perché a volte nascondono errori (es: assegnazioni errate) G. Mecca - Programmazione Procedurale

Espressioni Un altro esempio di stranezza del C/C++ In particolare 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Espressioni Espressioni Un altro esempio di stranezza del C/C++ in C++ tutte le istruzioni sono in effetti considerate espressioni ovvero regole per calcolare un valore In particolare le istruzioni di assegnazione sono complessivamente anche espressioni le istruzioni di lettura e stampa sono complessivamente anche espressioni G. Mecca - Programmazione Procedurale

Assegnazioni Operatore di assegnazione (=) Esempio 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Espressioni Assegnazioni Operatore di assegnazione (=) ha una duplice funzione assegna il valore a destra alla variabile a sinistra restituisce il valore assegnato Esempio int a; a = 1; // assegna 1 ad a e restituisce 1 E’ possibile includere le assegnazioni in espressioni più complesse G. Mecca - Programmazione Procedurale

Assegnazioni Esempio n.1 equivalente a; Esempio n.2 int a, b, c; 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Espressioni Assegnazioni Esempio n.1 int a, b, c; c = (a = 5) + (b = 7); equivalente a; a = 5; b = 7; c = a + b; Esempio n.2 a = (b = (c = 0)); // equivalente a a=b=c=0; c = 0; b = 0; a = 0; G. Mecca - Programmazione Procedurale

Istruzioni di Lettura e Stampa 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Espressioni Istruzioni di Lettura e Stampa Operatore di Lettura (>>) ha una duplice funzione acquisisce il valore da assegnare alla var restituisce 1 se la lettura si è svolta correttamente, 0 se c’è stato un errore Anche in questo caso è possibile combinare le istruzioni di lettura e stampa in espressioni più complesse Esempio int a, b, c; cout << (cin >> a); // stampa 0 se c’è errore G. Mecca - Programmazione Procedurale

Espressioni Possono essere complesse Esempi 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Espressioni Espressioni Possono essere complesse Il C++ fornisce numerosi altri operatori le regole di precedenza sono intricate Esempi operatori “bit a bit”: &, |, ~ operatori di scorrimento: >>, << operatore condizionale: ? operatore “virgola”: , G. Mecca - Programmazione Procedurale

Espressioni Operatori unari con effetti collaterali 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Espressioni Espressioni Operatori unari con effetti collaterali possono essere postfissi o prefissi Operatore postfisso effetto collaterale dopo la valutazione es: a++ (valuta a e poi la incrementa) Operatore prefisso effetto collaterale prima della valutazione es: ++a (incrementa a e poi valuta) G. Mecca - Programmazione Procedurale

Espressioni Esempio 1 int i, j, k; i = 10; j = 20; 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Espressioni Espressioni prima viene valutata la sottoespressione a (valore 10) e poi la variabile viene incrementata Esempio 1 int i, j, k; i = 10; j = 20; k = i++ + j; // k vale 30 k = ++i + j; // k vale 31 prima viene incrementata la variabile a (valore 11) e poi viene valutata la sottoespressione G. Mecca - Programmazione Procedurale

Una Annotazione Importante 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Espressioni Una Annotazione Importante Attenzione è possibile programmare benissimo anche ignorando le stranezze descritte in questa lezione anzi, per molti versi si programma meglio se queste cose non vengono usate servono a rendere più compatto ma anche più incomprensibile il codice G. Mecca - Programmazione Procedurale

Riassumendo Approfondimenti sui Tipi di Dato Espressioni 09/12/2019 Elementi di Base: Dettagli e Approfondimenti >> Sommario Riassumendo Approfondimenti sui Tipi di Dato Altri Tipi di Dato Espressioni G. Mecca - Programmazione Procedurale

09/12/2019 Termini della Licenza Termini della Licenza This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. G. Mecca - Programmazione Procedurale