INTRODUZIONE E FONDAMENTI. «Programmazione in C» Kim N. King, Apogeo Capitolo 1 e 2

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "INTRODUZIONE E FONDAMENTI. «Programmazione in C» Kim N. King, Apogeo Capitolo 1 e 2"

Transcript

1 INTRODUZIONE E FONDAMENTI «Programmazione in C» Kim N. King, Apogeo Capitolo 1 e 2

2 Il Linguaggio C Algoritmi Il Linguaggio di Programmazione C è costituito da un linguaggio di computazione (il C vero e proprio) un linguaggio di coordinazione fornito come allegato, sotto forma di librerie standard: alcune istruzioni complesse del linguaggio potrebbero essere realizzate in realtà da "mini-programmi" forniti insieme al compilatore, che li utilizza incorporandoli quando occorre. LIBRERIE DI SISTEMA: insieme di componenti software che consentono di interfacciarsi col sistema operativo, usare le risorse da esso gestite, e realizzare alcune "istruzioni complesse" del linguaggio Il sistema operativo è un programma di controllo che svolge operazioni fondamentali, risiede in una memoria interna permanente e interpreta i comandi utente che richiedono varie specie di servizi, come la visualizzazione, la stampa o la copia di un file, il raggruppamento logico dei file in una directory o l'esecuzione di un programma. In altre parole il sistema operativo si occupa di gestire tutte le periferiche del calcolatore, tutti i processi, i dati di input/output. Strutture dati Strumenti del linguaggio di programmazione

3 Origini Fu inizialmente creato nei laboratori della AT&T Bell Laboratories (anni 70) per lo sviluppo dei sistemi operativi da Ken Thompson, Dennis Ritchie ed altri. UNIX scritto in assembly (programmi faticosi da gestire, migliorare, ) Thompson creò un piccolo linguaggio (B) per un ulteriore sviluppo di UNIX (basato su BCPL, a sua volta basato su Algol 60) e riscrisse una porzione di UNIX in B. A partire dal 71 Ritchie iniziò lo sviluppo di una versione estesa del linguaggio (NB, NewB) che diventò C, stabile dal 1973, tanto che UNIX venne riscritto in C. Importante beneficio: la portabiltà, scrivendo compilatori C per altri computer presenti nei laboratori Bell, il team potè far funzionare UNIX anche su tutte quelle macchine.

4 Standardizzazione Nel 1978 venne pubblicato il primo libro sul C The C Programming Language, Kernigan, Ritchie, che divenne lo standard de facto (K&R C) Nel 1980 C si era espanso ben oltre il mondo UNIX con compilatori disponibili su grande varietà di calcolatori con sistemi operativi differenti Ma i programmatori che scrivevano nuovi compilatori si basavano su K&R, approssimativo su alcune caratteristiche del linguaggio Inoltre il C continuò a cambiare anche dopo la pubblicazione del K&R Necessità: descrizione del linguaggio precisa, accurata e aggiornata (standard) senza la quale i numerosi dialetti avrebbero minacciato la portabilità dei programmi C Venne messo a punto uno standard statunitense chiamato ANSI C (American National Standards Institute) approvato nel 1989, poi approvato anche dell ISO (International Organization for Standardization) nel 1990 (C89 o C90) Nuovi cambiamenti vennero apportati nel 1999 (C99) con la pubblicazione del nuovo standard ISO

5 Standardizzazione Il C99 non è ancora universalmente diffuso e ci vorranno anni affinchè tutti i compilatori diventino C99-compliant. Per un uso approfondito del linguaggio servirà conoscere le differenze fra C89 e C99. Ad esempio: //commenti: il C99 aggiunge secondo tipo di commenti Identificatori: C89 primi 31 caratteri significativi per gli identificatori, C99 63 caratteri Valori restituiri dal main: C89 funzione senza return valore restituito al s.o. indefinito, C99 se main dichiarato che restituisce int allora valore restituito al s.o. è 0 Dichiarazioni variabili: C99 include la possibilità di dichiarare una variabile in un punto qualsiasi prima del suo utilizzo all interno di un blocco (dichiarazioni e istruzioni anche mischiate) Tipo restituito da funzione: C99 non ammette l omissione del tipo restituito da una funzione Header <complex.h>: C99 introduce <complex.h> che fornisce funzioni per eseguire operazioni matematiche sui numeri complessi Per un uso pienamente soddisfacente del C nell implementazione di algoritmi le caratteristiche aggiunte al linguaggio con gli standard successivi non sono fondamentali

