Anteprima Estratta dall' Appunto di
Informatica
Università : Università degli studi di Brescia
Facoltà : Ingegneria
Indice di questo documento
L' Appunto
Le Domande d'esame
ABCtribe.com e' un sito di knowledge sharing per facilitare lo scambio di materiali ed informazioni per lo studio e la
formazione.Centinaia di migliaia di studenti usano ABCtribe quotidianamente per scambiare materiali, consigli e
opportunità Più gli utenti ne diffondono l'utilizzo maggiore e' il vantaggio che ne si può trarre :
1. Migliora i tuoi voti ed il tempo di studio gestendo tutti i materiali e le risorse condivise
2. Costruisci un network che ti aiuti nei tuoi studi e nella tua professione
3. Ottimizza con il tuo libretto elettronico il percorso di studi facendo in anticipo le scelte migliori per ogni esame
4. Possibilità di guadagno vendendo appunti, tesine, lezioni private, tesi, svolgendo lavori stagionali o part time.
www.ABCtribe.com
ABCtribe.com - [Pagina 1]
L' Appunto
A partire dalla pagina successiva potete trovare l' Anteprima Estratta dall' Appunto.
Se desideri l'appunto completo clicca questo link.
Il numero di pagina tra le parentesi tonde si riferisce a tutto il documento contenente l'appunto.
Sull'appunto stesso in alcuni casi potrete trovare una altra numerazione delle pagine che si riferisce al solo
appunto.
Grafico dei voti medi per questo
esame:
Grafico dei giorni medi per la
preparazione di questo esame:
Grafico Copyright © ABCtribe.com. Vietata la
riproduzione.
Grafico Copyright © ABCtribe.com. Vietata la
riproduzione.
Clicca qui per i grafici aggionati su Informatica >>
ABCtribe.com - [Pagina 2]
INTRODUZIONE
Il linguaggio C 1 è il linguaggio preferito dai programmatori e dai professionisti perché offre
importanti vantaggi:
è molto efficiente, cioè permette di scrivere programmi compatti e veloci;
•
dà completo controllo di quanto avviene nella macchina;
•
consente ampia libertà di organizzazione del lavoro.
•
Per contro, presenta alcuni inconvenienti:
è piuttosto impegnativo da apprendere;
•
richiede una discreta esperienza per essere sfruttato a fondo;
•
senza disciplina di programmazione, è difficile mantenere il controllo del programma.
•
Linguaggi di programmazione
m
o
.c
I linguaggi di programmazione si possono dividere in due categorie:
e
b
i
tr
1. LINGUAGGI AD ALTO LIVELLO: hanno costrutti molto vicini al nostro modo di
pensare e lontani da quello della macchina. Esempi di linguaggi ad alto livello sono:
BASIC (facile e versatile) , PASCAL (formale e didattico) , forTRAN (per applicazioni
scientifiche) , COBOL (per applicazioni gestionali). Tali linguaggi isolano il
programmatore dai dettagli tecnici.
C
B
A
2. LINGUAGGI A BASSO LIVELLO: comandano in maniera "diretta" l'hardware
(registri, memoria, periferiche,...) e quindi sono più lontani dal modo di ragionare umano.
Un esempio di tali linguaggi è l' assembler (ad ogni istruzione corrisponde un codice
macchina del microprocessore). I linguaggi a basso livello danno "controllo macchina"
ma richiedono tempo e attenzione ai dettagli dell'hardware.
Il linguaggio C offre i vantaggi di entrambe le categorie di entrambi le categorie di linguaggi;
consente infatti sia la programmazione ad alto livello (problemi logici) sia la programmazione
a basso livello nei punti in cui serve la massima interazione con l'hardware.
Programmazione strutturata
Per programma intendiamo una sequenza di istruzioni, le quali istruzioni possono essere di
tre tipi:
1. istruzioni di esecuzione ;
2. istruzioni di controllo di flusso ; ABCtribe.com - [Pagina 3]
3. istruzioni di input-output .
Compilazione: traduzione del programma sorgente in codice oggetto (assembly); avremo di
conseguenza un file NOME.ASM
Assemblaggio: traduzione in codice binario : NOME.OBJ
Linking: rende il file eseguibile NOME.EXE
Lo schema seguente riassume le fasi di realizzazione di un programma.
Nome.C Nome.ASM Nome.OBJ
Editor Compilatore Assemblat. Linker
Nome.EXE
Recentemente hanno preso piede i cosiddetti ambienti integrati , cioè insiemi di programmi
(editor, compiler, linker,debug) che colloquiano fra loro; esempi di tali ambienti integrati
sono:
TURBO C (Borland)
m
o
.c
•
QUICK C (Microsoft)
•
e
b
i
tr
C
B
Nella programmazione strutturataA
bisogna considerare:
Entrambi accettano lo standard ANSI.
1. STRUTTURA DEL PROGRAMMA (più vicina possibile al problema da risolvere)
2. STRUTTURA DEI DATI
Solitamente si usa la cosiddetta tecnica TOP-doWN , cioè si risolve teoricamente il problema
principale (top) per poi passare ad una serie di sottoproblemi (down). Il problema viene cioè
scomposto in sottofunzioni; definire ciascuna di queste funzioni bisogna:
definire il tipo di dato che deve "tornare" la funzione;
•
dare un "nome" alla funzione;
•
definire i parametri che deve ricevere la funzione.
•
IL LINGUAGGIO C
Consideriamo subito un semplice programma in C
# include <stdio.h>
main()
ABCtribe.com - [Pagina 4]
{
.
La funzione printf serve, fra l'altro, a stampare una stringa su video; è una funzione
definita all'interno della libreria stdio.h (standard input/output) inclusa all'inizio del
programma.
Le funzioni di libreria possono essere modificate o sostituite con versioni ad hoc da parte
dell'utente.
Linker
Il compilatore crea, partendo da un file NOME.C , il file NOME.OBJ. Il Linker cerca il
codice di printf in NOME.OBJ , non trovandolo lo cercherà in una libreria (ad esempio
C.LIB ); poi unisce NOME.OBJ con l'oggetto di printf in C.LIB:
NOME.OBJ C.LIB
m
o
.c
e
b
i
tr
C
B
A
NOME.EXE
Per usare una funzione di libreria bisogna includere il corrispondente
header con la direttiva :
#include <stdio.h>
Errori
Ogni compilatore ha i suoi messaggi e i suoi warnings questi ultimi sono "errori" che non
impediscono al compiler di proseguire ma che potrebbero causare problemi o mal
funzionamenti.
Durante la fase di linking, l'errore più comune è l'inesistenza di funzioni; in genere non viene
indicato il punto dell'errore, ma sono errori più comprensibili di quelli di compilazione.
Un errore insidioso, non rilevato né dal compilatore né dal linker è la mancata inclusione del
header; lo standard ANSI sopperisce mediante prototipi di funzione.
ABCtribe.com - [Pagina 5]
Commenti
Sono molto importanti per la leggibilità del programma e possono essere inseriti in qualunque
punto del programma:
/* commento */
I commenti non vengono compilati , quindi non costano in spazio e velocità.
/* UN COMMENTO PUO' STARE
SU PIU' RIGHE DI PROGRAMMA */
Nel linguaggio C++ , se il commento si estende solo su una riga, si può usare:
// commento
FUNZIONE printf( )
m
o
.c
Abbiamo già visto l'uso della funzione printf nell'esempio precedente; la sua sintassi è la
seguente:
printf(arg)
Vediamo un altro esempio:
#include <stdio.h>
main ()
{
printf("auto");
printf("mobile");
}
e
b
i
tr
C
B
A
Il risultato è la stampa della stringa:
automobile
Per introdurre un line feed si usa il carattere speciale \n (newline):
#include <stdio.h>
main ()
{
printf ("auto"\n);
printf ("mobile");
}
Il risultato sarà :
auto
mobile
ABCtribe.com - [Pagina
6]
La linea:
main ()
non è chiusa dal punto e virgola poiché è una definizione di funzione.
In C non esiste un modo immediato per la stampa dei numeri (come write del Pascal): si
usa printf che è versatile e risolve gran parte dei problemi di stampa.
#include <stdio.h>
main ( )
{
printf ( "%d",1990);
}
%d è la specifica di stampa che definisce il formato con il quale si vuol stampare un output,
in questo caso si indica un numero intero. Il secondo argomento della funzione è il numero da
stampare.
m
o
.c
Una sola funzione printf può stampare numeri dentro stringhe:
e
b
i
tr
printf ("Aperto dalle ore %d alle ore %d \n",14,18);
C
B
A
La corrispondenza fra specifica di stampa e argomento è fissata in base alla posizione.
Printf accetta un numero qualsiasi di argomenti, questa è una eccezione per il linguaggio C
ove, solitamente il numero di argomenti per le funzioni è fissato.
Vediamo ora un elenco dei comandi di formato per la funzione printf:
%d numero intero %u intero senza segno %ld intero lungo
%f virgola mobile %e virgola mobile in f.to esp. %c carattere
%p valore di un puntatore %s stringa
%x formato esadec.
Si può impostare la larghezza del campo in uscita ponendo il valore di tale lunghezza fra il
carattere % e la lettera.
A seguito del comando di formato si pone la sequenza di escape:
\n inserisce un carattere di avanzamento riga
\f avanzamento modulo
\b ritorno indietro di uno spazio
\xhhh inserisce il carattere rappresentato dal codice ASCII hhh (da 1 a 3 cifre esadec.)
ABCtribe.com - [Pagina 7]
Tipi di dati
Il linguaggio C ammette i seguenti tipi di dati:
char: caratteri costituito da un byte.
•••
int: numeri interi, generalmente costituiti da 2 byte e, conseguentemente hanno il
•
seguente campo di variazione -32767 +32767 ( tale campo di variabilità è valido per il
caso dello standard ANSI, in realtà molti compilatori sfruttano pienamente il campo
offerto dalla notazione in complemento a due e avranno regione di variazione da -32768 a
+32767).
float: numeri in virgola mobile, costituiti da 4 byte offrono, in linea generale, 5 o 6 cifre
•
decimali (precisione singola).
double: numeri reali in precisione doppia, offrono fino a 12 o 13 cifre decimali.
•
long int: numeri interi a 4 byte, hanno campo di variazione -2147483647 +2147483647.
•
long double: numeri reali rappresentati tramite 10 byte.
•••
m
o
.c
OSSERVAZIONI
I tipi numerici possono essere dotati o non dotati di segno ( ad esempio il tipo int unsigned ha
campo di variabilità da 0 a 65536).
In C le variabili devono essere sempre dichiarate specificando il tipo di dato che possono
assumere come valore; ad esempio:
char A;
e
b
i
tr
C
B
A
Formato di stampa
Per stampare i numeri sono disponibili diverse opzioni:
1) Allineamento a destra:
int n=2345;
printf("=%5d=",n); /* =2345= */
2) Con zeri:
int n=37;
printf("=%05d=",n); /* =00037= */
3) Allineamento a sinistra:
int n=37;
printf("=%-5d=",n); /* =37 =*/
4) Indicazione del numero minimo di cifre da stampare:
ABCtribe.com - [Pagina 8]
int n=37;
printf("=%5.3d=",n); /* = 037"*/
Questo documento e' un frammento dell'intero appunto utile come anteprima. Se desideri l'appunto completo clicca questo link.
ABCtribe.com - [Pagina 9]
Preparati con le domande di ABCtribe su Informatica.
1. Reti LAN e
Risposta:
Le reti LAN (Local Area Network) sono
[Clicca qui >> per continuare a leggere].
2. Funzio
Risposta:
Una funzione hash prende
[Clicca qui >> per continuare a leggere].
* Carica Appunti,Domande,Suggerimenti su : Informatica e guadagna punti >>
* Lezioni Private per Informatica >>
Avvertenze:
La maggior parte del materiale di ABCtribe.com è offerto/prodotto direttamente dagli studenti (appunti, riassunti, dispense, esercitazioni, domande ecc.) ed è quindi da intendersi ad integrazione dei tradizionali metodi di studio e non vuole sostituire o prevaricare
le indicazioni istituzionali fornite dai docenti. Il presente file può essere utilizzato in base alle tue necessità ma non deve essere modificato in alcuna sua parte, conservando in particolare tutti i riferimenti all’autore ed a ABCtribe.com; non potrà essere in alcun
modo pubblicato tramite alcun mezzo, senza diverso accordo scritto con l’autore ed i responsabili del progetto ABCtribe.com. Per eventuali informazioni, dubbi o controversie contattate la redazione all’indirizzo [email protected]
ABCtribe.com - [Pagina 10]
Scarica

Anteprima Estratta dall` Appunto di Informatica