Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

tutorial_c 1

scanf("%d",&ilnumero);

}

%d indica che la scanf deve prepararsi a ricevere come input dalla tastiera

un numero intero, &ilnumero indica DOVE schiaffare questo valore.

La & davanti al nome della variabile indica l'indirizzo in memoria della

variabile. Cioe', mentre ilnumero indica il valore della variabile (in questo

caso un numero), &ilnumero indica il posto in memoria dove si trova la variabile

ilnumero. Dato che scanf si aspetta un indirizzo e' necessario inserire

l'indirizzo della variabile ilnumero, e viene fatto appunto con &.

Dato che una variabile puo' occupare piu' di una "casella" in memoria,

viene considerato come indirizzo quello della prima casella.

Per indicare invece il valore contenuto in un indirizzo di memoria si

utilizza *. Esiste una tipo di variabile chiamato puntatore, che contiene

un indirizzo.

Es.

#include <stdio.h>

main{

int *ilpuntatore;

int ilnumero;

ilpuntatore = &ilnumero;

scanf("%d",ilpuntatore);

}

Con "int *ilpuntatore;" dichiariamo la variabile ilpuntatore come un

puntatore a una variabile di tipo int (infatti dovra' contenere l'indirizzo

di ilnumero, che e' un int).

"ilpuntatore = &ilnumero" assegna alla variabile ilpuntatore l'indirizzo in

memoria della variabile ilnumero.

Quando chiamiamo scanf, quindi, possiamo passare come parametro ilpuntatore,

senza usare la &, dato che ilpuntatore contiene gia' l'indirizzo di ilnumero.

Come ho gia' detto, per riferirsi al valore contenuto in un indirizzo di

memoria, si usa l'asterisco (*), quindi, una volta assegnato a ilpuntatore

l'indirizzo della variabile ilnumero, e' la stessa cosa fare ....

ilnumero = 3;

oppure .....

*ilpuntatore = 3;

Invece scrivere "*&ilnumero = 3;" e' una grandissima stronzata perche'

e' la stessa cosa di "ilnumero = 3;", solo con due caratteri in piu' :)

Un altro tipo di variabile, invece, e' l'array.

Un array e' un insieme di variabili, che hanno lo stesso nome e che vengono

quindi identificate da un numero.

Es.

int inumeri[50];

La variabile inumeri non conterra un numero solo ma 50 numeri.

inumeri[0] conterra' il primo numero, inumeri[1] il secondo, fino a

inumeri[49], che conterra' il cinquantesimo numero.

Es.

inumeri[20] = 25; Pagina 3

tutorial_c 1

Ovviamente e' possibile definire array di dimensioni diverse e anche array

a piu' dimensioni.

Es.

int tris[3][3];

In questo caso e' un array rappresentante uno schema di tris (3 righe per

3 colonne).

tris[0][0] rappresentera' la prima casella e tris[2][2] l'ultima.

Passiamo ora ad una parte fondamentale : la creazione di nuove funzioni.

Infatti scrivere tutto il codice in main non sarebbe certo elegante, e

creerebbe molta difficolta' nella comprensione del programma e nella

ricerca di errori, soprattutto per programmi complessi.

Es.

#include <stdio.h>

int doppio(int unnumero);

main(){

int numero;

scanf("%d",&numero);

printf("\n\rIl doppio di %d Š %d",numero,doppio(numero));

}

int doppio(int unnumero){

return unnumero*2;

}

La prima riga dopo l'include, "int doppio(int unnumero);" e' il prototipo

della funzione doppio, che verra' definita successivamente, dopo il main.

La parola int prima del nome della funzione indica che la funzione ritorna

(cioe' restituisce come risultato dell'operazione) un valore di tipo int.

All'interno delle parentesi ci sono i parametri accettati dalla funzione.

In questo caso e' uno solo, e' di tipo int, e viene riconosciuto all'interno

della funzione con il nome "unnumero".

Una funzione che non ritorna alcun valore (cioe' che serve solo ad eseguire

una serie di istruzioni) viene preceduta da void. Se una funzione non

accetta argomenti allora si scrive void tra le parentesi tonde.

"return" serve a definire il valore di ritorno della funzione. In questo caso

costituisce l'unica riga della funzione, e ritorna il numero passato come

argomento moltiplicato per 2.

Un programma dovra' compiere delle scelte, e per fare cio' si usa l'istruzione

"if".

Es.

if (lamammadigianteoboldohachiavato()) nonchiavartela();

In questo caso il programma controlla il valore di ritorno della funzione

"lamammadigianteoboldohachiavato()". Se il valore di ritorno e' 1

(considera 1=VERO 0=FALSO) allora eseguira' la funzione "nonchiavartela()"

AltroEs. Pagina 4

tutorial_c 1

if (!lamammadigianteoboldohachiavato()) chiavatela();

In questo caso se la funzione lamammadigianteoboldo NON restituisce 1 (e quindi

vero) esegue la funzione chiavatela();

Il punto esclamativo (!) infatti e' in C la negazione. Cioe' in questo caso

viene intesa cosi' :

se NON E' VERO che la funzione lamammadigianteoboldohachiavato ha ritornato

1, allora esegui chiavatela();

Prendiamo ora un altro esempio...

if (numero>100) printf("eh cosi' grande ! non ce la faccio a elaborarlo !"); //

:)

Cosa succede ? Il simbolo > vuol dire "maggiore di", questo lo sapevamo, ma

la if non si limita a vedere se un espressione e' vera o falsa ?

Appunto. Se numero e' maggiore di 100 allora (numero>100) sara' vero, altrimenti

falso.

Se si vogliono eseguire, a una certa condizione, piu' di un'istruzione, si

devono racchiudere le istruzioni tra due graffe.

Es.

if (seistronzo()){

vaffanculo();

nonmirompereilcazzo();

}

Per un'alternativa si usa invece "else"

Es.

if (seistronzo()){

vaffanculo();

nonmirompereilcazzo();

}

else { benvenuto();

accomodatipure();

}

E' anche possibile utilizzare gli operatori binari...

Es.

if ((seistronzo()) || (seiscemo()) || (seiunrompipalle())) {

vaffanculo();

nonmirompereilcazzo();

}

|| rappresenta infatti l'OR. Cioe' se anche solo una delle espressioni

e' vera, allora si avvera la condizione.

&& invece e' l'AND, cioe' la condizione e' soddisfatta solo quando TUTTE

le espressioni risultano vere, mentre ^ e' lo XOR, cioe' l'OR esclusivo

Pagina 5


PAGINE

7

PESO

16.75 KB

AUTORE

Sara F

PUBBLICATO

+1 anno fa


DESCRIZIONE APPUNTO

Appunti di Fondamenti di Informatica I - Tutorial linguaggio c. Nello specifico gli argomenti trattati sono i seguenti: Il C e il C++ sono probabilmente i linguaggi di programmazione preferiti dai professionisti, e sicuramente quelli preferiti dagli hackerz per i loro loschi scopi. Quindi ora tentero' di spiegarvi i fondamenti del C....


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:
Università: Firenze - Unifi
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Sara F di informazioni apprese con la frequenza delle lezioni di Fondamenti di Informatica I e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Firenze - Unifi o del prof Vicario Enrico.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Fondamenti di informatica i

Fondamenti di Informatica I – Linguaggio C
Dispensa
Fondamenti di Informatica I – Manuale Linguaggio C
Dispensa
Fondamamenti di Informatica I - Programma
Dispensa
Appunti Analisi 1
Appunto