Voglia di Mac , anche su Facebook

Voglia di Mac , anche su Facebook
Diventa membro di iBlog anche su Facebook!
Powered By Blogger

Qui iSpazio con il Feed su iPod Touch, iPad Italia e recensioni App Store.

Benvenuto in iBlog!

Benvenuto in iBlog , 

iBlog è un blog per interessi di  Mac OS X e anche iPhone OS ,  se se hai interessi da da condividere sul blog , scrivi un ' articolo e poi noi lo inseriremo su iBlog!

Pagine

martedì 10 agosto 2010

Avanzate di linguaggio C parte 2: Operazione sui puntatori

Bene rieccoci qua con il nostro linguaggio preferito ovvero il C!
Oggi parleremo di come sommare due puntatori anche se vi sa strano....ma cerchiamo di capire che cosa andremo a fare
Queste somme permettono di cambiare indirizzo a mio piacimento avendo un intero controllo sulla memoria!
Non vi sembra fantastica come idea! A me pare di si e ora vi insegno come fare:
Introduciamo prima di tutto l' operatore sizeof(T) ove T è un parametro noto.
Che fa? Semplice assegnatogli un parametro esso ne calcola la lunghezza dando un valore size_t che è un unsigned int ovvero un intero senza segno.
Ma a che serve questa cosa che ha poca utilità visto che uno sa che un parametro int occupa 4 bit di memoria il double 8 ecc...?
Semplice per capire di quanto si sposterà l' elemento visto che quando salvo un dato a differenza dei documenti sono salvati in bit contigui e non li spacca all interno della memoria.
Ora diamo le formule affinchè anche voi capiate quel che ho detto (attenzione NON sono esempi ma formule che spiegano cosa fa l' operazione sulla vostra memoria)
La somma si può fare fra un valore ( chiamiamolo x ) e un puntatore ( chiamiamolo p ) entrambi di dimensione size_t (NOTARE che devono essere uguali).
Ecco che succede se li sommo:
x+p = (indirizzo puntato da p)+ (size_t*x)
Capite che come si somma si sottrae o no?
Volete un ESEMPIO non è vero? Eccolo:
1 int a= 100, *b=&a;
2 int *c= b+5;
Dove è c? Credo che a nessuno verrà lo stesso risultato perche dipende dalla vostra memoria ma so che c è spostato di 20 bit da a.
Trucchetto se volete spostare solo di uno: è più furbo farlo con gli operatori ++ (incremento) e -- (decremento)
Ora passiamo alle somme che si possono fare fra 2 puntatori che chiamiamo per carenza di fantasia p e q (ATTENZIONE devono avere la stessa dimensione size_t)
Ecco che succede se li sommo:
p+q = (indirizzo puntato da p+indirizzo puntato da q) / size_t
Capite che come si somma si sottrae cambiando + con - anche nella formula.
Volete anche qui un ESEMPIO non è vero? Eccolo:

1 int a=100, b=200;
2 int p= &a , q=&b;
3 int *c= p-q
Dove è c? Credo che a nessuno verrà lo stesso risultato perche dipende dalla vostra memoria ma ora nn so nulla eccetto il fatto che dividerò la somma dei due indirizzi per 4.
Ecco per oggi è tutto e alla prossima lezione
Ciao
Luca


mercoledì 4 agosto 2010

Avanzate di linguaggio C- parte 1: Introduzione all' uso dei puntatori

Salve rieccoci qui per parlare di C ma questa volta da un punto di vista superiore iniziando a introdurre il concetto di puntatore che durerà molto perchè è un grosso concetto che va digerito poco per volta e sarebbe inutile scrivere tutto subito sarebbe suicida quindi ho già porzionato il giusto per ogni articolo.
Ma ora iniziamo a parlare dei puntatori.
Che cos' è un puntatore?
Un puntatore è una variabile che rappresenta un indirizzo di memoria
A che può servire?
Beh...serve tantissimo visto che modificano il valore della variabile a cui puntano senza usare nuova memoria per salvare il risultato e vi assicuro che se fate 1000 calcoli su interi salvare 4000 byte di spazio è molto meglio di usare per salvare nuovi risultati!
Ecco un argomentazione valida per usarli...
Ma come si dichiara e si usa?
Semplice si fa così
(tipo) * (nome del puntatore)
ESEMPIO int * x significa che ho detto che ci sarà un puntatore intero di nome x.
Ora ci chiediamo a che cosa lo facciamo puntare?
Ad una variabile che ha un indirizzo di memoria visto che il puntatore non viene salvato in memoria (ed ecco altro risparmio sulla memoria) e si fa nel seguente modo
(nome puntatore) = & (nome variabile)
ESEMPIO (int b) x= & b detto che b è intero x lo può puntare, facile no?
Ora credo che gradiate un esempio quindi eccolo qua:
1 int a=100, b=50 , *p;
(NOTATE CHE posso dichiarare variabili e puntatori assieme)
2 p= &a
(ORA p punta a d a variabile)
3 int c= *p
(ATTENTI con * posso anche dare ad una variabile il valore puntato dal puntatore così, quindi c = valore a = 100)
4 p = &b
(Cambio il posto su cui puntare)
5 int f = *p + 10
(f vale b+10 perchè p ORA punta b)
6 *p=*p+5
(ATTENTI così modifico p si ma anche b!!! Ora b vale 55!!!!)
7 int *q= &a
(SI può inizializzare e dichiarare assieme)
8 int d = *p * *q
(Provate e ricavare il valore di d o con la logica o scrivendo del codice di contorno che potete creare da soli)

Tutto qui.
Facile vero? Se volete sapere che fa 8 fatemelo sapere e io pubblico la soluzione....
Bene ultima stuzzicante possibilità: Sapere a che indirizzo sta la variabile puntata da b con qst riga di codice
printf("b=%d , indirizzo: %p\n", b, &b)
Sarà un numero esadecimale ovvero in base 16 e niente paura se viene "19BF" visto che oltre le cifre 1-9 ci sta A=10,B=11,C=12,D=13,E=14,F=15.
Bene per ora è veramente tutto alla prossima per sapere ancora dei puntatori.
Luca



sabato 31 luglio 2010

Introduzione al linguaggio C- parte 7: I numeri pseudo-casuali

Salve a tutti rieccomi a qui dopo una lunga assenza per parlare ancora di linguaggio C.
L' argomento di oggi è la creazione di numeri pseudo-casuali (l' aggettivo pseudo sta per il semplice fatto che se si conosce lo stato iniziale del generatore posso dedurre i numeri della sequenza).
Ora scopriamo come facciamo a crearli in C.
Inizialmente bisogna inizializare un seme di partenza tramite il codice
1 void srand (unsigned int seed)
dove void indica il tipo di srand che è l' inizializzatore del seme che sarà un intero senza segno( =
unsigned int seed)
Quindi void è una funzione senza un tipo precisato che chiede un parametro intero senza segno.
Poi bisogna generare l' elemento successivo con il seguente codice
1 int rand ( )
ovvero tramite una funzione rand intera con i parametri.
Si può inoltre definire una funzione RAND_MAX che definisce l' intervallo.
Comunque io vi suggerisco riportandovi il mio programma il modo più facile di crearli commentando le righe non note
(N.B. sta a voi introdurre nel programma le librerie stdio.h , stdlib.h che è la libreria per i numeri casuali e time.h che è la libreria del tempo perchè il modo più semplice di creare numeri casuali sta in questa libreria come vedremo in seguito)
1 int rand_limit (int k)
2 {
3 srand (time ());
4 return rand ( ) % k;
5 }
6 int main ( )
7 {
8 int g;
9 g = rand_limit (90);
10 printf ("%d\n", g);
11 return 0;
12 }
Bene ora commentiamo:
RIGA 1. Ho definito una funzione per creare i numeri pseudo-casuali;
RIGA 3: Ho inizializzato come seme della srand: il tempo , tramite la libreria time.h ecco perchè serve! e come detto prima io so che parte da zero e posso capire che numeri vengono fuori.... anche se farò di meglio di seguito
RIGA 4: Ecco il migliramento: Faccio ritornare il numero che creo ma uso la divisione in modulo per k (in pratica prendo il numero lo divido per k e il resto è la cosidetta divisione in modulo che si indica con % E NON CON / che è la divisione). Questo mi assicura un numero intero fra 0 e k-1(ma di seguito k sarà uguale a 90)
Il resto penso sia chiaro, se mi avete sempre seguito capendomi ;altrimenti rileggete i miei articoli sennò farò un articolo suppletivo
Bene ora posso dirvi che siete dei programmatori inizializzati di C, quindi le Introduzioni sono finite; ma chi volesse saperne di più non si disperi; perchè da questo momento scriverò gli articoli di avanzate di C e chi volesse seguirmi ancora può leggere i nuovi articoli con tale nome e saperne di più su questo stupendo e importantissimo linguaggio.
Quindi al prossimo articolo; per chi lo voglia
Luca