6 Linguaggi basati sul C Enorme influenza sui linguaggi di programmazione moderni: C++: include tutte le caratteristiche del C e aggiunge il supporto alla programmazione orientata agli oggetti Java: basato sul C++ eredita molte delle caratteristiche del C C#: un più recente linguaggio basato su C++ e Java Perl: linguaggio di scripting che adotta molte delle caratteristiche del C Linguaggio basilare per lo sviluppo di qualsiasi applicazione specialmente se la memoria o la potenza di calcolo sono limitate e cruciali, compresa l'implementazione di architetture operative (il Kernel di Linux è in gran parte scritto in tale linguaggio), di server web ed application server quali Apache, Tomcat, Websphere, IIS

7 Pregi Efficienza: pensato per applicazioni dove tradizionalmente veniva usato il linguaggio assembly era cruciale che i programmi in C potessero girare velocemente e con una quantità di memoria limitata; ad es. include la gestione dei puntatori, fornendo al programmatore una visibilità molto elevata sulla memoria della macchina Tipizzato: debole controllo sui tipi di dato; a differenza di altri linguaggi il C permette di operare con assegnamenti e confronti su dati di tipo diverso, in qualche caso solo mediante una conversione di tipo esplicita (cast). Il compilatore demanda al programmatore il compito di verificare la correttezza semantica delle espressioni e la gestione di eventuali errori generati da espressioni non corrette (flessibilità) Basso livello: più vicino al linguaggio macchina con istruzioni basilari che vengono elaborate direttamente dal processore e permettono un totale accesso alle risorse della macchina; produce quindi un codice più compatto ed efficiente Portabilità: Consente lo sviluppo di programmi facilmente portabili da una piattaforma ad un altra; la normativa ANSI stabilisce le caratteristiche standard di un compilatore C e la modalità standard di programmazione in C Disponibilità di librerie standard che contengono centinaia di funzioni deputate all i/o, alla manipolazione delle stringhe, alla gestione della memorizzazione,

8 Debolezze Programmi inclini agli errori grazie alla flessibilità del C e alle possibili difficoltà per programmatori non accorti (provate a dimenticare un «&» ove necessario!) Programmi difficili da capire a causa della natura stringata e succinta dei programmi (linguaggio conciso) e della sua flessibilità se esasperata Programmi difficili da modificare se non sono stati sviluppati considerando la necessità di manutenzione del codice The International Obfuscated C Code Contest

9 Lo sviluppo dei programmi Definizione del problema Progettazione di un algoritmo Ridefinizione del problema Preparazione dei file sorgente Compilazione dei file sorgente Link dei file oggetto Messa a punto e test del programma eseguibile N.B.: Gli argomenti di inizio corso vengono al momento poco più che accennati, saranno tutti approfonditi nel seguito; ora abbiamo bisogno di porre le fondamenta dei diversi temi e di cominciare a lavorare sulla macchina

10 Lo sviluppo Creare ed eseguire un programma

11 Lo sviluppo dei programmi File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File oggetto File oggetto File oggetto File oggetto Link File eseguibile Il set di istruzioni del C è molto limitato: molte operazioni vengono delegate alla libreria di run time, che contiene programmi di supporto Le funzioni sono divise in gruppi, quali I/O, gestione della memoria, operazioni matematiche e manipolazione di stringhe, Per ogni gruppo di funzioni esiste un file sorgente, chiamato file header, contenente le informazioni necessarie per utilizzare le funzioni I codici sorgente ed oggetto possono essere suddivisi in più file, il codice eseguibile di un programma risiede in un unico file

12 Un semplice programma in C: scrittura di una riga di testo 1 2 /* A first program in C */ 3 #include <stdio.h> 4 5 int main() 6 { 7 printf( "Welcome to C!\n" ); 8 9 return 0; 10 } IL PROGRAMMA SORGENTE Welcome to C! IL RISULTATO Commenti Il testo comprteso fra /* e */ è ignorato dall elaboratore E utile per commentare e descrivere il programma #include <stdio.h> Direttiva del preprocessore: dice all elaboratore di caricare la libreria <stdio.h> che contiene le operazioni di input/output standard poichè il C non ha comandi incorporati di lettura/scrittura

