slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Fondamenti di Programmazione Classe 2 (matricole congrue 1 mod 3) Docente: Prof. Luisa Gargano PowerPoint Presentation
Download Presentation
Fondamenti di Programmazione Classe 2 (matricole congrue 1 mod 3) Docente: Prof. Luisa Gargano

Loading in 2 Seconds...

play fullscreen
1 / 32

Fondamenti di Programmazione Classe 2 (matricole congrue 1 mod 3) Docente: Prof. Luisa Gargano - PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on

Fondamenti di Programmazione Classe 2 (matricole congrue 1 mod 3) Docente: Prof. Luisa Gargano. Finalità: basi teoriche della programmazione

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Fondamenti di Programmazione Classe 2 (matricole congrue 1 mod 3) Docente: Prof. Luisa Gargano' - brigid


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Fondamentidi Programmazione

Classe2

(matricole congrue 1 mod 3)

Docente: Prof. Luisa Gargano

slide2

Finalità:basi teoriche della programmazione

Testo:Aho, Ulman, Foundations of Computer Science –C Edition W.H. Freeman and Company, NY, 1994

slide3

Informazioni Pratiche

ORARIO: Martedì 16:00-18:00, Venerdì 9:00-11:00

N.B.: Tutte le lezioni sono ugualmente importanti!

SITO WEB:http://www.dia.unisa.it/professori/lg/FP.html

di riferimento per il materiale relativo al corso

- copie delle slides, esercizi,

- date delle prove,

- comunicazioni varie,

- etc.

slide4

Suggerimenti

  • Avere già le slides a disposizione a lezione
  • EVITARE di lasciare accumulare il lavoro
  • Studiare volta per volta
  • Chiarire i dubbi di volta in volta
  • Fare gli esercizi
slide5

Prove di Esame

  • Prova scritta con esercizi e teoria
  • (nessun materiale ammesso)
  • Eventuale prova orale
  • Requisito minimo: 40% del totale
slide6

Progamma sintetico

  • Tecniche di programmazione (iterative e ricorsive)
  • Efficienza di programmi
  • Strutture dati elementari (liste, alberi)
  • Automi finiti
slide7

ALGORITMI e PROGRAMMI

Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

INPUT: dati iniziali INPUT:x,y,z

AZIONI esempio: Somma x ed y

Somma z al risultato

OUTPUT: risultato OUTPUT: x+y+z

Algoritmo: Sequenza di azioni per svolgere il calcolo

Programma: Algoritmo espresso in notazione formale

(linguaggio di programmazione)

Creazione programma:

Fase 1 = algoritmo

Fase 2 = implementazione in dato linguaggio (C)

SCOPO del CORSO:

Elementi di base per semplici algoritmi e programmi

slide8

Riepilogo del linguaggio C: Espressioni

Espressione: formula (regola di calcolo) che specifica sempre un valore

Esempio: espressione algebrica: z=x* y, (x+3)/5

slide9

Riepilogo del linguaggio C: Espressioni

Espressione: formula (regola di calcolo) che specifica sempre un valore

Esempio: espressione algebrica: z=x* y, (x+3)/5

Espressionecompostada: Operatori

Operandi (costanti, variabili,…)

slide10

Riepilogo del linguaggio C: Espressioni

Espressione: formula (regola di calcolo) che specifica sempre un valore

Esempio: espressione algebrica: z=x* y, (x+3)/5

Espressionecompostada: Operatori

Operandi (costanti, variabili,…)

Operatori Algebrici: +, -, *, /, - unario, ++, --, %

( i%j= i modulo j= resto di i diviso j)

slide11

Riepilogo del linguaggio C: Espressioni

Espressione: formula (regola di calcolo) che specifica sempre un valore

Esempio: espressione algebrica: z=x* y, (x+3)/5

Espressionecompostada: Operatori

Operandi (costanti, variabili,…)