venerdì 30 luglio 2010

iPhone 4 in Italia !

Come tutti voi saprete , oggi è il giorno che molti aspettavano cioè il 30 luglio il giorno che Apple a postato per l' uscita del melafonino di 4a generazione !
E' possibile acquistare il gioiello via Apple Store , ma sarà sicuramente esaurito dopo alcuni minuti , o comunque via Apple online Store .
Il prezzo che da Apple è di € 659,00 per il modello da 16 GB1
e di 779,00 euri per il modello da 32 GB , ricordo che entrambi i modelli sono disponibili solo nel colore nero fino a dicembre che uscirà il modello bianco.

martedì 27 luglio 2010

Twitter!

Bene oggi come primo articolo del giorno voglio presentarvi il canale Twitter di Thomas A. che a aperto il suo canale con il nome di iBlog Team , voi iscrivetevi e noi rispondiamo ...
In più su questo nuovo canale Twitter ci sarà l' aggiornamento su tutti i tool rilasciati da noi , o comunque tutte informazioni che su Blogger non ci saranno!!

ECCO IL LINK:https://twitter.com/FullNerd

lunedì 26 luglio 2010

Nonciclopedia su Microsoft

Ovviamente,però,nonciclopedia ha comicizzato anche i problemi di Microsoft(che secondo noi sono più importanti di quelli di Apple).Ecco qui un estratto di quello descritto in un articolo:
“Un computer senza Windows è come una torta al cioccolato senza senape ”
- Qualcuno su Windows
“Tastiera non rilevata. Premere un tasto per continuare.”
- Microsoft Windows su un errore paradossale
“Mouse non rilevato. Cliccare OK per continuare.”
- Microsoft Windows su altro errore paradossale
“Impossibile collegarsi ad Internet. Cercare soluzioni online?”
- Microsoft Windows su ennesimo errore paradossale
Speriamo vi sia piaciuto questo angolo di comicità.