13 Un semplice programma in C: scrittura di una riga di testo

14 Commenti al programma int main() Una delle funzioni in tutti i programmi in C deve essere main Le parentesi tonde indicano una funzione int significa che main "restituisce" un valore di tipo intero. Il valore restituito dalla funzione main (tipicamente un intero) può essere utilizzato da un eventuale programma chiamante. Fino a quando non impareremo a scrivere altre funzioni, il main sarà l unica dei nostri programmi Le parentesi graffe indicano un blocco di programma Il corpo delle funzioni deve essere racchiuso fra parentesi graffe Funzione: dalla matematica (regola per calcolare un valore a partire da uno o più argomenti dati) indica un raggruppamento di istruzioni al quale è stato assegnato un nome. Alcune calcolano un valore, altre no. Nel primo caso usiamo l istruzione return per specificare il valore che restituisce

15 Commenti al programma printf( "Welcome to C!\n" ); Indica l esecuzione di un azione Stampa la stringa di caratteri compresa fra gli apici Tutta la linea è detta istruzione Tutte le istruzioni devono terminare con il ; \ - carattere di escape Indica che printf deve eseguire qualcosa di particolare \n è il carattere di a capo return 0; E un modo di uscire da una funzione return 0, in questo caso indica che il programma termina normalmente Parentesi graffa } Indica che si è raggiunta la fine del main

16 Altri esempi /* * File esempio1.c * Scopo: utilizzare istruzione printf * Autore: Antonella Carbonaro * Data: 23 settembre 2015 */ #include <stdio.h> int main( ) { printf("welcome to C!\n"); return 0; } // File esempio2.c // Scopo: stampare su un unica riga // con due istruzioni printf // Autore: Antonella Carbonaro // Data: 23 settembre 2015 #include <stdio.h> int main( ) { printf("welcome "); printf("to C!\n"); return 0; }

17 Caratteristiche di ogni programma C Ogni programma C deve contenere una ed una sola funzione main(), che rappresenta il programma principale, ed un punto di inizio dell esecuzione del programma. La parentesi graffa aperta { indica l inizio di un blocco di istruzioni La parentesi graffa chiusa } indica la fine di un blocco di istruzioni Per ogni { deve essercene una chiusa } I commenti possono essere posti ovunque e verranno ignorati dal compilatore /* questo è l inizio del commento e questa la sua fine */ Il C99 prevede un secondo tipo di commenti che iniziano con // e che terminano automaticamente alla fine della riga L annidamento di commenti non è permesso Il C è case sensitive.

18 Generalizziamo Unità fondamentale: funzione tipo del valore di ritorno nome argomenti inizio fine int NomeFunzione (int primo_arg, int secondo_arg) { int valore_restituito; valore_restituito= 2*primo_arg + secondo_arg*secondo_arg; return valore_restituito; } main: nome speciale di funzione dalla quale inizia l esecuzione del programma

19 Generalizziamo

20 Generalizziamo Each of the four functions does a specific, well-defined job. Overall control of the sequence of operations in the program is managed by one module, main(). There is a function to read and check the input data and another function to do the analysis. Once the data have been read and analyzed, a fourth function has the task of outputting the team and player rankings.

21 Generalizziamo Segmenting a program into manageable chunks: It allows each function to be written and tested separately. This greatly simplifies the process of getting the total program to work. Several separate functions are easier to handle and understand than one huge function. Libraries are just sets of functions that people tend to use all the time. Because they ve been prewritten and pretested, you know that they work, so you can use them without worrying about their code details. This will accelerate your program development by allowing you to concentrate on your own code, and it s a fundamental part of the philosophy of C. The richness of the libraries greatly amplifies the power of the language.

22 Generalizziamo You can accumulate your own libraries of functions that are applicable to the sort of programs that you re interested in. If you find yourself writing a particular function frequently, you can write a generalized version of it to suit your needs and build this into your own library. Then, whenever you need to use that particular function, you can simply use your library version. In the development of large programs, which can vary from a few thousand to millions of lines of code, development can be undertaken by teams of programmers, with each team working with a defined subgroup of the functions that make up the whole program.

