Laboratorio di Informatica I
|
|
- Salvatore Basile
- 5 anni fa
- Visualizzazioni
Transcript
1 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 Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento operatori di assegnamento priorità I tipi di dato: la conversione di tipo Altri idiomi di programmazione: la sentinella ed il ciclo while 2 Esercizi Esercizio numero 1 Scrivere un programma C che (1) chiede in input 10 interi e che ne restituisce il numero di essi che sono > 15 (2) chiede in input un numero di interi N (a richiesta dell utente) e ne trova il massimo (3) chiede in input 10 interi e somma tutti gli interi in posizione pari (4) chiede in input 10 interi e somma tutti gli interi > 0 3 /* Eserc.1: chiede in input 10 interi e * fornisce il numero di essi che sono > 15 #define NUMERO_INTERI 10 int i, appoggio, maggiori_15 = 0; for ( i=0; i< NUMERO_INTERI; i++) if (appoggio > 15) maggiori_15 ++; printf ("Maggiori di 15 sono %d\n", maggiori_15); Costante simbolica facilità modifica Ciclo for stampa intero i+1 condizione senza parentesi 4 Esercizio numero 2 Esercizio numero 3 Input numero interi facilità modifica Il primo intero diventa il massimo! Ciclo for parte da 1! cambio del massimo /* Esercizio 2: chiede in input N interi e ne /* Esercizio 3: chiede in input 10 interi e * restituisce il massimo * somma gli interi in posizione pari #define NUMERO_INTERI 10 int i=0, num_interi, appoggio, massimo; printf ("Quanti interi?"); scanf ("%d", &num_interi); int i, appoggio, somma=0; scanf ("%d", &massimo); for ( i=0; i< NUMERO_INTERI; i++) for ( i=1; i< num_interi; i++) if ( i % 2 == 0) if (appoggio > massimo) massimo = appoggio; printf ("Massimo: %d\n", massimo); 5 6 Costante simbolica Ciclo for se i è divisibile per 2 allora sommo l intero 1
2 Esercizio numero 4 Sintassi di un linguaggio di programmazione /* Esercizio 4: chiede in input 10 interi e * somma gli interi maggiori di zero #define NUMERO_INTERI 10 int i, appoggio, somma=0; for ( i=0; i< NUMERO_INTERI; i++) if ( appoggio > 0 ) Costante simbolica Ciclo for se appoggio è maggiore di 0 allora sommo l intero 7 Sintassi di un linguaggio insieme di un regole che regolano la composizione di un programma corretto Differenza tra un programma: sintatticamente corretto: obbedisce alle regole sintattiche corretto: risolve tutte le istanze del problema per il quale è stato progettato 8 La compilazione I token del linguaggio C La compilazione è un processo automatico che converte un programma scritto in un linguaggio di programmazione in codice macchina necessità di definire le regole di sintassi del linguaggio (Backus-Naur Form o BNF) Il programma C: sequenza di caratteri Il compilatore raggruppa i caratteri del programma in token token: oggetti del vocabolario di base del linguaggio Sei tipi di token: parole chiave (keywords) identificatori costanti costanti stringa operatori simboli di interpunzione 9 10 Un esempio Un esempio /* File: somma.c * Programma di prova * 11/10/2000 main () int i, j, sum; i = 3; j = 5; sum = i + j; printf ( Somma=%d, sum); I commenti non sono token vengono sostituiti da spazio Direttiva al preprocessore Funzione: identificatore (nome) operatore (parametri) Dichiarazione parola chiave (tipo) identificatore (nome variab.) /* File: somma.c * Programma di prova * 11/10/2000 main () int i, j, sum; i = 3; j = 5; sum = i + j; printf ( Somma=%d, sum); Assegnazione identificatore (variabile) operatore (assegnazione) costante simbolo di interpunzione Chiamata di funzione identificatore (nome funz.) costante stringa identificatore (nome var.)
3 I token del C: le parole chiave I token del C: identificatori Parole riservate al linguaggio auto do goto signed unsigned break double if sizeof void case else int static volatile char enum long struct while const extern register switch continue float return typedef default for short union Composti da: lettere, cifre e il carattere _ (underscore) Definiscono nomi unici per oggetti in un programma (variabili, funzioni etc.) Devono iniziare per lettera o underscore Lunghezza degli identificatori: in ANSI C: 31 caratteri (almeno) Alcuni commenti sugli identificatori I token del C: costanti e costanti stringa È necessario usare identificatori con un significato: Ax2 = fg + (pippo*ghk); totale_lordo = totale + (iva*totale); Rappresentano valori con un tipo Costanti intere: Costanti virgola mobile: Costanti carattere: a K ; \n Costanti stringa: Ciao Mondo! E il programma scrisse \ Ciao Mondo!\ A Caratteri ASCII non estesi niente lettere òèùì etc I token del C: interpunzione e operatori Operatori:incremento (++) e decremento (--) Segni di interpunzione: ( ) ;, Operatori: caratteri a cui è associata una operazione Operatori aritmetici: + - * / % Gli operatori separano gli identificatori. Separare operatori con spazi migliora la leggibilità del programma a=k*(9.12+h)/y; a = k * ( h) / y; Servono a incrementare/decrementare di 1 una variabile. Esempio: num++ var-- Due fasi: Operazione (effettua l incremento/decremento) Valutazione per l uso nella espressione Operatore prefisso: operazione prima della valutazione Operatore postfisso: valutazione prima della operazione --num num
4 Effetti collaterali (side-effects) Priorità ed associatività degli operatori a = 12; b = 15; c = a++ + b; a = 12; b = 15; c = ++a + b; Il valore di a viene prima valutato per la operazione e poi incrementato c vale 27 Il valore di a viene prima incrementato e poi valutato per la operazione c vale 28 Regole per la precedenza nella applicazione A parità di priorità si segue la associatività (che può essere da sinistra o da destra) Operatori Associatività ( ) ++ (postfisso) -- --(postfisso) Da sinistra + - (unari) ++(prefisso) -- --(prefisso) Da destra * / % Da sinistra + - Da sinistra = += -= *= /= %= Da destra Operatori di assegnamento Operatori aritmetici di assegnamento Il simbolo = è un operatore variabile = espressione espressione può essere un altro assegnamento var = espr viene valutata con espr Quindi a = 1; b = 3; c = a + b; può essere c = (a = 1) + (b = 3); Assegnazione multipla: a = b = c = 0; Valutato con associatività a destra: a = (b = (c = 0)); Uso comune di assegnazioni e operatori: numero_studenti = numero_studenti + 10; può essere scritto più compattamente come: numero_studenti += 10; Operatori aritmetici e logici (orientati ai bit) += -= *= /= %= >>= <<= &= ^= = = Operatori per incremento: differenze Alcuni esempi di espressioni Per incrementare una variabile a si può in maniera equivalente usare: i++; i = i + 1; i += 1; Mentre le seguenti due istruzioni sono diverse: i + 1; non ha alcun effetto su i, è una espressione che viene valutata e basta i++; in questo caso la espressione viene valutata ma il comportamento dell operatore modifica i int a = 1, b = 2, c = 3, d = 4; a * b + c / d (a * b) + (c / d) Risultato: 2 Operatori Operatori Associatività Associatività (()) (postfisso) (postfisso)---(postfisso) Da Da sinistra sinistra (prefisso) -- --(prefisso) Da Da destra destra ** // % Da Da sinistra sinistra + -- Da Da sinistra sinistra = += += -= -= *= *= /= /= %= %= Da Da destra destra Operatori * e / con la stessa priorità, associatività da sinistra poi operatore +. Attenzione! Conversione di tipo automatica in intero
5 Alcuni esempi di espressioni Alcuni esempi di espressioni int a = 1, b = 2, c = 3, d = 4; a * b * c + 1 ( ( a * b) * c) + 1 Operatori Operatori Associatività Associatività (()) (postfisso) (postfisso)---(postfisso) Da Da sinistra sinistra (prefisso) -- --(prefisso) Da Da destra destra ** // % Da Da sinistra sinistra + -- Da Da sinistra sinistra = += += -= -= *= *= /= /= %= %= Da Da destra destra Operatori *, associatività da sinistra poi operatore +. Risultato: 7 int a = 1, b = 2, c = 3, d = 4; ++ a - b * c -- (++ a) - (b * (c --)) Operatori Operatori Associatività Associatività (()) (postfisso) (postfisso)---(postfisso) Da Da sinistra sinistra (prefisso) -- --(prefisso) Da Da destra destra ** // % Da Da sinistra sinistra + -- Da Da sinistra sinistra = += += -= -= *= *= /= /= %= %= Da Da destra destra Operatore -- postfisso, operatore ++ prefisso, operatore * e - Risultato: -4 e c vale 2 ed a vale 2 Attenzione! L operatore postfisso effettua la operazione dopo la valutazione Alcuni esempi di espressioni Conversioni di tipo int a = 1, b = 2, c = 3, d = 4, e =5 ; 30 / -++ e % c 30 / (- (++ e)) - (+ 29) % c (30 / (- (++ e))) - ((+ 29) % c) Operatori Operatori Associatività Associatività (()) (postfisso) (postfisso)---(postfisso) Da Da sinistra sinistra (prefisso) -- --(prefisso) Da Da destra destra ** // % Da Da sinistra sinistra + -- Da Da sinistra sinistra = += += -= -= *= *= /= /= %= %= Da Da destra destra Operatore ++ prefisso, operatori - e + unario (assoc. da destra) Operatori / e % (assoc. da sinistra) Operatore - Risultato: Ogni espressione aritmetica ha: un valore un tipo Ad esempio x+y se x e y sono int, allora anche x+y è int se x è float e y è int, allora x+y è float Regole di conversione aritmetica casting implicito (operato dal compilatore) casting esplicito (richiesto dal programmatore) 28 Casting implicito (operato dal compilatore)) Casting esplicito se uno dei due operandi è long double allora anche l altro viene convertito altrimenti, se uno dei due operandi è double allora anche l altro viene convertito altrimenti, se uno dei due operandi è float allora anche l altro viene convertito altrimenti se uno dei due è unsigned long allora anche l altro viene convertito altrimenti se uno è long e l altro è unsigned si converte a quello di maggiore capacità altrimenti, se uno dei due operandi è long, unsigned o int allora anche l altro viene Si può forzare il compilatore ad utilizzare un tipo diverso per espressioni Esempi: int i; a = (double) i; j = (long) ( A + 10);... x = (float) ( (int) y + 1);... (double) (x = 65); convertito
6 Alcuni particolarità: Un idioma: il ciclo while Il casting nelle assegnazioni converte se necessario il tipo del rvalue al tipo lvalue int i; float d = 3.14; i = d; /* assegna 3! int i = 3; float d; d = i;/* assegna 3.0 Necessità l idioma ripeti-n-volte permette di effettuare un numero di iterazioni fissato da una costante o una variabile nel programma da un intero scelto dall utente mentre a volte: il numero di iterazioni non è fissato ma dipende da condizioni logiche (vero/falso) l utente può non volere calcolare esplicitamente tale numero di iterazioni Un esempio: il calcolo della somma Il ciclo while Supponiamo che si deve calcolare la somma di una lunga lista di interi L utente gradirebbe senza dubbio:: inserire gli interi uno alla volta quando ha finito, segnalare al programma che vuole l output Soluzione: l idioma sentinella ed il ciclo while. Il ciclo while si compone di una condizione logica un corpo Il corpo viene eseguito ripetutamente mentre la condizione risulta vera while ( i > 0 ) condizione logica blocco istruzioni Le condizioni logiche Un idioma: la sentinella Risultato di una operazione con operatori relazionali. Ad esempio: while (i > 0) while (i!= 10) while (num == 187) In C, le condizioni logiche vengono espresse da interi: un valore uguale a 0 risulta FALSE qualsiasi valore diverso da 0 risulta TRUE (convenzionalmente fissato a 1) 35 Condizione per l uscita scelta dall utente Il ciclo while deve ciclare all infinito: while (TRUE)... In caso di uscita dal ciclo si usa la istruzione break: if (...) break; 36 6
7 La somma con la sentinella e while Un errore tipico con il while /* sentinella.c: somma con sentinella #define TRUE 1 int i=0, appoggio, somma=0; Definizione di TRUE come costante > 0 Il ciclo infinito. Uso del contatore con incremento (prefisso!) La sentinella se appoggio è 0 allora esci dal ciclo se continua lo somma while (TRUE) printf("inserire intero n.%d:", ++i); while (appoggio = 1) if ( appoggio == 0 ) break; printf( Digita intero diverso da 1:"); /* errore.c: inserisce un numero diverso da 1 e poi fa qualche cosa.. int appoggio=1; Dichiarazione di appoggio L idea: ciclare fino a quando l utente non digita un intero diverso da 1. Il programma invece cicla all infinito! Dove è l errore? Errori tipici: Cosa fa questo programma? Variabili non dichiarate/inizializzate Dimenticare il ; a fine istruzione Non usare l indirizzo di una variabile (il &) nella scanf Confondere assegnazione con test di uguaglianza nei cicli 39 /* errore.c: inserisce un numero diverso da 0 e poi fa qualche cosa.. int appoggio=0; while (appoggio = 0) printf( Digita intero diverso da 0:"); Cosa fa questo programma? Relazione tra ciclo for e while #define TRUE 1 int i=0, appoggio, somma=0; while (TRUE) printf("inserire intero n.%d:", ++i); if ( appoggio = 0 ) break; Il ciclo for: for (inizializzazione ; test ; step) è equivalente al while: inizializzazione; while (test) step;
8 La somma con la sentinella e for Esercizio 1 /* sentinella2.c: sentinella con il for #define TRUE 1 int i=0, appoggio, somma=0; Cambia solamente il ciclo Sono vuote le condizioni di inizializzazione e lo step Il break funziona anche con il ciclo for Commento: il for non serve solamente per $ a.out for ( ; TRUE ; ) Inserire un intero: 5 * printf("inserire intero n.%d:", ++i); ** *** if ( appoggio == 0 ) break; **** ***** $ cicli numerici Scrivere un programma C che prende in input un intero lung e stampa a schermo righe di asterischi di lunghezza crescente da 1 a lung. Esercizio 2 Esercizio 3 Scrivere un programma C che prende in input un intero rig e stampa a schermo rig righe di asterischi (di lunghezza crescente) centrate sul primo: $ a.out Inserire un intero: 5 * *** ***** ******* ********* $ Scrivere un programma C che prende in input due interi b e a e stampa a schermo un quadrato di asterischi con base b ed altezza a: $ a.out Inserire base: 4 Inserire altezza: 3 **** * * **** $
Laboratorio 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
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
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo
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
DettagliLa sintassi del C APPENDICE H
APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i
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:
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 di un programma C++
Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout
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
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
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
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
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
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à
DettagliIl C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:
Struttura di un linguaggio Il C nel C++ Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliStruttura di un linguaggio
Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
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
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
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à
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
DettagliPROGRAMMA = ALGORITMO
Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca
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
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à
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
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
DettagliSunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.
Sunto della scorsa lezione 06-10-2003 Il linguaggio C Matricole 2-3 Un programma C è un insieme di funzioni. La funzione è sempre presente Una funzione è un insieme di istruzioni racchiuse tra ogni istruzione
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
DettagliUn esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)
Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Macchina astratta: un linguaggio di programmazione trasforma un calcolatore in una macchina
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
DettagliI/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
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
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
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
DettagliLezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento
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
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 Materiale disponibile sul sito http://www.fisica.unile.it/~martello/corsi/dottorato/index.html
DettagliIL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate
Fondamenti di Informatica IL LINGUAGGIO JAVA Sintassi, Semantica, Input, Tipi Elementari e Istruzione Condizionale 1 Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per
DettagliEspressioni ed operatori in C
Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere
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
DettagliEspressioni ed operatori in C
Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere
DettagliFondamenti di C++ Input/Output di base
Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Fondamenti di C++ Paolo Trunfio * * DEIS, Università della Calabria http://si.deis.unical.it/~trunfio
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
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 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
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
DettagliFlusso logico di un programma
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
DettagliSULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI
SULL USO DEI CARATTERI Ricordiamo che: int x; si legge con ( %d,&x) e si stampa con ( %d,x) float x; si legge con ( %f,&x) e si stampa con ( %f,x) double x;si legge con ( %lf,&x) e si stampa con ( %f,x)
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
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
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
DettagliUn esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
DettagliStruttura di un. Struttura dei programmi C
Parte 4 Struttura di un Programma Struttura dei programmi C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume in un file): 1. Una parte contenente direttive
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
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
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
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
DettagliI cicli. Iterazioni Calcolo della media Istruzioni break e continue
I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione
DettagliTipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.
Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned
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 =
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
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
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,
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,
DettagliIL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace
IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di dati, detti tipi primitivi dominio dei
DettagliStrutture di Controllo Iterative: Istruzione FOR
Linguaggio C Strutture di Controllo Iterative: Istruzione FOR 1 Istruzioni iterative! Anche dette cicli! Prevedono l esecuzione ripetitiva di altre istruzioni (corpo del ciclo)! Ad ogni iterazione del
DettagliLezione 8: Stringhe ed array multidimensionali
Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si
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
DettagliLaboratorio di informatica Ingegneria meccanica
Rappresentazione ed interpretazione Laboratorio di informatica Ingegneria meccanica Insieme dei valori da rappresentare interpretazione rappresentazione Insieme delle sequenze di K bit Lezione 2 8 ottobre
DettagliParametri passati per indirizzo. Puntatori Vogliamo modificare la parte del codice di bubble che realizza lo scambio dei valori:
Parametri passati per indirizzo. Puntatori Vogliamo modificare la parte del codice di bubble che realizza lo scambio dei valori: tmp = a[j-1]; a[j-1] = a[j]; a[j] = tmp; sostituiamo questa riga con un
DettagliPREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii
Sommario PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 1.1 Introduzione...
DettagliIL LINGUAGGIO C TIPI DI DATO
IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di dati, detti tipi primitivi dominio dei
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
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Una funzione per i numeri di Fibonacci
DettagliGli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento
Linguaggio C Gli Operatori Gli Operatori Gli operatori sono simboli (sia singoli caratteri che loro combinazioni) specificano come devono essere manipolati gli operandi dell espressione Operatori aritmetici
DettagliEspressioni. Espressioni. Valutazione di un espressione. Espressioni semplici
Espressioni Una espressione E del linguaggio C può essere definita formalmente come segue (definizione induttiva): E è una espressione semplice. Espressioni Sia Op n un operatore del linguaggio di arità
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
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
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
DettagliLezione 6: Array e puntatori
Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci
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
DettagliLinguaggio C Operatori, Espressioni e Conversioni di tipo
Linguaggio C Operatori, Espressioni e Conversioni di tipo Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Expression Statement
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
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,
DettagliISTRUZIONI ISTRUZIONI SEMPLICI
ISTRUZIONI istruzioni azioni modifica permanente dello stato interno strutture di controllo ::= ::= ::=
DettagliCapitolo 2 Introduzione alla programmazione in C
Capitolo 2 Introduzione alla programmazione in C Introduzione Un semplice programma C: Stampa di una linea di testo Un altro semplice programma C: Sommare due interi Concetti sulla Memoria Aritmetica in
DettagliUn elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char
IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura tt fisica i di ogni elaboratore è intrinsecamente capace di trattare vari domini i di dati, detti tipi i primitivi iti
DettagliInformatica A+B Politecnico di Milano A.A Elenco delle parole chiave definite in ANSI C
Turbo C Elenco delle parole chiave definite in ANSI C auto const double float int short struct unsigned break continue else for long signed switch void case default enum goto register sizeof typedef volatile
DettagliCostrutti di Programmazione Strutturata. Informatica 1 / 22
Costrutti di Programmazione Strutturata Informatica 1 / 22 Costrutti di Base Ricordi? Un algoritmo è detto strutturato se usa solo Sequenze di istruzioni Selezioni (se predicato allora fai istruzioni altrimenti
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 5: Funzioni e programmazione modulare Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Esercizi (Fibonacci e numeri primi) Funzioni Regole
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à
DettagliTipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char
Tipo carattere Finora abbiamo lavorato con valori numerici. I numeri costituiscono molta parte del lavoro dei computer, ma non tutta. I computer sono macchine per il trattamento dell informazione e l informazione
Dettagli