iPhone secondo nonciclopedia


Come ben sapete,fino ad ora,come è giusto che sia,abbiamo sempre scritto post seri.Qualche volta,però,un po' di divertimento ci vuole e,a volte, bisogna saper ridere anche dei propri difetti.Per questo oggi ho deciso di riportarvi un articolo comico di nonciclopedia,la famosa parodia di Wikipedia,sulll'iPhone,sul problema di ricezione di iPhone 4, e, più precisamente sul bumper che Apple metterà a disposizione GRATUITAMENTE ad ogni possessore di iPhone 4:

La custodia magica[modifica]

Come tutti sappiamo, l'Iphone 4, dopo anni di progettazione ed essere uscito sul mercato ad prezzo irrisorio[citazione necessaria], è risultato avere un ridicolo[citazione necessaria] problema di ricezione. Per sopperire a ciò, Mamma Apple ha partorito una delle sue classiche genialate che mai ti aspetteresti: la Custodia Magica™.
Fatta al 90% di silicone puro e al 10% di amore
Apple, tale custodia è il prodotto del futuro, risolverà qualsiasi problema di antenna.

Inoltre si irridono anche i difetti di iPhone 3G,che potrete vedere nella foto a questo link:http://images3.wikia.nocookie.net/__cb20081013000955/nonciclopedia/images/9/9a/Iphone-pietra.jpg



sabato 24 luglio 2010

Speck Pixelskin HD




Un'altra bella custodia della Speck,realizzata in TPU,dall'aspetto minimale che ricorda la Lego.Garantisce protezione sia laterale che posteriore all'iPhone 4 ed è resistente a colpi e cadute.

Speck Fitted Case






Questa custodia(Speck Fitted Case) è composta da due parti e funziona sia da bumper,per la protezione ai lati del dispositivo,sia da custodia per la scocca posteriore.La parte posteriore è composta da un favoloso motivo che donerà un aspetto magnifico al vostro iPhone.

Griffin Reveal Black Grafite


Questa case è composta da un unico pezzo di policarbonato con uno strato ultraleggero di gomma all'interno.Custodia spessa soltanto 1.6 millimetri e che quindi lascia libero il touchscreen e porte,ad esempio il jack,l'ingresso USB e i controlli volume.