23 L'aspetto di un programma C Tutti i programmi C sono costituiti da almeno una funzione: al crescere della complessità dei programmi e della capacità di organizzare un programma in sottoprogrammi, tale numero aumenterà. La funzione che è sempre presente in tutti i programmi è chiamata main. Più in generale ci si riferisce alla funzione main come al "programma principale", in quanto è la prima funzione che viene chiamata quando si esegue un programma. Il linguaggio C è costituito da sole 32 parole chiave riservate che combinate realizzano la sintassi formale del linguaggio. Si noti che tutte le parole chiave vengono scritte in minuscolo. Una parola chiave non può essere utilizzata per altri scopi, quali ad esempio il nome di una variabile. Il linguaggio di programmazione C può essere utilizzato per un approccio strutturato alla programmazione

24 La struttura di un programma C direttive per il preprocessore dichiarazioni globali main( ) { variabili locali alla funzione main ; istruzioni della funzione main } f1( ) { variabili locali alla funzione f1 ; istruzioni della funzione f1 } f2( ) { variabili locali alla funzione f2 ; istruzioni della funzione f2 }... etc Anche il più semplice programma C si basa su tre componenti chiave del linguaggio: le direttive: modificano il programma prima della compilazione; iniziano con il carattere # e non terminano con il ; le funzioni: ad es. il main le istruzioni: comandi eseguiti durante l esecuzione del programma

25 Si noti l'utilizzo delle parentesi tonde e graffe. Le parentesi tonde ( ) vengono utilizzate in unione con i nomi delle funzioni, mentre le parentesi graffe {} vengono utilizzate per delimitare le espressioni. Infine il punto e virgola ; indica la terminazione di un'espressione in C. Il linguaggio C ha un formato piuttosto flessibile: espressioni lunghe possono essere continuate su righe successive senza problemi: il punto e virgola segnala al compilatore che è stata raggiunta la fine dell'espressione. Inoltre, è possibile introdurre spazi indiscriminatamente, in genere allo scopo di dare un miglior aspetto al programma. Un errore molto comune è dimenticarsi il punto e virgola: in questo caso il compilatore concatenerà più linee di codice generando un'espressione priva di qualsiasi significato. Per questo motivo il messaggio d'errore che il compilatore restituisce non è la mancanza del punto e virgola, quanto la presenza di un qualcosa di incomprensibile. Attenzione dunque a non scordarsi i punti e virgola e ad interpretare i messaggi del compilatore.

