Estratto del documento

LINGUAGGIO C

Abbiamo un problema nel mondo reale e per risolverlo scriviamo un algoritmo che diamo in pasto

ad un calcolatore.

Questo algoritmo lo salviamo in un file, con estensione .c

Diamo il file ad un compilatore, che sarebbe un programma già esistente, già scritto.

Il compilatore produce un file scritto in linguaggio macchina, solo 0 e 1, che il calcolatore comprende

e può eseguire.

I due passaggi di compilatore e esecuzione sono automatici, noi non li vediamo. Perchè avvengano

dobbiamo dare dei comandi da terminale:

Per compilare: gcc nome.c - o nome

ovvero dico al compilatore prendi nome.c traducilo in linguaggio macchina e metti il risultato in

nome

Per eseguire: ./nome

Esistono molti linguaggi di programmazione.

Linguaggi di basso livello = vicini al linguaggio macchina

Linguaggi di alto livello = vicini al linguaggio umano

Il linguaggio C è ad alto livello, non usa 0 e 1 ma parole, anche se devono rispettare una sintassi.

Col tempo sono nate diverse versioni del C.

Il linguaggio C è:

- imperativo, perchè formato da comandi che dicono al compilatore cosa deve fare.

- dichiarativo perchè ogni volta che usiamo variabili dobbiamo prima averle dichiarate.

- strutturato: ben strutturato, ovvero diviso in varie parti

- case sensitive, scrivere una parola con minuscola o maiuscola è una cosa diversa

Macchina astratta C, uguale al calcolatore che avevamo immaginato.

Avrà una CPU (che svolge operazioni), una memoria (formata da varie celle in cui vengono allocate

le variabili), ci sono standard input e standard output.

Tutti questi elementi sono collegati con un bus.

int main ()

{

return 0;

}

Subito dopo int main devo dichiarare le variabili, nella forma:

nome_tipo nome_variabile;

nome_tipo definisce la classe dei valori ammissibili e le operazioni ammissibili.

Quando dichiaro una variabile, nella memoria si crea uno spazio di dimensione che dipende dal tipo

di dato.

Esistono alcuni tipi di dati predefiniti:

char usato per i caratteri, rappresentati con 8 bit come fossero dei numeri, per farlo si usa

la tabella ASCII che associa un numero

\ .

\

Es:

char c1;

oppure

char c1, c2, c3;

Esempio di assegnamento:

int usato per gli interi con segno, insieme Z

Questi saranno rappresentati con notazione 2C2 (complemento a 2), usando 32 bit

Es: int num1, num2;

float usato per rappresentare numeri reali, si usa la virgola mobile con standard IEEE 754

con precisione singola. Usa quindi 32 bit.

double usato sempre per i reali, ma usa IEEE 754 doppia precisione e quindi 64 bit

e ha la seguente sintassi:

scanf(stringa_di_controllo, lista_delle_variabili_da_leggere);

La stringa di controllo contiene dei caratteri che sono relativi al formato delle variabili, sono caratteri

predefiniti. Essi sono contenuti tra doppi apici.

Il carattere è:

Esempio: voglio leggere un intero e un float

.

Mentre la lista delle variabili indica dove devono essere messi i valori che vengono letti. Tali valori

devono essere preceduti da &.

La & ha un significato

per caso). Ogni cella di memoria è caratterizzata da un indirizzo, per risalire a questo indirizzo si usa

Le operazione di lettura e scrittura sono implementate in dei programmi, che si

di una libreria chiamata stdio.h

riferimento alla libreria sopra indicata.

Lo faccio scrivendo:

#include <stdio.h>

Questa cosa si scrive prima del main, ovvero

Sempre nella parte dichiarativa globale posso dichiarare una costante, usando la sintassi:

#define NOME_COSTANTE valore_costante

In tutto il programma PI avrà quel valore.

Ogni volta che ho un valore costante nel programma, è opportuno creare una costante.

:

printf(stringa di controllo, lista variabili);

La stringa di controllo è sempre la stessa, ovvero %d, %f, %c

Per andare a capo \n

Per dare un tab \t appaiano nella stampa.

\

In conclusione dovremo avere:

Una parte dichiarativa globale, con le direttive, ad esempio con le librerie, ci dovrà sempre

essere #include <stdio.h> (senza ;)

Altre librerie se servono e costanti se ci sono.

Parola chiave int (main){ return 0; }

Parte dichiarativa locale: dove dichiariamo le variabili che dobbiamo usare nel programma

Parte esecutiva: contiene tutte le istruzioni che fanno parte del nostro programma

Problema leggere l'

il calcolarne

di

del stamparla

valore cerchio

raggio area e

: un .

,

inizio

È

-

É

stamparne i

double

predefiniti int float

chan

tipi esiste

Tra ordine

i <

<

<

un : tipo nell' altrimenti

più

Quando assegnamento ordine

faccio destra

non assegnare a

posso un

un ,

,

perdo informazioni

delle . |

81 15.7

82

float fn ;

, & "

' °

int i

Munn MUU 2

, muli 7

una ,

1 7

nulle ;

=

2 8 ;

nun =

15.7

In ;

= (

numi ( problema

82 c'

) ) è

ad float DX

sx

iutero + a

; + un

un non

a

assegno :

= )

( ) ( decimale

perdo

DX

float

fn ad sx

intero parte

a la

+ a :

+

assegno

;

Menez un

un

= informazione

assegnamento tra tipi verificare

diversi si può

nel perché di

perdita

fare attento

stare

devo una

, |

(

81 15/7 O

7.

2

1 intero

risultato

interi

tra

num

nulla + ;

mene somma

= →

→ " + °

/ 2 7

nunez divisione 1512

resto

quoziente

intera

num e

; =

=

, &ra

Anteprima
Vedrai una selezione di 4 pagine su 15
Introduzione C, costrutti, selezione ed iterazione con esempi Pag. 1 Introduzione C, costrutti, selezione ed iterazione con esempi Pag. 2
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Introduzione C, costrutti, selezione ed iterazione con esempi Pag. 6
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Introduzione C, costrutti, selezione ed iterazione con esempi Pag. 11
1 su 15
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher kevinziroldi di informazioni apprese con la frequenza delle lezioni di Fondamenti di Informatica 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 Mirandola Raffaela.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community