Flusso logico di un programma
|
|
- Lidia Lazzari
- 5 anni fa
- Visualizzazioni
Transcript
1 Fondamenti di Informatica e Programmazione Elementi di Informatica e Progrmmazione prof. Massimiliano Redolfi massimiliano.redolfi@ing.unibs.it 2013/2014 Flusso logico di un programma prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/2014 2
2 Il controllo del flusso di un programma start Nessun controllo di flusso la sequenza di istruzioni eseguite non cambia mai il flusso logico di qualsiasi istanza dell applicazione rimane sempre identico, è fissato al momento della scrittura del codice un modo di programmare un po rigido e poco utile end prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Il controllo del flusso di un programma start? Istruzioni di selezione a seconda di una condizione il flusso logico del programma può proseguire in una direzione o in un altra il programma assume una certa dinamicità, può adattarsi alle situazioni esterne end prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/2014 4
3 Il controllo del flusso di un programma start Istruzioni di selezione no T>1000 si Un istruzione di selezione può essere utile per verificare condizioni critiche e nel caso attivare un allarme Allarme!! Avvia lavorazione Blocca impianto Chiaramente si può usare in altri casi end prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Il controllo del flusso di un programma start Esegui X Ripeti? si Iterazioni o cicli permettono di ripetere più volte una stesso blocco di istruzioni per certi versi sono simili a istruzioni di selezione in cui un ramo riporta all istruzione condizionale no end prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/2014 6
4 Il controllo del flusso di un programma: esempio Vogliamo scrivere la tabellina del 2 prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Il controllo del flusso di un programma: esempio Tabellina del 2: Modo 1 #include <stdio.h> int main(void) { printf( Tabellina del 2\n"); printf( 1x2! 2\n"); printf( 2x2! 4\n"); printf( 3x2! 6\n"); printf( 4x2! 8\n"); printf( 5x2! 10\n"); printf( 6x2! 12\n"); printf( 7x2! 14\n"); printf( 8x2! 16\n"); printf( 9x2! 18\n"); printf( 10x2! 20\n"); return 0; } funziona? il codice è scritto correttamente? prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/2014 8
5 Il controllo del flusso di un programma: esempio Tabellina del 2: Modo 1 #include <stdio.h> int main(void) { printf( Tabellina del 2\n"); printf( 1x2! 2\n"); printf( 2x2! 4\n"); printf( 3x2! 6\n"); printf( 4x2! 8\n"); printf( 5x2! 10\n"); printf( 6x2! 12\n"); printf( 7x2! 14\n"); printf( 8x2! 16\n"); printf( 9x2! 18\n"); printf( 10x2! 20\n"); return 0; } Esistono parti ripetitive nel codice? quindi si potrebbe pensare ad un ciclo Anche se sintatticamente corretto l esempio è da considerarsi ERRATO in quanto rappresenta un pessimo modo di scrivere codice e, soprattutto, pensare (algoritmi ma non solo) prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Il controllo del flusso di un programma: esempio Tabellina del 2: Modo 2 #include <stdio.h> int main(void) { printf( Tabellina del 2\n"); int i; for(i=1; i<=10; i++) { printf( %d, i); printf( %d, i*2); printf( \n ); } return 0; } Così è decisamente meglio! Ogni riga della tabellina viene ora scritta automaticamente dalle istruzioni contenute nel ciclo for( ) Se volessimo la tabellina fino a 100? prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
6 Il controllo del flusso di un programma: for( ) for(i=1; i<=10; i++) { } Il ciclo for è una delle istruzioni di iterazione messe a disposizione dal C e permette di ripetere un insieme di istruzioni per un numero determinato di volte. La forma generale dell istruzione for è: for(<inizializzazione> ; <condizione> ; <incremento>) <istruzione>; prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Il controllo del flusso di un programma: for( ) for(i=1; i<=10; i++) { } for(<inizializzazione> ; <condizione> ; <incremento>) <istruzione>; <inizializzazione> Generalmente è un istruzione di assegnamento utilizzata per inizializzare il valore iniziale della variabile utilizzata nel ciclo variabile? ci arriveremo presto per ora si pensi ad i come ad un elemento che può assumere un qualsiasi numero intero. prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
7 Il controllo del flusso di un programma: for( ) for(i=1; i<=10; i++) { } for(<inizializzazione> ; <condizione> ; <incremento>) <istruzione>; <condizione> La condizione al verificarsi della quale il ciclo ha termine (quando i diventa maggiore di 10) La condizione è una clausola booleana (vero/falso) prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Il controllo del flusso di un programma: for( ) for(i=1; i<=10; i++) { } for(<inizializzazione> ; <condizione> ; <incremento>) <istruzione>; <incremento> E un istruzione che definisce il valore di cui la variabile di controllo deve variare al termine di ogni ciclo (nel nostro caso i viene incrementato di un unità) prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
8 Il controllo del flusso di un programma: for( ) for(i=1; i<=10; i++) { } for(<inizializzazione> ; <condizione> ; <incremento>) <istruzione>; <istruzione> E l istruzione che deve essere eseguita ad ogni ciclo. Può essere un blocco di istruzioni, nel qual caso il blocco deve essere racchiuso tra parentesi graffe Nel nostro caso ad ogni ciclo verranno eseguite le tre istruzioni printf. prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Il controllo del flusso di un programma: for( ) for(i=1; i<=10; i++) { } for(<inizializzazione> ; <condizione> ; <incremento>) <istruzione>; Riepilogando: 1. inizializzazione 2. controllo della condizione di uscita, se vera termina ciclo (ossia vai al punto 6) 3. esecuzione istruzione 4. incremento 5. vai al punto 2 6. fine ciclo (cioè vai all istruzione che segue il blocco del ciclo for) prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
9 Variabili e tipi di dati prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Variabili e tipi di dati int i; i=1; i++; i è una variabile un elemento che può assumere un certo insieme di valori. In C le variabili sono tipizzate cioè ad una data variabile è associato un certo tipo di dato prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
10 Variabili e tipi di dati int i; i=1; i++; Una variabile corrisponde ad una determinata cella di memoria che viene utilizzata per contenerne il valore (meglio la rappresentazione binaria del valore della variabile in un certo formato ) prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Variabili e tipi di dati int i; i=1; i++; In C qualsiasi variabile, prima di essere utilizzata DEVE essere dichiarata. Forma generale per la dichiarazione di una variabile: <tipo_variabile> <nome_variabile>; Esempio int i; prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
11 Variabili e tipi di dati int i; i=1; i++; Esempio di dichiarazione di una variabile i di tipo intero: int i; Nota bene: in C non c è alcuna relazione tra il nome assegnato ad una variabile ed il suo tipo. prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Variabili e tipi di dati Stili di programmazione Per convenzioni e stile di programmazione i nomi delle variabili sono scritti in minuscolo. Nel caso di variabili con nomi composti (es: numero di pezzi) si conviene di indicare in maiuscolo la prima lettera di ogni parola che segue la prima eliminando i congiuntivi (numeropezzi quando la situazione è chiara si possono contrarre alcune parole es: npezzi) E una convenzione di stile non un obbligo ma permette di aumentare la leggibilità e manutenibilità del codice prodotto. prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
12 Variabili e tipi di dati int i; i=1; i++; Più variabili dello stesso tipo possono essere dichiarate contemporanemente utilizzando la forma: <tipo_variabile> <nome_variabile1>, <nome_variabile2>, ; Esempio int i, j, k; Dichiara 3 variabili i, j e k di tipo intero. prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Variabili e tipi di dati Tipi base Dimensioni (byte) Range char int 16 o float 32 1E-37 1E+37 (6 cifre di prec.) double E E +308 (10 cifre di prec.) il tipo int può essere a 16 o 32 bit a seconda dell architettura e del compilatore (nei moderni processori ed ambienti int è a 32 bit ma in alcuni micro e DSP e nei vecchi sistemi a 16 bit no) prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
13 Variabili e tipi di dati: Modificatori di tipo Un modificatore di tipo viene premesso alla dichiarazione del tipo e ne altera il significato per adattarlo a particolari esigenze. I modificatori utilizzabili sono: signed unsigned long short prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Variabili e tipi di dati: Modificatori di tipo Esempi d uso: signed int unsigned int (utile perché ne estende il range ai soli numeri positivi ) long int (forza l int a 32 bit) long long int (forza l int a 64 bit) unsigned long long int (int 64 senza segno) prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
14 Variabili e tipi di dati double tempforno; long int npezzi, nscarti; Dichiara: una variabile di tipo double due variabili di tipo intero a 32 bit prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Variabili: inizializzazione Una variabile ha quindi: un tipo un valore (altrimenti servirebbe a ben poco ) Si può inizializzare il valore di una variabile direttamente nella dichiarazione, associando alla variabile un valore costante: <tipo_variabile> <nome_variabile1> [= <costante>]; prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
15 Variabili: inizializzazione <tipo_variabile> <nome_variabile1> [= <costante>]; int i = 1; Dichiara una variabile di tipo intero e ne inizializza il valore a 1. In C non è necessario inizializzare una variabile prima di utilizzarla, si può quindi scrivere: int i; i = i + 1; Non genera errori in compilazione ma è comunque scorretto!! E un errore! Ma non è un buon modo di programmare in quanto no si è certi del valore attribuito inizialmente alla variabile. prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Costanti (o tipi letterali) Ma cos è una costante in C? E un valore predefinito e fisso che il programma non può modificare. Una costante può essere di uno qualsiasi dei tipi principali. prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
16 Costanti Le costanti numeriche sono specificate tramite numeri (10, 11.3, 1E-6) Le costanti carattere tramite numeri ( o da ) oppure tramite caratteri che devono essere racchiusi tra apici singoli ( a ) (non confonderle con le costanti stringa che sono racchiuse in doppi apici e gestite in modo diverso, in C non esiste il tipo stringa!) prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Costanti Si può assegnare ad una costante un etichetta in modo da non scrivere direttamente in più parti del codice uno stesso valore costante La definizione di una costante è simile a quella di una variabile a cui si fa precedere il prefisso const: const <tipo_costante> <nome_costante> = <valore>; prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
17 Costanti const <tipo_costante> <nome_costante> = <valore>; Esempio: const int NUMERO_TENTATIVI = 10; dichiara una costante NUMERO_TENTATIVI. Seppure la dichiarazione è simile a quella di una variabile sono due entità trattate in modo completamente diverso (più avanti vedremo perché). Ed evidentemente l istruzione NUMERO_TENTATIVI = 3; genera un errore! prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Operatori prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
18 Operatori Gli operatori sono fondamentali in C, ve ne sono di diverse categorie: operatori aritmetici operatori relazionali operatori logici operatiri bit-to-bit operatore di assegnamento prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Operatori: assegnamento <nome_variabile> = <espressione> L operatore agisce nel seguente modo: 1. viene valutata l espressione a destra dell uguale 2. viene assegnato il valore ottenuto alla variabile a sinistra L operatore è: utilizzabile in ogni espressione valida non è un istruzione (come in altri linguaggi), è un operatore, quindi esso stesso restituisce un valore (il valore assegnato alla variabile) espressione può essere: una costante un espressione complessa a piacere prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
19 Operatori: assegnamento <nome_variabile> = <espressione> Esempi: a = 3; a = 3 + 5; a = b + c d; Ma anche: a = b = c + d; prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Operatori: assegnamenti multipli a = b = c = 3; Tutte le variabili assegnate assumono lo stesso valore, nel caso a, b e c assumono il valore 3 Vale anche: a = ( b = 2 ) + 1; Che si legge: 1. valuto l espressione a dx del primo uguale (cioè (b = 2) + 1) 2. le () costituiscono precedenze, valuto gli elementi nella () 3. assegno 2 a b 4. il valore dell esp. tra parentesi è 2 5. lo sommo ad 1 6. assegno ad a il valore 3 prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
20 Operatori: assegnamenti composti Supponiamo di voler incrementare di 10 una variabile, abbiamo imparato che possiamo scrivere: x = x + 10; Ma anche: x+= 10; Questa istruzione viene trasformata dal compilatore in un istruzione equivalente alla precedente x = x + 10; prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Operatori: assegnamenti composti Esistono operatori di assegnamento composti per tutti gli operatori binari (cioè gli operatori che agiscono su due operandi) Cioè in generale se si può scrivere: <variabile> = <variabile> <operatore> <espressione> si può anche scrivere: <variabile> <operatore>= <espressione> Esempio: x = x 100; " x -= 100; prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
21 Operatori: operatori aritmetici +! somma -! sottrazione (meno unario) *! prodotto /! divisione %! modulo --! decremento ++! incremento Esempi prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Operatori: efficienza Sebbene x = x + 1 e x++ producano lo stesso effetto non è così in termini di efficienza. Il compilatore ottimizza le istruzioni di incremento e decremento (così come le istruzioni += etc ) rendendo il codice x++ molto più efficiente dell equivalente clausola di assegnamento prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
22 Operatori: ordini di precedenza All interno di un espressione gli operatori vengono valutati secondo un ordine di precedenza che è massima per gli operatori di incremento e decremento. Ordini di precedenza: (alta precedenza) (bassa precedenza) (meno unario) * / % prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/ Operatori: ordini di precedenza Gli operatori con lo stesso ordine di precedenza vengono valutati dal compilatore da sinistra verso destra. E possibile alterare l ordine di precedenza utilizzando le parentesi tonde (che possono essere annidate una dentro l altra) Che valore assume x? e a? x = ((a = 3 + 7) 3 * 5) + a * 3; prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
23 Esercizi 1. Provare a scrivere la tabellina del 10 compelta (facile!) 2. Provare a scrivere un programma che genera la serie di fibonacci di ordine n dove n viene richiesto all utente (usare scanf( ) (un po più complesso) prof. Massimiliano Redolfi Fondamenti/Elementi di Informatica e Programmazione 2013/
I/O da tastiera + Alessandra Giordani Lunedì 2 maggio
I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliStruttura dei programmi e Variabili
Linguaggio C Struttura dei programmi e Variabili 1 La struttura generale dei programmi! Struttura del programma: Direttive Funzioni Dichiarazioni Istruzioni Di assegnamento direttive Di ingresso e uscita
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
Dettagli1
Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix
DettagliDichiarazioni e tipi predefiniti nel linguaggio C
Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliLezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione
Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliQualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliCorso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliSi possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).
Operatori di incremento e decremento: ++ e -- ++ e -- sono operatori unari con la stessa priorità del meno unario e associatività da destra a sinistra. Si possono applicare solo a variabili (di tipi interi,
DettagliLinguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi
DettagliI Fondamenti del Linguaggio
Linguaggio C I Fondamenti del Linguaggio Linguaggio di Programmazione Linguaggio formale per la descrizione di programmi per calcolatori Sintassi vicina al linguaggio umano Se non ci fossero, bisognerebbe
DettagliTipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010
Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 2: Elementi lessicali, casting e while Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Soluzione agli esercizi
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 3 Analisi dettagliata di un programma /* commento */ Possono estendersi su più linee apparire in qualsiasi parte del programma. Alternativamente
Dettagli1 PANORAMICA SUL LINGUAGGIO C
1 PANORAMICA SUL LINGUAGGIO C 1.1 Le origini del linguaggio C Il C fu inventato e implementato da Dennis Ritchie negli anni 70 su una macchina che impiegava il sistema operativo Unix. Il C è il risultato
DettagliProf. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C
Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi
DettagliIntroduzione alla programmazione. Alice Pavarani
Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello
DettagliTipi di dato, Alessandra Giordani Lunedì 7 maggio 2011
Tipi di dato, memoria e conversioni Alessandra Giordani agiordani@disi.unitn.it Lunedì 7 maggio 2011 http://disi.unitn.it/~agiordani/ Il linguaggio C è esplicitamente tipato: occorre esplicitamente associare
DettagliTipi di dato semplici
Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliVariabili e input/ Alessandra Giordani Lunedì 18 marzo
Variabili e input/ output da tastiera Alessandra Giordani agiordani@disi.unitn.it Lunedì 18 marzo 2013 http://disi.unitn.it/~agiordani/ Es. compilazione helloworld.c 2 Variabili e valori Una variabile
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
DettagliInformatica AA 2005/06. Programmazione M.A. Alberti. Operatori in Java 1. Operatori in Java. Espressioni aritmetiche. Espressioni booleane
Operatori in Java Operatori in Java Corso di laurea in Informatica Operatori aritmetici Operatori di uguaglianza e relazionali Operatori logici in espressioni booleane La precedenza degli operatori L associatività
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
DettagliTipi di dato semplici
Tipi di dato semplici Informatica B Tipi di dati q In C esistono diversi tipi di dato built-in, tra cui int: numeri interi float: numeri con virgola (singola precisione) double : numeri con virgola (doppia
DettagliStruttura di un programma C++
Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout
DettagliIntroduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17
Introduzione al C Informatica Generale - Introduzione al C Versione 1.0, aa 2005-2006 p.1/17 Linguaggi di programmazione Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili,
DettagliTipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:
Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere
DettagliPrimi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione
Primi esempi di programmi Il tipo int Le variabili Altri tipi interi Operatori di assegnazione Il tipo int Un int permette di trattare numeri interi 4 byte (32 bit) con la tecnica del complemento a 2 (ma
DettagliInformatica. Stefano Lodi. 16 novembre in linguaggio C
Informatica in linguaggio C Stefano Lodi 16 novembre 2005 0-0 Algoritmi, linguaggi, programmi, processi trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante istruzioni
DettagliIl linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali
DettagliProgrammare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi
MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme
DettagliTipi di dato e variabili. Walter Didimo
Tipi di dato e variabili Walter Didimo Tipi di dato I dati che possono essere manipolati in un programma si classificano in tipologie differenti, chiamate tipi di dato Esistono due macro tipi di dato in
DettagliIstruzioni iterative (o cicliche)
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria
DettagliFondamenti di Informatica e Programmazione Elementi di Informatica e Progrmmazione
Fondamenti di Informatica e Programmazione Elementi di Informatica e Progrmmazione prof. Massimiliano Redolfi massimiliano.redolfi@ing.unibs.it 2013/2014 Il controllo del flusso di un programma: esempio
DettagliUniversità degli Studi di Milano
Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Lezione 5 Controllo del flusso del programma FABIO SCOTTI Indice 1. CONCETTO DI BLOCCO IN C...3 2. DUE
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 C-Introduzione.tex: Versione 1.0, aa 2005-2006 Linguaggi di programmazione (1) Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili, direttamente
DettagliL assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Abbiamo visto È conveniente definire una macchina astratta C Lo stato della macchina ci
Dettagli#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
DettagliStruttura dei programmi C
Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliAssegnazione di una variabile
Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile
DettagliConcetti chiave. Istruzioni Iterative. Strutture di controllo iterative while do-while for Cicli annidati
Concetti chiave Istruzioni Iterative Strutture di controllo iterative while do-while for Cicli annidati Altre Espressioni Operatori Aritmetici +, -, *, /, si applicano a qualunque tipo Operatore Aritmetico
DettagliIl Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati
Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Dettagli2 Operatori matematici e costrutto if
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni
DettagliEspressioni in Linguaggio C
Concetti chiave Espressioni in Linguaggio C Espressioni Conversioni Implicite Operatori aritmetici Operatore di assegnamento Operatori relazionali Operatori logici Gerarchia e associatività degli operatori
DettagliCostanti e Variabili
Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli
DettagliLinguaggio C Strutture di controllo
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Strutture di controllo 2001 Pier Luca Montessoro - Davide
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1
DettagliInformatica 2 modulo C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Informatica 2 modulo C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliEsecuzione condizionale. Esecuzione condizionale. Costrutto if. Costrutto if
Esecuzione condizionale Esecuzione condizionale Permette l esecuzione di un blocco di codice solo se si verifica una certa condizione SE (condizione è vera) ALLORA esegui istruzioni 2 er. 2.4 also condizione
Dettagli$QDOLVLGHOSURJUDPPDTXDGUDWR
$QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =
DettagliLinguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
DettagliEsercitazione 2. Espressioni booleane Il comando if-else
Esercitazione 2 Espressioni booleane Il comando if- Espressioni booleane L espressione (i==100) è un espressione booleana. La sua valutazione può restituire solo uno dei due valori booleani true = 1 (in
DettagliRappresentazione binaria delle variabili (int e char)
Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
DettagliTipi di dato primitivi
Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso
DettagliStrutture di Controllo Condizionali e Operatori Logici e Relazionali
Linguaggio C Strutture di Controllo Condizionali e Operatori Logici e Relazionali 1 Strutture di Controllo n Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi
Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di
DettagliJava e i Tipi di dati primitivi. Parte 3
Java e i Tipi di dati primitivi Parte 3 La nozione di tipo di dato Il tipo del dato consente di esprimere la natura del dato Indica il modo con cui verrà interpretata la sequenza di bit che rappresenta
DettagliTipi elementari. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Tipi elementari Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2017 2018 Tipi di dato Ogni variabile (e ogni costante) è associata a un tipo, che
DettagliVerso i puntatori: Cosa è una variabile?
Verso i puntatori: Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per
DettagliStrutture di Controllo Condizionali e Operatori Logici e Relazionali
Linguaggio C Strutture di Controllo Condizionali e Operatori Logici e Relazionali 1 Strutture di Controllo! Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare
DettagliVariabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale
DettagliArray k-dimensionali
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per
DettagliPaolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09
Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliCOMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 / 34 Ringraziamenti prof. Mirko Viroli, Università
DettagliValutazione di espressioni
Valutazione di espressioni Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Blocco Blocco è un insieme di istruzioni consecutive, con un
DettagliAssegnamento. Ricordiamo che l esecuzione di x = exp corrisponde a: Esempio: somma = 5; a = 2; somma = somma + a; somma 5 = 7 a 2 2
Assegnamento Assegnamento Ricordiamo che l esecuzione di x = exp corrisponde a: 1. valutare il valore dell espressione exp a destra di = (usando i valori correnti delle variabili); 2. assegnare poi tale
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliLinguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative
DettagliLinguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»
Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite
DettagliProgrammazione in Java (I modulo) Lezione 4
Programmazione in Java (I modulo) Lezione 4 Costanti Chiamiamo costanti tutti i valori numerici (interi o con la virgola), i caratteri e le stringhe. Esempio: 2, 3.7, 'y, buongiorno Le costanti numeriche
DettagliInformatica 2 modulo C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Informatica 2 modulo C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliLinguaggi di programmazione
Linguaggi di programmazione C LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell
DettagliStrutture di Controllo Iterative: Istruzione FOR
Linguaggio C Strutture di Controllo Iterative: Istruzione FOR 1 Istruzioni iterative n Anche dette cicli n Prevedono l esecuzione ripetitiva di altre istruzioni (corpo del ciclo) n Ad ogni iterazione del
DettagliPrimi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
DettagliEspressioni con effetti collaterali
Espressioni con effetti collaterali Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Operatore di assegnamento In C l assegnamento (=)
DettagliIL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni
DettagliIl potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
DettagliPuntatori. Fondamenti di Programmazione
Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale
Dettagli