Anteprima
Vedrai una selezione di 7 pagine su 29
Informatica Pag. 1 Informatica Pag. 2
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Informatica Pag. 6
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Informatica Pag. 11
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Informatica Pag. 16
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Informatica Pag. 21
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Informatica Pag. 26
1 su 29
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

LINGUAGGIO

Il linguaggio macchina è il linguaggio utilizzato dal calcolatore ed è differente in base al

o calcolatore. Un programma scritto in linguaggio macchina è formato da una sequenza di

istruzioni appartenenti al set di istruzioni del processore.

Un programma consiste in due parti:

o 1. istruzioni: contengono il codice del programma

2. dati: sono costituiti da celle di memoria destinate a contenere i dati sui quali il

programma opera

! Un programma è un’entità statica che descrive un algoritmo.

Un processo è un programma in esecuzione caratterizzato dal codice in esecuzione e da uno

stato.

Un tipo di linguaggio più facile da utilizzare è il linguaggio Assembly, in cui al posto di

o sequenze di numeri si usano abbreviazioni per rappresentare le operazioni elementari.

Per passare da “linguaggio macchina” a “linguaggio assembly” serve l’assembler (programma)

I linguaggi più usati sono quelli di alto livello, cioè sono i più vicini al linguaggio del

o programmatore. Per passare dal “linguaggio ad alto livello” al “linguaggio macchina” uso il

compilatore.

FASI DELLA PROGRAMMAZIONE

1. Editazione: consiste nella scrittura del codice in un file. Si esegue tramite un programma

chiamato editor di sviluppo e viene generato un programma sorgente.

2. Compilazione: il codice sorgente va nel compilatore che si occupa di tradurre il programma nel

codice in linguaggio macchina. Si genera così il programma oggetto.

3. Linking: i programmi scritti in linguaggio ad alto livello contengono riferimenti a funzioni

definite altrove. Si genera il programma eseguibile.

4. Caricamento: la fase di caricamento è eseguita dal loader, cioè un altro programma che fa

parte del sistema operativo.

5. Esecuzione: il computer esegue il programma

LINGUAGGIO C

Linguaggio ad alto livello molto diffuso e adatto ad un ampio spettro di applicazioni.

PROPRIETA’

1. È un linguaggio dichiarativo, cioè l’intenzione di voler usare una variabile o una funzione deve

essere dichiarata a priori.

2. È un linguaggio strutturato, cioè fornisce i costrutti base per la definizione di sequenza,

selezione e iterazione.

3. È un linguaggio case sensitive, cioè discrimina tra caratteri maiuscoli e minuscoli.

STRUTTURA

- Un programma scritto in C è un file di testo strutturato in modo opportuno.

- Il programma scritto correttamente può essere tradotto in linguaggio macchina tramite il

compilatore C.

ELEMENTI DEL LINGUAGGIO

1° PROGRAMMA IN C E’ un commento/nota e quindi viene ignorato dal compilatore.

- Dice al calcolatore che nel nostro programma verranno usate

funzioni esterne.

Stdio.h

- ci dice che le funzioni sono in quella specifica

libreria

Ogni programma deve contenere una funzione principale chiamata main, che

ha le istruzioni che verranno eseguite non appena il programma sarà caricato

in memoria.

- La sequenza di istruzioni della main, cioè il blocco, deve essere racchiusa nelle parentesi

graffe.

- Ogni istruzione deve essere seguita da un punto e virgola;.

printf

- stampa a video il messaggio.

- \n può essere usato per mandare il cursore a capo

return serve a terminare la funzione main e viene rimandato un valore che

descrive l’esito dell’esecuzione. Se il programma è stato eseguito con successo

di solito si usa il valore 0.

FUNZIONI DI INGRESSO E USCITA

In C, ingresso e uscita avvengono tramite chiamate (attivazioni) di funzioni (sottoprogrammi)

disponibili nella Standard Library, cioè una collezione di funzioni utilizzabili dai programmi.

%d mi sta ad indicare che in quel posto andrò a stampare un numero intero.

VARIABILI Perché un programma sia in grado di risolvere dei problemi, devo

introdurre il concetto di variabile.

Le variabili vanno dichiarate e bisogna specificarne tipo e nome; si

può inoltre assegnargli un valore.

Int indica che la variabile conterrà un numero intero.

LETTURA DATI DAL TERMINALE La lettura delle informazioni avviene tramite la

scanf

funzione fornita dalla libreria stdio.h;

&variabile

deve essere sempre seguita da .

Il parametro tra “ ” è la stringa di controllo.

È preferibile scegliere stringhe semplici e leggere

solo una variabile alla volta.

COMANDI UTILI

In generale posso modellizzare la struttura di C in questo modo:

1. Parte dichiarativa globale: librerie da usare, funzioni e variabili globali

2. Parte dichiarativa locale: dichiarazione di variabili locali

3. Parte esecutiva: sequenza di istruzioni del programma (INPUT, ELABORAZIONE, OUTPUT)

TIPI DI DATI SEMPLICI

È uno spazio di memoria centrale e quindi la variabile deve essere dichiarata perché deve essere

chiaro quanto spazio serve al programma.

Tutti gli accessi alla variabile indicano un accesso alla memoria quindi è fondamentale indicare quale

spazio di memoria è associato alla variabile.

Indirizzo di A valore di A

à

TIPI DI DATI

o In C ci sono diversi tipi di dati BUILT-IN:

Int

a) : numeri interi

Ci 3 varianti:

- Short int: per numeri di piccole dimensioni. Usa 2 byte di memoria

- Long int: per numeri di grandi dimensioni. Usa 4 byte di memoria

