• Non ci sono risultati.

Introduzione alla programmazione in C

N/A
N/A
Protected

Academic year: 2021

Condividi "Introduzione alla programmazione in C"

Copied!
14
0
0

Testo completo

(1)

Introduzione alla programmazione in C

Andrea Marin

Universit`a Ca’ Foscari di Venezia Dipartimento di Informatica

Corso di Programmazione

a.a. 2011/2012

(2)

Corso di programmazione

I Docenti:

I Andrea Marin (linguaggio C + esercitazioni)

I I semestre

I Samuel Rota Bul`o (linguaggi funzionali + esercitazioni)

I II Semestre I Lezioni:

I Mercoled`ı 18:15-19:45

I Sabato 10:30-11:45

(3)

Parte di programmazione con linguaggio C

I Libri di testo:

I A. Bellini, A. Guidi. Linguaggio C - guida alla programmazione. Quarta edizione. McGraw-Hill.

I B. W. Kernighan, D. M. Ritchie. Il linguaggio C: principi di programmazione e manuale di riferimento. Prentice Hall (Pearson).

I Email: marin@dais.unive.it

I Nelle email specificare da qualche parte nell’oggetto PPT11

I Web page:

http://www.dais.unive.it/˜ marin/programmazione11.html

(4)

Modalit` a di esame

I L’esame consiste in una prova al calcolatore che coinvolge sia la parte procedurale (C) che quella funzionale (ML)

I Il candidato deve essere sufficiente in entrambe le parti e il voto conseguito `e la media aritmetica dei voti conseguiti nelle singole prove

I Le prove si tengono lo stesso giorno e durano circa 2:15 ciascuna. . . ma non `e necessario sostenerle lo stesso giorno!

I Durante il corso vengono assegnati degli esercizi che non contribuiscono all’attribuzione del voto finale. Tuttavia, gli studenti sono caldamente consigliati a svolgerli

I Gli esercizi, specie quelli errati, possono essere inviati per posta elettronica

(5)

Perch` e studiare il linguaggio C?

I C `e un linguaggio con sole 32 keywords

I C `e largamente usato (grande disponibilit`a di programmi C)

I C `e stabile (il linguaggio cambia poco nel tempo)

I L’esecuzione di codice C `e veloce

I C `e un linguaggio che fa da base per molti altri linguaggi (Java, C++, awk, Perl)

I Anche se pu`o sembrare strano, C `e uno fra i linguaggi pi`u semplici da studiare ma non da usare!

(6)

Nota importante!

Importante!

Qualora vi risultasse oscuro o non chiaro quello di cui parlo, interrompete la lezione e chiedete! approfittate dei momenti di pausa. Se dovessero sussistere problemi, mandate una mail per fissare un incontro serale per risolverli!

(7)

Architettura di Von Neumann

Architettura di Von Neumann

(8)

Architettura di Von Neumann

Calcolo automatico

Frase celebre

Ho girato avanti e indietro questa nazione (USA) e ho parlato con la gente. Vi assicuro che questa moda dell’elaborazione automatica non vedr`a l’anno prossimo.

(Editor di libri scientifici di Prentice Hall, 1947) Ma non `e andata cos`ı. . .

I Oggi, molti dei calcolatori moderni sono basati sull’architettura di Von Neumann

I Peculiarit`a: utlizzo della stessa memoria per dati e programmi!

(9)

Macchina astratta C

Macchina astratta C (semplificazione)

I Input: sequenza (stream) di dati che vengono consumati dal programma in esecuzione

I Output: sequenza (stream) di dati che vengono prodotti dal programma in esecuzione

I Memoria: distinta in

I Memoria programma: contiene il codice del programma da eseguire. Pu`o essere letta ma non scritta

I Memoria dati: contiene i dati che vengono manipolati durante l’esecuzione del programma. Pu`o essere sia letta che scritta

(10)

Macchina astratta C

Che cos’` e un programma C?

Definition (Programma C)

Un programma C `e una sequenza finita di istruzioni che sono interpretabili dalla macchina astratta C.

I La sequenza di istruzioni `e finita, ma non `e detto che la sua esecuzione termini

I Le istruzioni vengono eseguite sequenzialmente

I Ogni istruzione pu`o:

I Leggere dall’input stream

I Scrivere sull’output stream

I Modificare lo stato della macchina astratta

I Leggere o scrivere dalla memoria dati

I . . .

(11)

Macchina astratta C

Uso della memoria

I Consideriamo la memoria in quantit`a illimitata

I Ad un certo istante, solo una parte finitadella memoria pu`o essere impiegata

I Quali conseguenze di queste assunzioni?

(12)

Macchina astratta C

Stato della macchina astratta

Lo stato della macchina astratta C `e dato da:

I Indicatore della prossima istruzione del programma da eseguire

I Contenuto della memoria dati

L’esecuzione di un’istruzione altera lo stato della Macchina astratta perch`e modifica almeno l’indicatore della prossima istruzione da eseguire.

(13)

Macchina astratta C

Come accedere alla memoria dati?

I La memoria dati `e suddivisa in porzioni chiamate locazioni

I Ogni locazione in uso ha un indirizzoed untipo

I Il tipo di una locazione specifica. . .

I l’insieme dei valori che possono essere memorizzati in quella locazione

I come vengono condificati i valori

I le operazioni possibili su quei valori

I una locazione in uso prende il nome di variabile

I alla variabile pu`o essere assegnato un nome

(14)

Macchina astratta C

Ancora sulla variabile

Variabile

In C una variabile `e una locazione di memoria alla quale sono associati un tipo ed un valore. Ad una variabile `e possibile assegnare un nome chiamato identificatore.

Rilettura dello stato della Macchina virtuale C. . .

I Indicatore alla prossima istruzione da eseguire

I Valori assunti dalle variabili

Riferimenti

Documenti correlati

Se in particolare il ritratto costituisce un esempio di immagine- quadro nel quale si dà esplicitamente il riferimento all’originale, più in generale l’immagine è una manifestazione

Di seguito stampa su monitor il suo valore con due cifre decimali prima della virgola, due cifre decimali dopo la virgola in notazione esponenziale.. Il comando semilogy ha come

Se tutto è una macchina, ebbene… arriva un mo- mento in cui il funzionamento della macchina diventa così odioso, ti fa stare così male dentro, che non puoi più parteciparvi,

Intendendo il markup in questo modo, una variante testuale – perché tale è da intendersi il markup considerato come espressione del linguaggio oggetto – diventa

Archimede (III sec a.C.) costruì (secondo Cicerone) insieme a Posidonio di Rodi una macchina circolare con la quale si rappresentavano i movimenti del Sole, dei pianeti

L’esecuzione di un’istruzione altera lo stato della Macchina astratta perch` e modifica almeno l’indicatore della prossima istruzione da eseguire... Macchina

La posizione delle testine ` e tenuta usando un carattere speciale sul nastro, e memorizzando il carattere sotto la testina nell’OC Il contenuto dei diversi nastri ` e delimitato

Possono essere di tre tipi a seconda della loro lunghezza focale, cioè della distanza fra il centro ottico dell'obiettivo ed il piano della pellicola quando l'obiettivo è