This is not the document you are looking for? Use the search form below to find more!

Report home > Technology

manuale base per programmare in linguaggio C

0.00 (0 votes)
Document Description
manuale di programmazione in linguaggio C,steso durante il primo corso al primo anno d'università a Rovereto,steso da Jyothi Zontini (www.jzgrafica.it) e giovanni sosi.
File Details
Submitter
Embed Code:

Add New Comment




Related Documents

Camu Lots of dry fruits & Amazing benefits included in Vit c :-

by: costmirror7, 2 pages

Camu Lots of dry fruits & Amazing benefits included in Vit c :-

Fabrizio Palenzona (Gemina): fiducioso su contratto programma per Adr in tempi brevi

by: phinet, 1 pages

Dichiarazioni ottimiste di Fabrizio Palenzona sull’accordo di programma per Adr MILANO (MF-DJ)–Fabrizio Palenzona, presidente di Gemina, si e’ detto fiducioso che con Enac e ...

Curcumin Attenuates Glial Cell Activation But Cannot Suppress Hippocampal CA3 Neuronal Cell Death in i.c.v. Kanic Acid Injection Model

by: shinta, 4 pages

Kainic acid (KA) is a structural analogue of glutamate that interacts with specific presynaptic and postsynaptic receptors to potentiate the release and excitatory actions of glutamate. ...

_Sprint Myself _ Per Year In The Lifetime Of A New Cajun Boy Doing Work In Nigeria, Western Side Cameras !

by: kay722brock, 5 pages

resort within paris , france , in front table i found the taxi car owner which spoke just a little english ,

Wilds Backpacking Trails In N C

by: jeremy594mcmurray, 2 pages

do " walks in north america , we knew that we stood a long distance to go to enter into shape to be

Social Media Consultant: How to Earn $100-$300 Per Hour in This ...

by: peakshock5, 2 pages

Social media is pretty new, so it's to your advantage to jump at the chance to achieve prominence in...

MIMA Condominium- 400 Gulf 42Nd Street-New Condominiums For Sale In Nyc C

by: sionet42301, 2 pages

, private get together rooms , providing kitchen area , technological middle , sport room together with

Lemon: A Juicy Fruit Rich in Vitamin C for Healthy Life

by: cutbeast59, 2 pages

Tuna, like other fish types typically consist of average to high stages of mercury which can perhaps...

Summer Training in C++

by: duccsystems, 7 pages

DUCC Systems invites all to C++ training in June and july.

Abra tours car hire, Rajasthjan bus hire, call us +91 98293 26225 www.abratravels.in BOOKING ONLINE

by: Abra Tours, 2 pages

Welcome to Abra Tours and Travels We guarantee you pleasant and a memorable journey. We provide you are variety of cars for hire at attractive price per km. We have a long list of cars available ...

Content Preview
Dispensa Laboratorio di Programmazione

CORSO DI LABORATORIO DI PROGRAMMAZIONE


ANNO 2005 - 2006






CORSO DEL LINGUAGGIO C

Sviluppato con SO SUN OS 5.8 – compilatore unix sun – gcc version 3.2.2

Con note di utilizzo programmi con DEV++















Docente prof. Valter Cavecchia














Appunti dalle lezioni a cura di

Jyothi Zontini – Giovanni Sosi



1

Dispensa Laboratorio di Programmazione


2

Dispensa Laboratorio di Programmazione


IL PRIMO PROGRAMMA IN C ................................................................................................................................... 5

