Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
FONDAMENTI DI INFORMATICA
2/03
PROBLEMA DELLA RAPPRESENTAZIONE
- TRADUZIONE di un programma C in una sequenza numerica eseguibile da un processore
- DEFINIZIONE del linguaggio attraverso regole generali
TIPI, VARIABILI, COSTANTI
- In un linguaggio di programmazione i dati sono rappresentati secondo dei TIPI
- Ogni valore ha un tipo
- Un tipo é definito da 2 aspetti
- 15 insiemi dei valori che rappresenta
- Insieme delle operazioni eseguibili su esso
- char: caratteri (256 caratteri del codice ASCII)
- int: interi (N) con 1 dimenzione secondo di byte variabile a seconda dei architettura del calcolatore
- float: razionali in formato floating point (virgola mobile)
- double: razionali in formato floating point con precision disi doppia rispetto a float (doppio real)
- void: tipo nullo - usato quando la sintassi esige di specificare dei dati ma in realtà non se hà bisogno di farlo
- rappresentata in modo ? a seconda del tipo -> int n = 2/8 -> I dati: 125 I dati -> double: 125 ?
- caratterizzata da: valore restituito effetti prodotti sulle variabili
- es. a / 2 rest se ≠ 0 se il valore è pers, uguale R dispari.
Tipi nel linguaggio C
es interi con segno su 4 byte (32 bit)
[-232]...[-232-1]
CIFRA BINARIA (0/1)
es (int calcola Max (int A riferimento alla prima variabile dell’array A[9] -> riferimento all’ultima variabile dell’area
SI CONTA DALLO 0
A A[ ] ARRAY ACDS 4 byte
- A è anche indirizzo di partenza dell’array - A[0] si trova a partire dall’ ind. A + 0 - A[1] si trova a partire dall’ ind. A + 1 = 4 - A[2] dall’ ind. A + 2 = 4
COSTANTE
è un valore di un qualche tipo che non cambia durante la computazione
#define TRUE 1 direttiva che definisce una costante pari ad 1 #define FALSE 0
2. ESPRESSIONI E OPERATORI
ESPRESSIONE
combinazione di variabili e costanti attraverso operatori
side effect assegna tale valore alla variabile a.
è una ASSEGNAZIONE (operazione + ;)
OPERATORI
sono classificati per tipo di operazione
1. operatori ARITMETICI
2. operatori RELAZIONALI
int a, b;
es. ==
è un’espressione che restituire il valore di a NON uguale a b. restituire un valore di 1 (v. Trasform.
(5 > 4) restituisce 2
Scrivere un programma C che calcola il fattoriale di un intero
(Su un file che ha estensione .c)
`tipo del valore restituito dalla funzione`
int main () { ......}
Per com coinvol programma deve avere una funzione main
e la funzione che prende il controllo quando il programma va in esecuzione.
Prima o prendere il controllo e l'ultima a restituirlo
return 0;
istruzione che restituire alla funzione chiamante quella che invoca mai il controllo e un valore (in questo caso 0)
void myFunction () {}if (...)return;
restituire il controllo alla funzione chiamante se la condizione dell'if è maggiori
int main () {myFunction ();...}
invoca la funzione myFunction ()
una funzione termina o per esecuzione terminata o per istruz e da return
int myFunction 2() {return 100}
c deve essere! espressione che restituisce un valore di tipo int
int calcolaMax {int max;return max;}
int main () {int m;m=calcolaMax ();}
assegna alla variabile m il valore restituito della funzione calcola max (è un espressione)
int main () { int N,int count;int fact;N=10;Fact=1;For (count=2; count) CODICE ASSEMBLY --assemblaggio--> CODICE MACCHINA
++ COLLEGAMENTO (Linker)
→ può convenire compilare separatamente diverse sezioni di codice (perché realizzate da più parti o perché devono essere modificate separatamente o usate in più progetti)
- queste sezioni di codice sono collegate fra loro da istruzioni di trasferimento del controllo (jump) di indirizzi di destinazione restano indilerminato fino a quando le sezioni di codice sono collegate dal linker per ottenere un file PE non programmabile eseguibile
- Ogni processore ha un suo linguaggio macchina quindi anche un suo linguaggio assembly programmato compilato per un processore non può essere seguito da un altro processore (eccezione: compatibilità all’indietro)
Il linguaggio assembly può essere compilato da linguaggi → linguaggio assembly
12/05