Operatori Algebrici: +, -, *, /, - unario, ++, --, %

( i%j= i modulo j= resto di i diviso j)

Operatori Logici: AND (&&), OR (||), NOT (!),

(su variabili booleane - valore vero/falso)

x AND y VERO se e solo se x,y VERE

x OR y FALSO se e solo se x,y FALSE

NOT x VERO se e solo se x FALSA

slide12

Espressioni

Operatori di confronto:

Uguale “==“:x==y da VERO sse x e y hanno stesso valore

Diverso “!=“: x!=y da VERO sse x e y hanno dalori diversi

Minore “<“

Minore o Uguale “<=“

Maggiore “>”

Maggiore o uguale “>=“

slide13

ISTRUZIONI

Assegnamento:x=E, Calcola il valore dell’espressione E

e loassegna alla variabile x

Esempio: x=x+y calcola il valore dix+y e lo assegna ad x

se x vale 5 e y vale 3, x=x+y da ad x valore 8

slide14

ISTRUZIONI

Assegnamento:x=E, Calcola il valore dell’espressione E

e loassegna alla variabile x

Esempio: x=x+y calcola il valore dix+y e lo assegna ad x

se x vale 5 e y vale 3, x=x+y da ad x valore 8

Istruzioni Strutturate:

1) Composizione di Istruzioni:

Esegui I1, quando e’ terminata

esegui I2, quando e’ terminata

esegui Im.

x=1; y=2; x=x+y; (x vale 3)

y=x*y (y vale 6)

slide15

ISTRUZIONI Strutturate

2) Istruzioni Condizionali:

If (C) I’ else I’’;

C condizione, I’ ed I’’ composizioni di istruzioni

Es.

Poni z=0 se x<=y; poni z=x-y se x>y

if (x<=y) z=0 else z=x-y

slide16

ISTRUZIONI Strutturate

2) Istruzioni Condizionali:

If (C) I’ else I’’;

C condizione, I’ ed I’’ composizioni di istruzioni

Es.

Poni z=0 se x<=y; poni z=x-y se x>y

if (x<=y) z=0 else x=x-y

Poni z=0 se x<=y; altrimenti lascia il valore di z inalterato

if (x<=y) z=0

If (C) I;

slide17

Istruzioni Ripetitive

for (x=1, x<=n, x++) I;

I e’ una composizione di istruzioni

Poni x=1 esegui I

Modifica x (x=2), esegui I

Modifica x (x=n), esegui I

y=0;

for (x=1, x<=n, x++) y=y+x;

x=1

FALSO, ESCI

x<=n

VERO

I

x++

slide18

while ( C ) I;

C e’ una condizione, I e’ una composizione di istruzioni

x=1; y=0;

while (x<=n) {y=y+x;

x++}

Falso, ESCI

C

Vero

I

slide19

do I while (C);

x=1;

y=0;

do y=y+x; x++ while (x<=n)

I

Falso, ESCI

C

Vero

n=0?

slide20

Scegliere astrazione: definire un

Insieme di dati che rappresentano

la realta’ (modello di dati)

Scegliere rappresentazione della

informazione (struttura dati)

Algoritmo e programma

Risolvere problema

Es. Archivio impiegati contiene insieme di dati rilevanti

(astrazione) su ogni impiegato

Rilevanti: Nome, stipendio, mansione

Non rilevanti: altezza, peso, colore occhi, colore capelli

slide21

Tipi di dati

Variabile: e’ identificata da un nome

ha associato un tipo (intero, reale,…)

si possono conservare solo oggetti di tale tipo

Tipi Base (in C): intero (int), reale (real), carattere (char)

Definizioni di variabili

int x definisce x come variabile di tipo intero

slide22

Definizioni di Variabili

ARRAY formato da componenti dello stesso tipo

le componenti sono individuate da un indice

int A[n] :array di n componenti di tipo intero

Si accede ad una componente alla volta specificando l’indice

int X[5]