COMPILAZIONE DEL PROGRAMMA .................................................................................................................................. 5
Esempio: stampare i numeri pari < 30 ..................................................................................................................... 6
Esempio: stampare le potenze del 2 con n < 30 ........................................................................................................ 6
Esempio: stampare un triangolo di * (asterischi) del tipo: ....................................................................................... 6
Esempio: stampare lo stesso triangolo di * però rovescio: ...................................................................................... 7
Esempio: dato un numero vedere la sua rappresentazione binaria: ......................................................................... 8
VARIABILI A BASSO LIVELLO – VARIABILI INTERE ........................................................................................ 9
Esempio: visualizzare l’aspetto binario di un numero: (binari1.c) .......................................................................... 9
OPERATORI BIT A BIT .............................................................................................................................................. 10
NUMERI PSEUDO CASUALI / RANDOM ............................................................................................................... 12
Teorema del limite centrale: ................................................................................................................................... 12
Distribuzione di Poisson ......................................................................................................................................... 13
Media – Varianza – Scarto quadratico medio ........................................................................................................ 14
Esempio con range da 0 a 5: (random3.c) .............................................................................................................. 15
NUMERI REALI AL CALCOLATORE ..................................................................................................................... 17
Esercizio: (float1.c) ................................................................................................................................................. 18
Esercizio: (radice2.c) .............................................................................................................................................. 18
Per vedere gli errori (o avvisi di warning) do il comando di compilazione: .......................................................... 19
Tipi di formato: ....................................................................................................................................................... 19
Prefissi tipi di formato: ........................................................................................................................................... 19
Calcolo valore di PiGreco col metodo di Montecarlo ............................................................................................ 20
Come è il costrutto if ? ............................................................................................................................................ 22
Esercizio: creare una tabellina numerica (tabella.c) .............................................................................................. 22
Esercizio: fare una matrice di int a[10][10] con i valori che vanno da 0 a 9 (array2.c) ....................................... 22
FUNZIONI E ARRAY ................................................................................................................................................... 23
Esempio: somma di due numeri .............................................................................................................................. 24
Esempi su puntatori e array .................................................................................................................................... 25
Esempio: (array2.c) creare un array e riempirlo di zeri ........................................................................................ 25
Consiglio di come usare i nomi da assegnare: ....................................................................................................... 25
Esercizio : fare un programma che inverte il contenuto di un array (arrayinverti.c) ............................................. 27
Esempio: fare la media dei valori di un vettore: ..................................................................................................... 28
Esercizio: generare un mazzo di carte .................................................................................................................... 28
Esercizio: fare un istogramma visivo del lancio di un dado (istogramma.c) .......................................................... 30
ESEMPI VARI DI PROGRAMMAZIONE ................................................................................................................. 31
Variabili statiche ..................................................................................................................................................... 32
compilazione e link di più oggetti ........................................................................................................................... 32
Costruiamo un contatore ......................................................................................................................................... 34
Variabili pubbliche e private ................................................................................................................................... 35
PUNTATORI .................................................................................................................................................................. 37
casting ..................................................................................................................................................................... 38
Esempio (puntatatori2.c) ......................................................................................................................................... 38
Mi da errore , allora eseguo il programma scritto così (puntatori4.c) ................................................................... 39
Esempio (puntatori5.c) ............................................................................................................................................ 39
Esempio: (puntatore7.c) provo lo stesso esempio assegnando a[]= 0x44ef1aF0,2} .............................................. 41
Vediamo ora l’esempio asegnando a[]={0x41424344,2};(puntatori8.c) ............................................................... 42
MANIPOLAZIONE DI STRINGHE ............................................................................................................................ 43
Esempi di stringhe e relativa gestione .................................................................................................................... 43
ESEMPIO DI APPLICAZIONE: UNA CALCOLATRICE ....................................................................................... 46
STACK ............................................................................................................................................................................ 47

3

Dispensa Laboratorio di Programmazione
LIFO ........................................................................................................................................................................ 47
Coda ........................................................................................................................................................................ 47
FIFO ....................................................................................................................................................................... 47
RPN = notazione inversa polacca ........................................................................................................................... 47
NOTAZIONE POLACCA INVERSA .......................................................................................................................... 48
COME FARE UNA CALCOLATRICE ....................................................................................................................... 53
Regole per l’input, controllo degli errori ................................................................................................................ 53
Funzione init() ......................................................................................................................................................... 53
Funzione sPush() ..................................................................................................................................................... 54
Funzione sPop() ...................................................................................................................................................... 54
Funzione sCheckerror ............................................................................................................................................. 55
Funzione sCalc() ..................................................................................................................................................... 55
Funzione sPrint() .................................................................................................................................................... 56
Stackmain.c – è la funzione main della mia applicazione ....................................................................................... 57
Stack.c ..................................................................................................................................................................... 58
Esempio: stack.h ..................................................................................................................................................... 60
Funzione stackmain ................................................................................................................................................. 60
RIEPILOGO - CORSO LABORATORIO DI PROGRAMMAZIONE .................................................................... 62
USO DI UNIX – NOTE PRELIMINARI ..................................................................................................................... 62
I PROGRAMMI IN C ........................................................................................................................................................ 63
TABELLA CODICE ASCII ........................................................................................................................................ 64
USO PROGRAMMI IN C SU DEV++ (WINDOWS) ..................................................................................................... 65