26 Le direttive al preprocessore Una direttiva al preprocessore (#include) permette di inserire tutto il testo del file specificato nel nostro sorgente, a partire dalla riga in cui si trova la direttiva stessa. In particolare, in stdio.h è descritto il modo in cui la funzione printf() si interfaccia al programma che la utilizza; ci sono poi altre direttive al preprocessore e definizioni che servono al compilatore per tradurre correttamente il programma. Ogni compilatore C è accompagnato da un certo numero di file.h, detti include file o header file, il cui contenuto è necessario per un corretto utilizzo delle funzioni di libreria (anche le librerie sono fornite col compilatore). Gli header contengono i prototipi (le dichiarazioni) delle funzioni di libreria e la definizione di costanti. La parola chiave include non è una istruzione del linguaggio C e quindi non deve essere terminata da ;. Esempio: #include <stdio.h> #include <math.h>

27 Le librerie Contengono codice che esegue funzioni quali ad es. le funzioni matematiche, le funzioni di I/O, le funzioni grafiche, In pratica tutte le operazioni di interazione tra i programmi e l'hardware, il firmware ed il sistema operativo sono delegate a funzioni (aventi interfaccia più o meno standardizzata) esterne al compilatore, il quale non deve dunque implementare particolari capacità di generazione di codice, peculiari per il sistema al quale è destinato, permettendo la sua portabilità. Molti compilatori mettono a disposizione librerie proprietarie, che facilitano la programmazione ma che rendono difficile il porting del programma da un architettura ad una differente. I cosiddetti ambienti di sviluppo integrati, quali ad es. Microsoft Visual C, generalmente facilitano la soluzione delle problematiche relative alle librerie da usare, così come nascondono la maggior parte degli aspetti della compilazione, mediante un interfaccia visuale, e facilitano le fasi di debugging, permettendo di seguire passo passo l esecuzione del programma.

28 Le librerie standard Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle Ogni file sorgente che ne faccia uso deve però includere lo header opportuno, che contiene le dichiarazioni necessarie. input/output funzioni matematiche gestione di stringhe operazioni su caratteri gestione dinamica della memoria operazioni su data e ora... e molte altre. stdio.h math.h string.h ctype.h stdlib.h time.h

29 In conclusione

30 RISOLUZIONE DI UN PROBLEMA «Algoritmi e strutture dati» Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano, McGraw Hill Capitolo 3

31 Risoluzione di un problema Algoritmi Strutture dati Strumenti del linguaggio di programmazione La risoluzione di un problema mediante la realizzazione di un programma richiede i seguenti passi: 1. Definizione di un modello che sintetizzi le caratteristiche essenziali del problema (l algoritmo di soluzione a questo stadio può essere espresso solo in termini informali) 2. Definizione dell algoritmo in uno pseudo-linguaggio, tramite raffinamenti successivi fino a quando non vengono specificate in un certo dettaglio le operazioni che vanno compiute sui tipi di dati. Vengono cioè creati dei tipi di dato astratti (abstract data type) in cui ciascuna operazione sul tipo è una funzione con nome appropriato. 3. Realizzazione dell ADT e delle funzioni che su di esso operano e delle restanti parti di algoritmo.

32 Risoluzione di un problema modello matematico algoritmo informale ADT pseudolinguaggio strutture dati programma C Un mattone essenziale nella realizzazione di programmi è la procedura (funzione) che ha le seguenti caratteristiche: generalizza la nozione di operatore consentendo l estensione di quelli forniti dal linguaggio (es. moltiplicazione di matrici) incapsula parti di un algoritmo localizzando in una sezione del programma tutte le istruzioni riguardanti aspetti comuni.

33 Risoluzione di un problema Un ADT è invece un modello matematico insieme con la collezione delle operazioni definite su quel modello. Inoltre: generalizza i tipi primitivi (reale, intero, ) come una procedura fa con gli operatori sui tipi primitivi incapsula un tipo e le operazioni valide su di esso come una procedura fa con una parte di programma. Così i cambiamenti ad un ADT hanno impatto solo all interno dell ADT, l interfaccia verso l esterno resta identica e i dettagli non necessari sono invisibili dall esterno. Specifica cosa un operazione (funzione) che agisce sul tipo di dato deve fare, ma non come l operazione (funzione) può essere realizzata e soprattutto come gli oggetti della collezione possono essere organizzati in modo che le operazioni siano efficienti e la collezione stessa occupi poco spazio di memoria. Esempio: tipo di dato Dizonario, Lista, Pila, Albero,

34 Uso di ADT L uso di ADT generalizza il concetto di tipo in C, che offre: tipi primitivi su cui sono disponibili operazioni predefinite tipi definiti dall utente sui quali non esistono operazioni predefinite. Un ADT incapsula in un solo involucro una definizione di tipo e le operazioni su di esso, rendendo i tipi definiti dall utente più omogenei a quelli predefiniti. L interfaccia lo caratterizza verso l esterno. L implementazione è una traduzione in termini di linguaggio di programmazione della dichiarazione della variabile con quelle proprietà e di una funzione per ogni operazione dell ADT. Una implementazione sceglie una particolare struttura dati per la rappresentazione del tipo, usando i tipi primitivi ed i metodi di strutturazione dati disponibili nel linguaggio scelto. In generale, per uno stesso ADT sono possibili molteplici realizzazioni alternative basate su strutture dati diverse che permettono di implementare le operazioni richieste in modo più o meno efficiente.

35 Tipo e struttura dati Il tipo di una variabile è l insieme dei valori che essa può assumere. Una struttura dati è la collezione di variabili di vari tipi connesse in vari modi (tipicamente per realizzare il modello matematico di un ADT). I metodi usati per connettere variabili dei vari tipi e far loro formare una struttura dati sono legati al linguaggio di programmazione (es. array, record, file, struct, ), così come la possibilità di esprimere relazioni fra variabili (puntatori).

36 Gestione di collezioni di oggetti Tipo di dato: Specifica delle operazioni di interesse su una collezione di oggetti (es. inserisci, cancella, cerca) Struttura dati: Organizzazione dei dati che permette di supportare le operazioni di un tipo di dato usando meno risorse di calcolo possibile

37 Il tipo di dato Dizionario

38 Il tipo di dato Pila

39 Il tipo di dato Coda

40 Tecniche di rappresentazione dei dati Rappresentazioni indicizzate: I dati sono contenuti in array Rappresentazioni collegate: I dati sono contenuti in record collegati fra loro mediante puntatori

41 Pro e contro Rappresentazioni indicizzate: Pro: accesso diretto ai dati mediante indici Contro: dimensione fissa (riallocazione array richiede tempo lineare) Rappresentazioni collegate: Pro: dimensione variabile (aggiunta e rimozione record in tempo costante) Contro: accesso sequenziale ai dati

42 Esempi di strutture collegate Lista semplice Lista doppiamente collegata Lista circolare doppiamente collegata

43 Alberi Organizzazione gerarchica dei dati: Dati contenuti nei nodi, relazioni gerarchiche definite dagli archi che li collegano.

44 Rappresentazioni collegate di alberi Rappresentazione con puntatori ai figli (nodi con numero limitato di figli) Rappresentazione con liste di puntatori ai figli (nodi con numero arbitrario di figli)

45 Rappresentazioni collegate di alberi Rappresentazione di tipo primo figlio-fratello successivo (nodi con numero arbitrario di figli)

INTRODUZIONE E FONDAMENTI. «Programmazione in C» Kim N. King, Apogeo Capitolo 1 e 2

INTRODUZIONE E FONDAMENTI. «Programmazione in C» Kim N. King, Apogeo Capitolo 1 e 2 INTRODUZIONE E FONDAMENTI «Programmazione in C» Kim N. King, Apogeo Capitolo 1 e 2 Il Linguaggio C Il Linguaggio di Programmazione C è costituito da un linguaggio di computazione (il C vero e proprio)

Dettagli

INTRODUZIONE E FONDAMENTI. «Programmazione in C» Kim N. King, Apogeo Capitolo 1 e 2

INTRODUZIONE E FONDAMENTI. «Programmazione in C» Kim N. King, Apogeo Capitolo 1 e 2 INTRODUZIONE E FONDAMENTI «Programmazione in C» Kim N. King, Apogeo Capitolo 1 e 2 Il Linguaggio C Il Linguaggio di Programmazione C è costituito da un linguaggio di computazione (il C vero e proprio)

Dettagli

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N

Dettagli

Introduzione alla programmazione. Alice Pavarani

Introduzione 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

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Introduzione al Linguaggio C ed all IDE DEV-C++

Introduzione al Linguaggio C ed all IDE DEV-C++ Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ 1 Le Esercitazioni in Laboratorio! MTA + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato! Orario: Giovedì 14:30-17:30!

Dettagli

Fondamenti di Informatica. Ingegneria elettronica

Fondamenti di Informatica. Ingegneria elettronica Fondamenti di Informatica Ingegneria elettronica Prima esercitazione Cecilia Catalano Sistema Operativo Il S.O. è costituito da un insieme di programmi che permettono di utilizzare e gestire tutte le risorse

Dettagli

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

STORIA E CARATTERISTICHE

STORIA E CARATTERISTICHE IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori

Dettagli

Introduzione alla programmazione A. Ferrari

Introduzione alla programmazione A. Ferrari Introduzione alla programmazione A. Ferrari Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi ad

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati 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

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2017-2018 Programmazione Lezione 4 il Linguaggio C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Problemi

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Linguaggio di Riferimento: C

Linguaggio di Riferimento: C Programmazione procedurale Linguaggio di Riferimento: C 1 Linguaggio macchina Il linguaggio macchina costituisce la forma espressiva atta a descrivere programmi e ad essere direttamente interpretata dall

Dettagli

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese 03-10-2003 Il linguaggio C Linguaggio general-purpose Il linguaggio C Creato nel 1972 nei Bell Labs da Dennis Ritchie su PDP11 Usato per il Sistema Operativo Unix da Ken Thompson Negli anni 80 nasce ANSI

Dettagli

Linguaggio C. Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati. Stefano Aguzzoli

Linguaggio C. Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati. Stefano Aguzzoli Linguaggio C Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati Stefano Aguzzoli Alcune note introduttive Orario lezioni: Lunedì: 11:40 13:10, Giovedì: 10:40-11:25 sempre in Aula V3, Via

Dettagli

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Il 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

Dettagli

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono

Dettagli

Linguaggi di Programmazione

Linguaggi 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

Dettagli

09/10/2014 M. Nappi/FIL 1

09/10/2014 M. Nappi/FIL 1 FONDAMENTI DI INFORMATICA E LABORATORIO Lezione 2: Il linguaggio C Costanti, Variabili, Parole Chiave, Operatori Michele Nappi mnappi@unisa.it biplab.unisa.it 09/10/2014 M. Nappi/FIL 1 Breve Storia del

Dettagli

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Prof. 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

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

#include <stdio.h> main() { - 1 -

#include <stdio.h> main() { - 1 - Un primo esempio di programma Ogni programma C deve contenere una funzione speciale chiamata main che indica il punto in cui inizia l esecuzione del programma. La funzione main è unica all interno di ogni

Dettagli

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University

Dettagli

Introduzione 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 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,

Dettagli

La Programmazione. Cos è la programmazione? Concetti preliminari

La Programmazione. Cos è la programmazione? Concetti preliminari La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione

Dettagli

Primo programma in C

Primo programma in C Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file

Dettagli

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

#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

Dettagli

Capitolo 5 - Funzioni

Capitolo 5 - Funzioni Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Lezione 1 e 2 Fabio Scotti Laboratorio di programmazione per la sicurezza 1 Lezione 1 e 2 Fabio Scotti Laboratorio di programmazione per la sicurezza Introduzione al linguaggio C e significato della compilazione

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Le direttive del Preprocessore

Le direttive del Preprocessore Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza

Dettagli

Struttura di un. Struttura dei programmi C

Struttura 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

Dettagli

Lezione 3. Breve storia del C

Lezione 3. Breve storia del C Lezione 3 Introduzione al linguaggio C Breve storia del C Sviluppato da Ritchie a partire da due linguaggi precedenti: BCPL e B Usato per sviluppare il sistema operativo UNIX Attualmente, diversi sistemi

Dettagli

Introduzione al C. InformaticaB. Daniele Loiacono

Introduzione al C. InformaticaB. Daniele Loiacono Introduzione al C InformaticaB Facciamo un passo indietro Compilare o Interpretare? q Come rendo comprensibili al calcolatore i programmi scritti in un linguaggio di programmazione (ad es. C, C++, Java)?

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE 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

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

INTRODUZIONE 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

Dettagli

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3

Dettagli

Struttura dei programmi e Variabili

Struttura 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

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione 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

Dettagli

Introduzione. "Introduction to Scientific and Technical Computing in C"

Introduzione. Introduction to Scientific and Technical Computing in C Introduzione "Introduction to Scientific and Technical Computing in C" Agenda Lunedì 3 ottobre 2016 Introduzione 9.30-13.00 Tipi di dato Compilazione 13.00-14.00 PAUSA Costrutti e puntatori 14.00-17.00

Dettagli

Iniziare a programmare in C++

Iniziare a programmare in C++ Iniziare a programmare in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

Sunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.

Sunto 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

Dettagli

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

Introduzione al C. Unità 10 Preprocessore. D. Bloisi, S. Peluso, A. Pennisi, S. Salza

Introduzione al C. Unità 10 Preprocessore. D. Bloisi, S. Peluso, A. Pennisi, S. Salza Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 10 Preprocessore D. Bloisi, S. Peluso, A. Pennisi, S. Salza Sommario Processo

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Java: un linguaggio per applicazioni di rete

Java: un linguaggio per applicazioni di rete Java: un linguaggio per applicazioni di rete Moreno Falaschi Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena March 3, 2014 1 Caratteristiche di Java (SUN) Linguaggio

Dettagli

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21 Luca Abeni Informatica Luca Abeni 1 / 21 Linguaggi di Programmazione di Alto Livello Parole chiave: possibilmente con significato in inglese Ma agli informatici piacciono molto contrazioni e acronimi...

Dettagli

Evoluzione del C 07/04/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C

Evoluzione del C 07/04/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0; Problema: CALCOLARE LA SOMMA DEI FATTORIALI DEI PRIMI 100 NUMERI NATURALI 0!+1!+2! + 99! #include int fattoriale(int); Calcolo fattoriale int main(){ int numero; /* numero di cui voglio calcolare

Dettagli

Introduzione alla gestione delle collezioni di oggetti

Introduzione alla gestione delle collezioni di oggetti Introduzione alla gestione delle collezioni di oggetti Alcune tecniche di base Un esempio: l ADT Dizionario (mutabile) Un esempio: l ADT Pila (mutabile) Un esempio: l ADT Coda (mutabile) Tecniche di rappresentazione

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]