X[0]=10;

X[1]=7;

X[2]=4;

X[3]=3;

X[4]=8;

Crea l’array di interi X:

slide23

Array

Es. cerca il numero di una componenti di un array

A[n] avente valore w.

idea: confronta w con A[0], A[1],… finche’ non

hai esaminato tutto l’array,

incrementa contatore ad ogni confronto positivo

int A[n]

int c=0;

for(i=0,i<n,i++) if (A[i]==w) c++;}

Assumiamo n=5 e w=3

c=0

A[0]=w=3 , c=1

slide24

Array

Es. cerca il numero di una componenti di un array

A[n] avente valore w.

idea: confronta w con A[0], A[1],… finche’ non

hai esaminato tutto l’array,

incrementa contatore ad ogni confronto positivo

int A[n]

int c=0;

for(i=0,i<n,i++) if (A[i]==w) c++;}

Assumiamo n=5 e w=3

i=1

A[1]!=3 c=1

slide25

Array

Es. cerca il numero di componenti di un array

A[n] avente valore w.

idea: confronta w con A[0], A[1],… finche’ non

hai esaminato tutto l’array,

incrementa contatore ad ogni confronto positivo

int A[n]

int c=0;

for(i=0,i<n,i++) if (A[i]==w) c++;}

Assumiamo n=5 e w=3

A[0]=w A[1]!=w A[2]=w A[3]!=w i=4=n-1

c=1 c=1 c=2 c=2 A[i]!=w c=2

i++ i++ i++ i++ i++, i=n, esci

slide26

STRUCT

Permette di “unire” elementi di tipi differenti.

Struct S

{T1 M1;

T2 M2;

Tn Mn}

Definisce una struttura con n campi

(M1, M2, …, Mn)

Di tipo T1,T2,…,Tn, rispettivamente.

Es. Vogliamo descrivere persone usando 3 campi:

(NOME, COGNOME, DATA-NASCITA)

slide27

STRUCT

Es. Vogliamo descrivere persone usando 3 campi:

(NOME, COGNOME, DATA-NASCITA)

1) typedef char alfa[10]

definisce il tipo alfa

come un array di 10 caratteri

2) Struct data

{int giorno;

int mese;

int anno}

3) Struct persona

{alfa cognome;

alfa nome;

data data-nascita}

Struct persona P

P= (Mario, Rossi,(10,3,1980))

slide28

STRUCT

La componente i-ma di nome Mi della struttura S,

S=(M1,…,Mi,…,Mn), si indica con S.Mi

Es. Struct persona P= (Mario, Rossi,(10,03,1980))

P.nome e’ l’array contenete Mario

P.nome[1] e’ il carattere a

P.data-nascita e’ la struttura di tipo data

(10,3,1980)

P.data-nascita.mese e’ l’intero 3

slide29

E’ possibile combinare array e strutture

Es. Array di struct di tipo persona

persona A[n]

array di n componenti A[0],…,A[i],…,A[n-1]

A[i] e’ una struct di tipo persona

slide30

E’ possibile combinare array e strutture

Es. Array di struct di tipo persona

persona A[n]

array di n componenti A[0],…,A[i],…,A[n-1]

A[i] e’ una sruct di tipo persona

Cerca il numero di persone nate a maggio

{int c;

c=0;

for(i=0,i<n,i++) if (A[i].data-nascita.mese==5) c++;}

slide31

PUNTATORI

Una variabile di tipo puntatore contiene un indirizzo di memoria

int x *p

Definisce p come un puntatore alla variabile di tipo intero x

P

x

slide32

PUNTATORI

Una variabile di tipo puntatore contiene un indirizzo di memoria

int x *p

definisce p come un puntatore alla variabile di tipo intero x

P=&x assegna a p l’indirizzo di memoria di x

y=*p assegna a y il contenuto della variabile puntata da p

Es. {p=&x; y=*p} risulta valore di x = valore di y