4

Dispensa Laboratorio di Programmazione
Il primo programma in C

Il primo programma classico in C è quello che stampa “hello world!”
Lo chiameremo hello.c. Dovremo inserirci la libreria <stdio.h> tramite il preprocessore #include.
Devo scrivere almeno una funzione , la “main”; questa deve sempre essere presente in un
programma in c (seguita poi eventualmente da molte altre).
Voglio scrivere “hello world!” sullo schermo; questo è complicato e devo delegare qualcuno a farlo,
ovvero il SO con la funzione “printf”.


#include <stdio.h> // questa libreria va SEMPRE inclusa, in ogni programma!

int main(void) {
(void)printf("hello world!\n"); /* il comando \n serve per andare a capo (n
di newline ) */
return
0;

}

/* Si raccomanda sempre l’indentazione (rientro), in quanto con un programma ben indentato
risulterà molto piu facile scovare gli errori.*/

Per vedere il contenuto del file basta digitare >cat hello.c
Si usa >cat “hell .c” se uno mette spazi nel nome // rispetto al precedente ci sono le “”. La
mancanza della “o” è voluta.
>mv mi permette di cambiare il nome del file


Compilazione del programma

Utilizzo il comando gcc –o hello hello.c

Dove gcc –o è il comando al compilatore , seguito dal nome del file in uscita compilato (hello) e poi
dal nome utilizzato come codice sorgente (hello.c). In unix i file eseguibili non hanno estensione .
Infatti con il comando gcc hello si ottiene in output un file eseguibile di nome a.out ; nel momento
in cui ci si trovasse a compilare cosi due programmi diversi , avremmo due file di output con il
medesimo nome, che quindi andrebbero a sovrapporsi. Utilizzando invece il comando –o, è
possibile rinominare i file di output in fase di compilazione,in modo tale da evitare spiacevoli
inconvenienti.
Stringhe di commento:
Ci sono due tipi di stringhe:
se commento su un’unica riga, digito

//commento su una riga

Se invece desidero commentare su piu righe, la stringa è la seguente:

/* qui inserisco il commento
su piu righe */


5

Dispensa Laboratorio di Programmazione

Esempio: stampare i numeri pari < 30
Per poter stampare i numeri pari < 30 utilizzo la formula che i numeri pari sono divisibili per 2
senza resto.
Il programma sarà dunque:


#include <stdio.h>
#include <stdlib.h> // per chi usa windows questa libreria va sempre inclusa
int main(void) {

unsigned int i; // intero che mi designa il contatore
for (i=0;i<30;i++) // per i che va da 0 a 30, incrementa i di uno ogni volta
{
if (i%2==0) // se i è uguale a 0
printf("%2u\n",i);} // allora stampalo con formattazione unsigned
return 0; // il main non ha argomenti, quindi non ritorna nulla
}



Esempio: stampare le potenze del 2 con n < 30


#include <stdio.h>

int main(void) {

unsigned short int i;
p=1; // potenza del numero
for (i=0;i<30;i++){ // per i che va da 0 a 30, ogni volta stampa p

printf("%d\n",p);
p*=2;

}
return 0;
}



Esempio: stampare un triangolo di * (asterischi) del tipo:

*
**
***
****
*****
******
ecc ecc ecc




6

Dispensa Laboratorio di Programmazione

#include <stdio.h>

int main(void) {

unsigned int i,j;
for (i=0;i<30;i++){ // per i che va da 0 a 30
for (j=0;j<=i;j++){ // per j che va da 0 ad i
printf("*"); // stampami un asterisco
} // quando j è = ad i
printf("\n"); // vai a capo
} // quando i = 30
return 0; // termina il main
}



Esempio: stampare lo stesso triangolo di * però rovescio:
******************
*****************
****************
***************
**************
ecc


#include <stdio.h>

int main(void) {

unsigned int i,j;
for (i=0;i<10;i++){
for (j=10;j>i;j--){
printf("*");
}
printf("\n");
}
return 0;
}




