Programmazione C Massimo Callisto De Donato

Documenti analoghi
Linguaggi di Programmazione

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Il linguaggio di programmazione Python

Introduzione alla programmazione. Walter Didimo

LINGUAGGI DI ALTO LIVELLO

FONDAMENTI DI INFORMATICA

Corso di INFORMATICA 2 (Matematica e Applicazioni)

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

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

Linguaggi di alto livello, compilatori e interpreti

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Unità Didattica 2 I Linguaggi di Programmazione

Linguaggi di programmazione e astrazione

Introduzione al funzionamento di un calcolatore elettronico

Fondamenti di Programmazione

Introduzione alla Programmazione. Giselda De Vita

Linguaggi di programmazione

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

STORIA E CARATTERISTICHE

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

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

Primi passi col linguaggio C

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Linguaggio C: introduzione

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

Il calcolatore. Architettura di un calcolatore (Hardware)

Concetti Introduttivi. Il Computer

Informatica Generale Andrea Corradini I linguaggi di programmazione

Corso Programmazione

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

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

Introduzione al Linguaggio C

Corso di Laurea in Ingegneria Informatica (L8) Anno Accademico 2015/2016 FONDAMENTI DI INFORMATICA

Programmazione in C. Requisiti didattici

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Indice. Prefazione. 3 Oggetti e Java 53

Programmazione strutturata

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Indice. Introduzione 15. L hardware 24. Il software 43. Introduzione al linguaggio di Arduino 60. Basi del linguaggio di Arduino 65

I.I.S. Federico II di Svevia - Melfi

Fondamenti di Programmazione

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Informatica

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

Corso di Informatica di Base

Introduzione al Calcolo Scientifico

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

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

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE QUINTA

Funzioni, Stack e Visibilità delle Variabili in C

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Linguaggi di Programmazione

Esempio di Patto Formativo per la classe terza

Corso di Fondamenti di Informatica e Laboratorio T-AB

Costrutti condizionali e iterativi

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Teoria dell Informazione

INTRODUZIONE Informatica - Modulo di Programmazione Ingegneria gestionale, a.a Patrizia Scandurra

Corso di Fondamenti di Informatica e Laboratorio ato o T-AB

Capitolo 3 L elaborazione e la strutturazione dell informazione

LINGUAGGI DI PROGRAMMAZIONE!

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Il concetto di calcolatore e di algoritmo

Algoritmi e Linguaggi

Concetti introduttivi

Struttura del calcolatore

Fondamenti di Informatica e Laboratorio T-AB

Laboratorio di Programmazione

Transcript:

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 0 - INTRODUZIONE A.A. 2011/12

Obbiettivi del corso Conoscere il linguaggio di programmazione C Programmare in linguaggio C Padroneggiare gli elementi base del linguaggio Conoscenze base da poter applicare in altri linguaggi di programmazione (e.g. C++, JAVA) Introduzione ai concetti più avanzati del linguaggio C

Programma nel dettaglio Introduzione ai linguaggi di programmazione; principi fondamentali; introduzione storica. Linguaggi funzionali, dichiarativi e logici. Organizzazione di un programma in C. Tipi, operatori ed espressioni: variabili e costanti; dichiarazioni; operatori aritmetici e logici; conversioni di tipo; espressioni condizionali. Strutture di controllo: if-else, else-if, switch-case; cicli for, while e dowhile. Array monodimensionali e multidimensionali. Funzioni, passaggio di parametri; variabili esterne e static; regole di scope; header file; ricorsione. Puntatori e argomenti correlati. Strutture; vettori di strutture; puntatori a strutture; strutture ricorsive. Input ed output (cenni): standard; accesso a file; lettura e scrittura su file.

Materiale ed esame finale Testi di riferimento proposti B.W. Kernighan e D.M. Ritchie Linguaggio C, II Edizione, Jackson Libri, 1989. H. Schildt C Guida Completa Mc-Graw-Hill Libri Italia, 1995. Bellini, A. Guidi Linguaggio C Mc-Graw-Hill Libri Italia, 1999. Modalità di esame Progetto didattico utilizzando i concetti visti a lezione Da consegnare qualche giorno prima dell appello Da discutere in sede di esame insieme a domande di teoria. Per lo sviluppo: Code::Blocks per C/C++ (www.codeblocks.org/) Bloodshed Dev-C++ (www.bloodshed.net/devcpp.html) Informazioni aggiuntive @ massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Aula dottorandi del dipartimento di Informatica

I linguaggi di programmazione Un linguaggio di programmazione è un linguaggio artificiale progettato per impartire delle istruzioni ad un elaboratore Un programma è un algoritmo codificato usando un linguaggio di programmazione (e.s. C). Ogni linguaggio di programmazione ha: una precisa sintassi: definisce quali sono le frasi legali del linguaggio precisa semantica: definisce il significato di ogni fase sintatticamente corrette