- Unsigned: solo per numeri positivi

La quantità di memoria usata dipende dalla macchina e dal compilatore ma deve essere

rispettata la seguente relazione: mem (short Int) <= mem (Int) <= mem (long Int)

mem (float) <= mem (double) <= mem (long double)

! per incremento e decremento: a++ a=a+1

à

a-- a=a-1

à

e = 10^

(guardare esempi su slide 6: pag.5…)

Float

b) : numeri con la virgola mobile (singola precisione). Usa 4 byte

Double : numeri con la virgola mobile (doppia precisione). Usa 8 byte

Si differenziano per la loro precisione, infatti il double permette di rappresentare numeri

reali in un intervallo più grande e con maggiore precisione.

(guardare esempi su slide 6: pag.9…)

Char

c) : caratteri (0 a 255). Usa un byte

’\n’ = a capo

’\t’ = tab

’\r’ = carriage return

’\b’ = backspace

Segue la codifica della tabella ASCII.

! per incremento e decremento: a = ‘c’ +1; /* a= ’d’ */

a = ‘c’ -1; /* a=’b’*/

In C si possono anche definire nuovi tipi di dato.

COSTANTI

o const

Possono essere definite in due modi: <tipo> <nome> = val

#define <nome> <valore>

In fase di compilazione, ogni riferimento ad una costante viene sostituito con il valore

corrispondente. Alla fine della sostituzione la costante è come se non fosse stata dichiarata; per

questo motivo il compilatore non riserva alcuna zona di memoria per la costante.

CONVERSIONI

o In C occorre sempre dichiarare il tipo di ogni variabile perché consente una verifica maggiore

durante la compilazione.

Nel caso delle espressioni aritmetiche il tipo inferiore viene convertito temporaneamente al

tipo superiore, secondo la regola: int < float < double

TIPI ENUMERATIVI

o enum

Il comando consente di elencare una sequenza di valori simbolici che la variabile può

assumere. Una volta elencati vengono codificati come interi a partire da 0.

RIDEFINIZIONE DI TIPO

o typedef

Il comando consente di ridefinire un tipo semplice con un nuovo nome.

STRUTTURE DI CONTROLLO

ISTRUZIONE CONDIZIONALE

o If

• Il comando consente di effettuare delle scelte nel

flusso di esecuzione e non è mai seguito da ;.

! Lo statement viene eseguito solo se la condizione

è vera.

• Se devo scegliere tra due alternative nel flusso di

if…else

esecuzione, uso i comandi

! Il primo statement viene eseguito solo se la

condizione è vera, mentre il secondo statement

solo se la condizione è falsa.

VERO E FALSO

o In C una condizione assume un valore intero pari a

• 0 se la condizione è falsa

• 1, oppure qualunque valore diverso da 0, se la condizione è vera

switch

Se devo scegliere tra molte alternative uso il comando e per terminare la sequenza di

o break.

istruzioni da eseguire uso

CICLO FOR

o Consente di eseguire un numero di iterazioni definito

run-time.

CICLO WHILE

o CICLO DO WHILE

o ARRAY E MATRICI

ARRAY

o - Danno la possibilità di rappresentare in

maniera compatta una collezione di variabili

che devono essere dello stesso tipo (int,

float…).

- L’accesso ad un elemento avviene attraverso il

nome dell’array seguito dalla posizione fra []

(subscript). ES. 12 mesi dell’anno = [12]

- La posizione deve essere di tipo intero e parte

da 0 fino alla dimensione dell’array -1.

- Ogni elemento dell’array è del tutto analogo

ad una variabile di tipo semplice.

- È molto comodo quando si ha un ciclo for.

- Inizializzazione: è possibile inizializzare un array in fase di dichiarazione, specificandone

tutti gli elementi fra parentesi graffe e separati da virgole:

{valore

tipo nome [N] = 1,…,valore N};

- Lettura e scrittura: avvengono un elemento per volta ad accezione delle stringhe. È quindi

utile ricorrere al ciclo for.

- Range: è compito del programmatore stare attento a non scrivere una variabile che non

è allocata nell’array.

- Char: gli array di tipo char sono detti anche

stringhe.

- Typedef mi serve per definire una nuova

variabile.

STRINGHE

o Le costanti di tipo stringa si rappresentano come una sequenza di caratteri racchiusi tra “ ”.

- Inizializzazione: può avvenire in fase di dichiarazione. %s

- Lettura e scrittura: si leggono sempre tramite la scanf con e il nome non deve essere

gets

preceduto da &. Per leggere stringhe con spazi utilizzo la funzione .

\0

- Fine: in C la fine di una stringa viene indicata dal carattere ‘ ’, quando printf trova questa

scrittura smette di stampare a video gli elementi della stringa.

- Funzioni: nella libreria esistono diverse funzioni per la manipolazione delle stringhe esono

string.h

definite in .

MATRICI

o Le matrici sono strutture dati bidimensionali che vengono rappresentati come array di array.

- Lettura: avviene un elemento per

volta e richiede due cicli for

innestati.

- Scrittura: si scrive un elemento alla

volta e si usano due cicli for

innestati.

- Somma, moltiplicazione, trasposta STRUCT

Permette di rappresentare in modo compatto ed incapsulato tipi di dati con una struttura

complessa. Il vantaggio è che rispetto agli array, gli elementi non sono numerati ma hanno un

nome e possono es

Dettagli
Publisher
A.A. 2018-2019
29 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher fra060 di informazioni apprese con la frequenza delle lezioni di Informatica ed elementi di informatica medica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Roveri Manuel.