7

Dispensa Laboratorio di Programmazione






Esempio: dato un numero vedere la sua rappresentazione binaria:


#include <stdio.h>

int main(void) {

int x=20;
while(x>0) // finchè x è > 0; termina quando x non è + maggiore di 0
{
printf("%d",(x%2));
x=x/2;
}
printf("\n");
return 0;

}



8

Dispensa Laboratorio di Programmazione
VARIABILI A BASSO LIVELLO – VARIABILI INTERE

Affrontiamo la gestione delle variabili a basso livello (parleremo solo di variabili intere)

Sono : char 1 byte

Int
che può essere di tipo short – long – longlong
La parola , word = dipende dalla lunghezza dell’architettura del calcolatore

Long >= int >= short
Le architetture delle macchine moderne hanno un calcolo a virgola mobile. Normalmente non uso
Floating Point, ma uniformo tutto a un valore: per esempio se devo fare una lista del peso delle
persone di un’aula userò come unità di misura etti e non Kg.
Useremo nozioni di ottimizzazione, concetti per avere prestazioni migliori di un codice.
Per sapere come è lungo un intero in C c’è l’operatore:
sizeof(tipo) unsigned
int

Esempio: visualizzare l’aspetto binario di un numero: (binari1.c)


#include <stdio.h>

int main(void) {

int i,n,m,x=8;
n=sizeof(unsigned int)*8;
for (i=n-1;i>0;i--)
{
m=1<<i;
(x&m)==m?printf("1"):printf("0");

/* equivale a scrivere:
if ((x&m)==m)
printf(“1”);
else
printf(“0”)
*/

}
printf("\n");
return 0;
}



9

Dispensa Laboratorio di Programmazione
Operatori bit a bit

In C e` possibile manipolare i valori di un byte agendo a livello dei singoli bit. Si tratta di
costrutti usati raramente, sono però introdotti per completezza. Gli operatori bit a bit (anche
detti Bitwise Operator) definiti in C sono:
Simbolo Operazione realizzata
<<
Shift a sinistra
>>
Shift a destra
&
And bit a bit
|
Or bit a bit
ˆ
Or esclusivo bit a bit
˜
Complemento ad uno (Unario)


L’operatore << esegue lo shift a sinistra del suo operando di sinistra per il numero di
posizioni specificate dal suo operando destro. I bit eccedenti (a sinistra) sono persi, i bit
aggiunti (a destra) sono zero. Ad esempio:

7 << 1
3
00000111
00000011
7 << 3
0
00000111
00000000

L’operatore >> esegue lo shift a destra del suo operando di sinistra per il numero di
posizioni specificate dal suo operando destro. I bit eccedenti (a destra) sono persi, i bit
aggiunti (a sinistra) sono zero. Ad esempio:

7 >> 1
3
00000111
00000011
7 >> 3
0
00000111
00000000


L’operatore | esegue l’or bit a bit fra i suoi due operandi. Questo significa che il bit i-
esimo risulter`a uguale ad uno se e soltanto se almeno uno dei bit i-esimi negli operandi e`
uguale ad uno. Ad esempio:

7 | 12
15
00000111 00001100 00001111

L’operatore & esegue l’and bit a bit fra i suoi due operandi. Questo significa che il bit i-
esimo risulter`a uguale ad uno se e soltanto se ambedue i bit i-esimi negli operandi sono
uguali ad uno. Ad esempio:

7 & 12
4
00000111 00001100 00000100


10

Document Outline

    • ÿ
      • ÿ
      • ÿ
  • ÿ
  • ÿ
      • ÿ
      • ÿ
      • ÿ
  • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
  • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
  • ÿ
    • ÿ
  • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ
    • ÿ

Download
manuale base per programmare in linguaggio C

 

 

Your download will begin in a moment.
If it doesn't, click here to try again.

Share manuale base per programmare in linguaggio C to:

Insert your wordpress URL:

example:

http://myblog.wordpress.com/
or
http://myblog.com/

Share manuale base per programmare in linguaggio C as:

From:

To:

Share manuale base per programmare in linguaggio C.

Enter two words as shown below. If you cannot read the words, click the refresh icon.

loading

Share manuale base per programmare in linguaggio C as:

Copy html code above and paste to your web page.

loading