Dettagli

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili

Dettagli

Introduzione alla programmazione in C

Introduzione 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

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 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,

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno Il concetto di dato Il concetto

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Strutture Elementari Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 29 ottobre 2008 Strutture Dati Astratte Il concetto di dato Il concetto

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Introduzione alle lezioni in laboratorio Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti

Dettagli

Corso di Fondamenti di Informatica e Laboratorio

Corso di Fondamenti di Informatica e Laboratorio Corso di Fondamenti di Informatica e Laboratorio Corsi di Laurea Ingegneria Informatica (O-Z) Corsi di Laurea Ingegneria delle Telecomunicazioni - (A-Z) (ordinamento 03) A.A. 2009-2010 Prof. Giuseppe Mangioni

Dettagli

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii

PREFAZIONE... 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...

Dettagli

Elementi di Base. Introduzione a Python.

Elementi di Base. Introduzione a Python. Elementi di Base Introduzione a Python http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Panoramica Elementi di base della sintassi (struttura,

Dettagli

Linguaggio C Struttura dei programmi

Linguaggio C Struttura dei programmi FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struttura dei programmi 2001 Pier Luca Montessoro - Davide

Dettagli

Preprocessore, linker e libreria standard

Preprocessore, linker e libreria standard Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Dettagli

La programmazione in linguaggio C

La programmazione in linguaggio C FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

I Fondamenti del Linguaggio

I 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

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Introduzione alla programmazione. Walter Didimo

Introduzione alla programmazione. Walter Didimo Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata

Dettagli

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C... Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...

Dettagli

1 PANORAMICA SUL LINGUAGGIO C

1 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

Dettagli

Primi passi Output formattato Le quattro operazioni. Programmazione 1. Lezione 2 Parte 2. Vincenzo Marra.

Primi passi Output formattato Le quattro operazioni. Programmazione 1. Lezione 2 Parte 2. Vincenzo Marra. Programmazione 1 Lezione 2 Parte 2 Vincenzo Marra vincenzo.marra@unimi.it Dipartimento di Matematica Federigo Enriques Università degli Studi di Milano 12 marzo 2014 Struttura del sorgente Un programma

Dettagli

Primo passo: il preprocessor. Il preprocessore. Esempi di direttive al preprocessore: #include. Esempi di direttive al preprocessore: #define

Primo passo: il preprocessor. Il preprocessore. Esempi di direttive al preprocessore: #include. Esempi di direttive al preprocessore: #define Primo passo: il preprocessor Source code Preprocessor Pre-processed source code Compiler Libraries Linker Executable code 1 Il preprocessore Il preprocessore compie delle manipolazioni sul codice del programma.

Dettagli

Informazioni generali sul corso

Informazioni generali sul corso Introduzione Informazioni generali sul corso Il corso si propone di illustrare la sintassi del C con un insistenza maggiore sulle strutture, le potenzialità, i limiti e le utilities messe a disposizione

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché

Dettagli

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE. Cosimo Laneve

INTRODUZIONE ALLA PROGRAMMAZIONE. Cosimo Laneve INTRODUZIONE ALLA PROGRAMMAZIONE Cosimo Laneve 1 argomenti (Capitolo 1 Savitch) 1. sistemi di calcolo 2. programmazione e problem solving 3. introduzione a C++ 4. testing e debugging 2 sistema di calcolo

Dettagli

ASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1

ASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1 ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

Modularizzazione del software

Modularizzazione del software Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica

Dettagli

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche.

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche. Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche. APPUNTI SUL LINGUAGGIO C I computer elaborano i dati sotto il controllo

Dettagli