Anteprima
Vedrai una selezione di 3 pagine su 9
Nozioni fondamentali programmazione C Pag. 1 Nozioni fondamentali programmazione C Pag. 2
Anteprima di 3 pagg. su 9.
Scarica il documento per vederlo tutto.
Nozioni fondamentali programmazione C Pag. 6
1 su 9
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Teoria dei linguaggi formali

Significato o semantica di un programma

Le modalità con cui avviene l'esecuzione del programma nel calcolatore???

Secondo la teoria della calcolabilità non tutti i problemi si possono risolvere con l'informatica.

es.: Non esiste un programma che dato in input un codice em individui alcuni fatti circa tale programma (l'esecuzione o meno)

Paradigmi di programmazione

  • Modi diversi per risolvere lo stesso problema
  • Modalmente stesso problema formalmente possono risultare meglio/peggio/solvibili

Paradigma ricorsivo ➔ I problemi vengono risolti attraverso la definizione algebrica dell funzione ricorsive, ovvero definite in termini di sé stesse.

es funzione fattoriale : NN es f(n) = 1 + f(n)

Definizione (come si comporta) Uso (algoritmo di calcolo di f)

  • Ø! = 1 ➔ 1! = 1
  • n! = n : (n - 1)!
  • 3! = 3 : 2 : 1 = 6

n∈N ovvero N - { 0 }

  • Ø! = 1 ➔ 4!: 5 c.d., da 1 per n - n∈N+
  • n! = n : (n - 1)!/ 4: (3!)

Posto defin dif funzione uso l'estensione stesso.

Paradigma imperativo ➔ I programmi vengono risolti attraverso trasformazioni

di stato

Stato iniziale ➔ Programma ➔ Stato finale

Il programma prevede lo stato iniziale, elabora lo stato nuovo : problema i-e produce lo stato finale

Il linguaggio C è un linguaggio di alto livello con i costrutti

non esegue direttamente i programmi ma risultano in

il programma traduce le istruzioni in istruzioni in

in linguaggio macchina.

Per spiegare il significato del programma è necessario astrarre dai

qui sta la idea di costruzione del livello di astrazione. Lavoriamo

teniamo su una memoria astratta che al posto delle celle ha un

con valori tenuti in notazione alchemica.

Memoria Fisica →

Stato completo di associazioni

VALORE

x | 30 y | 20 z | 15

Con questo tipo di stato numerico si realizza la descrizione del programma quirical misero di uno stato composto da AMBIENTE e MEMORIA

AMBIENTE nome→locazione

MEMORIA locazione→valore

Come nasce lo stato? Nei linguaggi di programmazione esistono dei costrutti costrutte che danno funzione di creare lo stato

es.

int x,y; le 10

Ciascuna nuova associazione sul ambiente e sulla memoria.

Come si modifica lo stato? Attraverso espressione per comandi

ASSEGAMENTO

nome ← espressione

es (esempio): x = 10 + 5

Insieme l'espressione ed il valore risultante viene assegnato in memoria alla variabile

Come si delineano gli argomenti delle chiamate delle funzioni?

In C (linguaggio in cui i parametri impostati in fase di chiamata della funzione sono "parametri attuali" delle variabili che appaiono come "nella de/inizializzazione" del blocco) alla modalità di passaggio sono permessi due modalità di valore

Quando si richiama una funzione si generano sullo schema/visore e sullo schema in un nuovo ambiente e una memoria colma procedimenti; d'altra parte a tempo breve il valore degli argomenti.

Dopo si esegue il blocco di definizione di funziona

  • int fact (int n) { ... } main() { int x = 4, n = y = 6; x = fact(x); ... }

quando elemento modificato lo stato pizzzo resterebbe nulla.

es: void incr (int n) { n = n + 2; } main() { int x = 0; incr(x); }

Intuitivo elemento utilizzazione è un'espressione di fatturata in blocco la produzione è un comando che modifica lo stato.

Memorizzazione non di stato piano x è prossimo creazione variabile allo stato zero

int* p p ha valore = es & indica indirizzo di mossa => le memoria di p * p = valore del passato => 10 di quanto puntato da p

PUNTATORE

  • Il contenuto di un locazione di mossa non è interpretato solo come valore ma come caso non in detta locazione
  • Puntatori è una variabile TLCN valore e indirizzo/locazione
  • Il valore in memoria p/e indirizzato da una parola di membrana => deviera il valore int
es le = 10 p le le^ AMB MEM
Dettagli
Publisher
A.A. 2018-2019
9 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Simone_S di informazioni apprese con la frequenza delle lezioni di Programmazione 1 e Laboratorio e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pisa o del prof Barbuti Roberto.