Evoluzione Nel corso degli anni sono stati sviluppati un certo numero di linguaggi di programmazione differenti La scelta dipende dal dominio applicativo e dal tipo di problema che vogliamo risolvere

Livelli di astrazione Un calcolatore può essere visto a diversi livelli di astrazione. Ad ogni livello usiamo un modo specifico per comunicare con il calcolatore.

Livelli di astrazione Un calcolatore può essere visto a diversi livelli di astrazione. Ad ogni livello usiamo un modo specifico per comunicare con il calcolatore. Hardware E costituita da flusso input/output di dati Una memoria centrale in cui vengono memorizzati sia i programmi che i dati Un agente di calcolo, detto processore o CPU (Central Process Unit) che esegua le azioni programmate sui dati iniziali

Livelli di astrazione Un calcolatore può essere visto a diversi livelli di astrazione. Ad ogni livello usiamo un modo specifico per comunicare con il calcolatore. Linguaggio macchina Può essere interpretato ed eseguito senza mediazioni Corrispondono ad operazioni direttamente eseguibili dall hardware Sono strettamente correlate all architettura dell elaboratore Sono sequenze binarie con cui vengono codificate sia le istruzione che i loro operandi

Livelli di astrazione Un calcolatore può essere visto a diversi livelli di astrazione. Ad ogni livello usiamo un modo specifico per comunicare con il calcolatore. Linguaggio assembler Costituisce un primo parziale passo verso la semplificazione della programmazione Le istruzioni binarie con dei codici mnemonici più facilmente comprensibili dall uomo

Livelli di astrazione Un calcolatore può essere visto a diversi livelli di astrazione. Ad ogni livello usiamo un modo specifico per comunicare con il calcolatore. Linguaggi di alto livello Sono più simili ai linguaggi naturali rispetto alle sequenze di 0 e 1 del linguaggio macchina, ma anche rispetto al linguaggio assembler Consentono l utilizzo di simboli matematici e parole chiave tipiche dei linguaggio naturale

Linguaggio di alto livello L aumento della complessità dei programmi ha reso necessario sviluppare linguaggi di programmazione più semplici dei linguaggi assembler. Questi permettono di usare costrutti allo scopo di: 1. Astrazione dalla macchina di riferimento 2. Semplificazione della scrittura dei programmi 3. Similarità con il ragionamento umano Appositi software - compilatori - provvedono: a) Tradurre le istruzioni dei un linguaggio di alto livello (codice sorgente) b) in equivalente codice eseguibile c) dalla macchina di riferimento (codice oggetto) Sono meno efficienti rispetto al linguaggio assembler e al linguaggio macchina

Tipologie I linguaggi di programmazione possono essere ulteriormente classificati in base al loro paradigma di programmazione. Ci riferiamo alla metodologia con cui vengono specificati i programmi. Non ci riferiamo ai diversi linguaggi di programmazione (i costrutti ed i modi sono spesso simili) ma a come viene organizzata la programmazione. I principali paradigmi di programmazione: Programmazione imperativa (e.g. C) Ad oggetti (e.g. C++/Java) Funzionale (e.g. Lisp).

Programmazione imperativa Un programma è una serie di istruzioni da eseguire in sequenza. Costrutti dedicati permettono di alterare tale flusso (di esecuzione): if-then-else cicli procedure e funzioni con passaggio di parametri Il programmatore deve: Definire le strutture dati Gli algoritmi che operano su di essi L esecuzione non è altro che l esecuzione sulla CPU delle sequenze di istruzioni. Esempi: Fortran, Cobol, Pascal, C.

Storia del linguaggio C Sviluppato nel 1973 (AT&T Bell Labs) da Dennis M. Ritchie. Nel 1978 venne formalizzato insieme a B. W. Kernighan. Caratteristiche fondamentali: intuitivo, flessibile, estremamente potente ed efficacie nel codice macchina prodotto. Tra i linguaggi di programmazione ad alto livello è il più potente e veloce. Presto uscirono compilatori per il linguaggio C per tutte le nuove architetture hardware. Nel 1983, l American National Standards Institute (ANSI) definì uno standard per il linguaggio C. La versione finale dello standard C (1989) venne tradotta nel 1999 come standard ISO C Standard ANSI/ISO.

Elementi principali Elementi del linguaggio: Case sensitive (distingue tra minuscole e maiuscole) Tipi di dati base (interi, vettori, ) Strutture di controllo (if, while,...) Decomposizione dei programmi (Funzioni e librerie) o Funzioni standard di I/O (fles, terminale, stampanti) o Gestione stringhe o Gestione dinamica della memoria o Funzioni matematiche o altre librerie La grande potenza: Definire tipi di dati derivati (typedef, strutture) Accesso all'hardware se necessario (puntatori) Riutilizzo del codice (librerie del S.O, esterne)... Ma.. Il linguaggio C richiede una certa padronanza di utilizzo!