Exabyte: -TUTORIAL

Scienza, tecnologia e società

Visualizzazione post con etichetta -TUTORIAL. Mostra tutti i post
Visualizzazione post con etichetta -TUTORIAL. Mostra tutti i post

lunedì 20 novembre 2017

#5 Costrutti ciclici while, do/while, for - Guida alla programmazione in C

novembre 20, 2017 0

Clicca qui per leggere la lezione sui blocchi di selezione.

Iscriviti al nostro canale Telegram: clicca qui

Indice guide #1 Introduzione
#2 Le variabili
#3 La libreria Stdio.h
#4 Blocchi di selezione if/else e switch
#5 Costrutti ciclici while, do/while, for

Dopo aver visto i primi costrutti per controllare il flusso di esecuzione, possiamo andare a vedere una nuova forma di manipolazione dell'ordine sequenziale di esecuzione. Come i blocchi di selezione, anche i costrutti ciclici sono fondamentali per la realizzazione di un qualsiasi programma C di medio/bassa complessità.

Cos'è un ciclo in C

Un ciclo, nel campo della programmazione informatica, non è altro che una porzione del nostro codice, che si ripete un numero definito di volte, o fino alla verifica di una condizione da noi determinata.
Un ciclo in C può essere rappresentato con tre differenti costrutti, ognuno con uno specifica utilità.
  • Ciclo con controllo in ingresso: realizzato mediante il costrutto while, in questo caso il controllo sulla condizione avviene all'inizio del ciclo.
  • Ciclo con controllo in uscita: realizzato mediante il costrutto do/while, in questo caso invece il controllo sulla condizione avviene alla fine del ciclo.
  • Ciclo con contatore : realizzato mediante il costrutto for, anche in questo caso però il controllo sulla condizione avverrà all'inizio del ciclo.

Ciclo while

Come precedentemente accennato, il controllo sulla condizione avviene all'inizio del costrutto, questo vuol dire che il nostro programma eseguirà il codice all'interno del while se e solo se la condizione al suo interno è verificata (abbiamo già trattato il concetto di condizione nella precedente guida), e continuerà a farlo fino a quando essa sarà verificata.
Per realizzare un ciclo while è sufficiente scrivere:

Chiariamo subito le cose con un esempio:
Clicca sull'immagine per ingrandirla

Ciclo do/while

In questo caso invece il controllo sulla condizione avviene solo alla fine del costrutto, avremo quindi un ciclo che eseguirà sempre la sua prima iterazione.
Successivamente, se la condizione è verificata, verrà rieseguito il codice all'interno del ciclo, nel caso contrario invece l'esecuzione si fermerà alla prima iterazione.
Per realizzare un ciclo do/while scriviamo:
Anche in questo caso un esempio renderà tutto più chiaro:
Clicca sull'immagine per ingrandirla

Ciclo for

Il ciclo for può essere visto come un utilizzo più specifico del ciclo while, poichè come detto precedentemente, anche qui il controllo sulla condizione è realizzato all'inizio del ciclo.
Questo costrutto quindi non aggiunge nulla di nuovo a quanto abbiamo già visto, ma in alcuni casi rende il codice più pulito e chiaro.
Vediamo subito come realizzare un ciclo for:
Andiamo però a vedere più nel dettaglio i singoli campi del costrutto for:

  • Assegnazione variabili: in questa sezione del costrutto possiamo dichiarare e/o inizializzare delle variabili utili nel corpo del ciclo.
  • Condizioni: una o più condizioni che se verificate fanno ripetere l'esecuzione del ciclo.
  • Modifica delle variabili: sono una serie di modifiche effettuate su variabili già dichiarate che avverranno alla fine di ogni iterazione del ciclo.

Vediamo ora un esempio di un classico utilizzo del ciclo for, ovvero il contatore:
Clicca sull'immagine per ingrandirla

Un altro utilizzo tipico del costrutto for è quello di iteratore:
Clicca sull'immagine per ingrandirla

Le tecniche di utilizzo del costrutto for sono praticamente illimitate, in questa guida abbiamo visto due casi classici e che ritroverete spesso in molto programmi C, in quelle successive avremo modo di apprezzare ulteriormente il ciclo for e delle nuove tecniche per utilizzarlo al meglio.
Continua...

lunedì 23 ottobre 2017

#4 Blocchi di selezione if/else e switch - Guida alla programmazione in C

ottobre 23, 2017 0

Clicca qui per leggere la lezione sulla libreria stdio.h.

Iscriviti al nostro canale Telegram: clicca qui

Indice guide #1 Introduzione
#2 Le variabili
#3 La libreria Stdio.h
#4 Blocchi di selezione if/else e switch
#5 Costrutti ciclici while, do/while, for

Dopo aver visto la libreria stdio.h e aver imparato ad utilizzare le sue due funzioni fondamentali scanf e printf, possiamo andare a vedere un primo costrutto base del linguaggio C, ovvero i blocchi di selezione if/else e switch.

Cosa sono i blocchi di selezione

Come abbiamo già visto, il nostro codice una volta compilato e avviato, esegue in modo sequenziale le istruzioni che abbiamo scritto. Tuttavia, a seconda del tipo di programma che dobbiamo scrivere, non sempre questo modo di procedere è sufficiente per giungere ad una soluzione.
Più frequentemente l’algoritmo ha dei punti in cui il comportamento dipende dal valore dei dati che si stanno elaborando. I linguaggi di programmazione mettono quindi a disposizione dei costrutti che consentono di controllare il flusso di esecuzione delle istruzioni.

Il concetto di condizione

Prima di andare avanti è necessario introdurre e chiarire il concetto di condizione.
  • condizione di uguaglianza: viene espressa con il simbolo ' == ' ed è verificata se e solo se le variabili interessate dalla condizione sono uguali.
  • condizione di disuguaglianza: viene espressa con il simbolo ' != ' ed è verificata se e solo se le variabili interessate dalla condizione sono diverse.
  • condizione di maggioranza/minoranza : viene espressa con i simboli ' < ' (minoranza) e ' > ' (maggioranza) ed è verificata se e solo se il contenuto della variabile alla sinistra del simbolo è maggiore/minore del contenuto della variabile a destra del simbolo.
    Possiamo inserire anche il simbolo ' = ' successivamente a quello di maggioranza/minoranza per rendere il concetto di maggiore uguale/minore uguale.
Ovviamente andremo a riprendere queste concetto di condizioni, subito dopo aver introdotto i costrutti if/else, con degli esempi.

Il costrutto if/else

Il costrutto if/else non fa altro che riportare una condizione, tramite un espressione, che se verificata, esegue il codice all'interno dell'istruzione if.
Se invece la condizione espressa non è soddisfatta verrà eseguito il codice contenuto nell'istruzione else.
Vediamo subito la sintassi:

Per essere più chiari vediamo subito un esempio:
Clicca sull'immagine per ingrandirla

Varianti del construtto if/else

Oltre al costrutto utilizzato in modo standard (vedi esempio sopra) questo costrutto può essere usato con delle forme leggermente diverse, ma che tuttavia non ne modificano il concetto di fondo.
  • if senza else: con questo costrutto possiamo andare ad inserire una serie di condizioni, omettendo però la casistica di default.
    Questo modo di procedere rischia di creare qualche problema perchè non va a coprire la totalità delle casistiche possibili (se non costruito con attenzione).
    Mostriamo subito un esempio:
    Clicca sull'immagine per ingrandirla
  • NB: In generale, se si verifica la condizione in un if, questo non pregiudica il verificarsi delle condizioni successive.
  • if/else if: In questo caso il concetto è molto simile al precedente, con l'eccezione che se la condizione dell' if è verificata, non potrà esserlo quella nell'istruzione else if.
    Possiamo dire quindi che una condizione esclude l'altra (concetto di if/else), ma si mantiene la possibilità di decidere la condizione dell' istruzione else.
    Esempio:
    Clicca sull'immagine per ingrandirla

Il costrutto switch

Questo costrutto può essere visto come un aggregatore di if, tramite l'uso delle istruzioni case, break e default.
Viene solitamente utilizzato quando le condizioni da controllare sono molte, e si vuole realizzare un codice più immediato e meno prolisso.
Per utilizzare il costrutto switch è necessario scrivere:

In questo costrutto viene preso come elemento della condizione la variabile riportata nell'istruzione switch, e a seconda del valore di quest'ultima, si vanno ad eseguire le istruzioni contenute nei vari case.
Il comando break è necessario per fermare l'esecuzione dello switch una volta completato il set di istruzioni di un case.
Sarà quindi possibile o addirittura utile ometterlo, a patto di ricordare che in questo modo verranno eseguiti tutti i case successivi a quello verificato.
il comando default svolge lo stesso compito dell'else nel costrutto precedente, ovvero se nessuna delle condizioni precedenti è verificata allora verrà eseguito il set di istruzioni contenuto nel default.
NB: non è in nessun caso necessario utilizzare il comando break nelle istruzioni del default
Mostriamo due esempi per chiarire immediatamente quanto detto:
Clicca sull'immagine per ingrandirla
Clicca sull'immagine per ingrandirla

Questi esempi dovrebbero riuscire a chiarire ogni dubbio sull'utilizzo del costrutto switch.
Come possiamo vedere, nel primo caso sono stati utilizzati i break alla fine di ogni case, cosi facendo è stata eseguito solo il set di istruzioni relativo al case verificato, ignorando totalmente tutti gli altri.
invece è stato eseguito il default nel caso in cui nessuno dei case è stato verificato.
Nel secondo caso invece sono stati eseguiti tutti i case successivi al primo case verificato, incluso il default.
Prestando attenzione alle condizioni inserite nei case e all'uso dei break è quindi possibile emulare completamente i costrutti visti precedentemente, con il solo costrutto switch, che però ribadiamo essere consigliato solo nel caso in cui ci siano parecchie condizioni da controllare.

Clicca qui per continuare: Costrutti ciclici while, do/while, for

468x60
Continua...

martedì 17 ottobre 2017

Modificare i server DNS su Windows 10

ottobre 17, 2017 0
I server DNS hanno il compito di interpretare il dominio alfanumerico digitato dagli utenti nell’indirizzo IP corrispondente al sito ricercato. Ad esempio digitando nel browser www.google.it i server DNS tradurranno la nostra richiesta in 74.125.206.94.
Ogni gestore telefonico, automaticamente, ci collega ai suoi server DNS ed è proprio per questo che potrebbe essere utile sostituirli.
Potrebbe infatti capitare che non sempre sia disponibile la corrispondenza tra l’indirizzo digitato e l’indirizzo IP concreto; questo può accadere ad esempio per motivi economici o legali (le autorità di uno stato oscurano il sito a livello nazionale). I siti che pubblicano contenuti pirata in streaming sono un esempio di come a volte ritornino accessibili semplicemente cambiando i DNS.

COME SOSTITUIRLI

Fare click destro sull’icona della connessione wifi/lan in basso a destra e aprire Centro connessioni di rete e condivisioni.
Clickare sulla propria rete come indicato in rosso.
Fare click su proprietà
Selezionare Protocollo Internet v4 (TCP/IPv4) e andare su Proprietà

Arrivati a questo punto, non modificare le impostazioni relative all'indirizzo IP ma selezionare Utilizza i seguenti server DNS e digitare i server preferiti.
I più veloci, sicuri ed utilizzati sono quelli messi a disposizione da Google:
  • Server DNS preferito: 8.8.8.8
  • Server DNS alternativo: 8.8.4.4
Continua...

venerdì 13 ottobre 2017

#3 Libreria stdio.h - Guida alla programmazione in C

ottobre 13, 2017 0

Clicca qui per leggere la lezione sulle variabili.

Iscriviti al nostro canale Telegram: clicca qui




Indice guide #1 Introduzione
#2 Le variabili
#3 La libreria Stdio.h
#4 Blocchi di selezione if/else e switch
#5 Costrutti ciclici while, do/while, for

Avendo ben chiaro il concetto di variabile possiamo fare un ulteriore passo e andare ad introdurre la libreria standard input/output, necessaria per scrivere qualsiasi programma in C.
Alla fine di questa lezione saremo quindi in grado di scrivere un primo (piccolo) programma in C.

Libreria stdio.h

Le funzioni contenute in questa libreria sono molte e non andremo a vederle tutte nello specifico (vi lascio comunque il link per andarle a leggere nel caso in cui foste particolarmente interessati).
Quelle che andremo ad analizzare adesso sono principalmente due:
  • printf: funzione utilizzata per stampare a video sul terminale
  • scanf: funzione utilizzata per acquisire dati da tastiera

Includiamo una nuova libreria nel nostro programma

Per includere una qualsiasi nuova libreria nel nostro programma è sufficiente scrivere come prima cosa
# include <libreriarichiesta>
vediamo subito un esempio sul nostro editor di testo
Clicca sull'immagine per ingrandirla

Cosi facendo, abbiamo incluso le librerie richieste e possiamo utilizzare le loro funzioni nel nostro programma.
NB: Come vedete dall’immagine i programmi C vanno scritti, dopo aver incluso le librerie, all’interno di due parentesi graffe, precedute dall’intestazione:
int main()

questo argomento, seppur molto importante, verrà affrontato in maniera molto più approfondita più avanti, quando andremo a vedere funzioni e sottoprogrammi.

Iscriviti al nostro canale Telegram: clicca qui

Funzione scanf

Come accennato prima, questa funzione serve ad acquisire dati da tastiera e ad immagazzinarli nel nostro programma, all’interno di una o più variabili.
Andiamo a vedere subito come funziona e come si usa:
scanf(“%format”, &variabile);
La funzione cosi scritta non fa altro che attendere un input da tastiera(confermato con il tasto invio), convertirlo secondo quanto scritto nel format e infine lo memorizza nella variabile richiesta.
Il simbolo ‘ & ‘ che precede il nome della variabile sta ad indicare l’indirizzo in memoria della variabile che lo segue.
Possiamo leggere quindi la funzione scanf come “attendi un input, convertilo secondo il format, e salvalo all’indirizzo di memoria dedicato alla variabile indicata”.
Riportiamo in seguito la tabella dei format necessari fino a questo punto
Esempio:
Clicca sull'immagine per ingrandirla

questo piccolo programma C non fa altro che dichiarare un int, un float e un char e acquisisce i valori di tutti e tre da tastiera.

Funzione printf

Questa funzione non fa altro che stampare tutto ciò che gli viene indicato come argomento. printf(“%format”, variabile);
La funzione cosi scritta stamperà a video sul terminale il valore della variabile richiesta. Possiamo leggere questa funzione come “stampa a video il valore della variabile indicata”.
In questo caso non è necessario riportare il simbolo ‘ & ’ , come fatto per la scanf, a meno che non si voglia stampare l’indirizzo di memoria dedicato alla nostra variabile.
Esempio:
Clicca sull'immagine per ingrandirla
qui possiamo vedere lo stesso programma precedente, con la differenza che, una volta eseguito, questo ci farà vedere sul terminale i valori che abbiamo assegnato alle variabili.

La funzione printf può essere utilizzata anche per scrivere delle semplici parti testuali all’interno del nostro programma.
Basterà utilizzare la notazione:
printf(“quello che vogliamo scrivere”);
Esempio:
Clicca sull'immagine per ingrandirla

NB: il carattere “\n” è un carattere speciale e viene usato nella printf per indicare di andare a capo.
Infine è possibile combinare i due utilizzi della printf per avere un output ancora più completo.
printf(“quello che vogliamo scrivere %format”, variabile);
In questo modo quello che vedremo a video sarà la frase tra virgolette, seguita dalla variabile indicata.
Vediamo subito un esempio:
Clicca sull'immagine per ingrandirla

A questo punto abbiamo visto tutti i possibili utilizzi della funzione printf e possiamo andare a compilare il nostro programma per vedere cosa otteniamo in output.
Clicca sull'immagine per ingrandirla
NB: è anche possibile stampare o acquisire più variabili con un’unica printf e una scanf
scanf(“%format %format %format”, &variabile1, &variabile2, &variabile3);
printf(“%format %format %format”, variabile1, variabile2, variabile3);

Clicca qui per continuare: Blocchi di selezione if/else e switch

468x60
Continua...

giovedì 12 ottobre 2017

#2 Le variabili - Guida alla programmazione in C

ottobre 12, 2017 0

Clicca qui per leggere la prima lezione.


Iscriviti al nostro canale Telegram: clicca qui

Indice guide #1 Introduzione
#2 Le variabili
#3 La libreria Stdio.h
#4 Blocchi di selezione if/else e switch
#5 Costrutti ciclici while, do/while, for

Concetto di variabile in C

Come abbiamo visto nel piccolo esempio della lezione precedente, un programma C acquisisce dati, li elabora e restituisce un risultato.
Per fare ciò è necessario andare a definire una rappresentazione univoca dei dati che vogliamo immagazzinare ed elaborare nel nostro programma.
Introduciamo quindi il concetto di variabile.
Le variabili in C servono a differenziare i dati e salvarli in memoria con dimensione (in byte) differente a seconda del tipo. Possiamo definire quindi una variabile come un’area di memoria avente:






  • nome: assegnato da noi in fase di dichiarazione;
  • indirizzo: assegnato dal compilatore e necessario per raggiungere l’area di memoria;
  • valore: assegnato da noi tramite l’inizializzazione

Dichiarare una variabile in C

Per dichiarare una variabile in C è sufficiente scrivere: tipodivariabile nomevariabile;
Ad esempio:
int d;
char c;
float f;

Questa operazione andrà a riservare un’area di memoria di n byte (a seconda del tipo dichiarato) e le assegnerà un indirizzo, che ci consentirà di accedere a quella variabile ogni volta che vorremo nel corso del programma.

Inizializzare una variabile

Una volta dichiarata una variabile questa avrà quindi un nome e un indirizzo in memoria, va assegnato quindi un valore. Per farlo è sufficiente scrivere: nomevariabile = valoredesiderato;
Ad esempio:
id = 5;
c = ‘m’;
f = 5.5;

NB: è possibile dichiarare e inizializzare una variabile con un solo comando es: int d = 5;
Questa operazione non fa altro che riempire la memoria precedentemente allocata con il valore successivo al simbolo =.
Bisogna ovviamente porre attenzione alla coerenza con quanto scritto in fase di dichiarazione; se ad esempio andassimo a scrivere:
int c;
c = 5.6;

quello che otterremo è un valore troncato al solo intero, in sostanza sarebbe come scrivere:
c = 5;
Allo stesso modo se andassimo a scrivere:
float f;
f = 5;

Il compilatore accetterà la vostra inizializzazione, ponendo il valore di f = 5.0000000 .

Una piccola nota invece va fatta per l’inizializzazione delle variabili char.
Per inizializzare correttamente una variabile char è necessario mettere il valore da assegnare tra apici (‘ ’). Esempio: 
char c;
char n;
c = ‘c’;
n = ‘2’;

Se invece scrivessimo l’inizializzazione di n come n = 2; quello che otterremo non è il valore numerico due, ma invece il carattere ASCII corrispondente a 2 nella tabella ASCII (link). Riportiamo in seguito un esempio per spiegare meglio quanto detto


Come potete vedere nonostante abbia assegnato alla variabile c il valore 48 quello che viene stampato a video è il valore 0.
Questo perché nella tabella ASCII il valore corrispondente alla codifica 48 è 0.

Assegnazione tra variabili

Come visto in precedenza il simbolo ‘ = ’ viene utilizzato per assegnare ad una variabile un valore.
Più in generale il simbolo ‘ = ‘ assegna alla variabile alla sua sinistra, il valore di quella alla sua destra.
variabiledestinazione = sorgente;
Il suddetto simbolo viene quindi utilizzato anche per assegnare ad una variabile il valore di un’altra, o di un’espressione formata da più variabili e/o valori numerici.
Esempio:
int a;
int b;
a = 4;
b = a;

Stiamo assegnando alla variabile b lo stesso valore di a.
NB: gli indirizzi in memoria della variabile a e della variabile b continuano ad essere distinti, con questa operazione stiamo uguagliando il solo valore.

Operazioni tra variabili numeriche

Le operazioni consentite tra le variabili numeriche sono:
Un’altra operazione consentita tra le variabili numeriche di C è quella del calcolo del resto, indicata con il simbolo “%”.
Questa ci permette di andare a calcolare il resto di una divisione tra due valori.
Esempio:
int a = 6;
int b = 2;
int ris = a % b;

In questo caso abbiamo che il risultato della divisione a / b è uguale a 3 con resto 0, quindi la nostra variabile ris verrà inizializzata al valore 0.

NB: cosi come nella normale matematica, in un’espressione numerica verranno eseguite prima le moltiplicazioni/divisioni e dopo le somme/sottrazioni.
Tuttavia per evitare qualsiasi errore è sempre consigliato l’uso delle parentesi, che consentiranno al compilatore di interpretare sempre in modo corretto le nostre formule.
Esempio: (a*b) + c equivale a scrivere a*b + c .

Operazioni abbreviate

Nel linguaggio C è possibile abbreviare la scrittura di alcune operazioni, cosi da renderle più semplici e veloci da scrivere.
Vediamo subito alcuni esempi:
int i = 0;
i++;
Con la codifica i++ si intende semplicemente i = i +1;
analogamente quindi la codifica i-- sarà equivalente a i = i - 1;
Generalizzando quanto detto abbiamo che:
variabile operazione= valore;
sarà equivalente a:
variabile = variabile operazione valore;
Chiariamo con un esempio:
int a = 0;
a += 5;
Equivale a:
int a = 0;
a = a +5;
Tuttavia avremo modo di apprezzare l'utilità di queste operazioni abbreviate solo più avanti.

Clicca qui per continuare: La libreria stdio.h

Continua...

lunedì 9 ottobre 2017

#1 Introduzione alla programmazione in C - Parte 2

ottobre 09, 2017 0

Clicca qui per leggere la prima parte della lezione

Iscriviti al nostro canale Telegram: clicca qui

Definiti i concetti fondamentali della pagina precedente, possiamo vedere come un computer riconosce il nostro codice e lo esegue.
Il codice passa attraverso il compilatore (nel linguaggio C è GCC) che si occuperà di tradurre il codice di alto livello in Assembler (sempre nel caso del linguaggio C), ovvero un linguaggio di basso livello.
Una volta ottenuto il linguaggio di basso livello corrispondente alla piattaforma di compilazione, questo può essere finalmente interpretato dalla macchina e trasformato in un file binario eseguibile.

Premesse per la compilazione

Per la programmazione in C, ma in generale per per lo sviluppo di software, è consigliabile lavorare su un ambiente Linux. (Debian, Ubuntu, Linux Mint, Arch Linux..).
In questo caso gli unici software necessari per la programmazione sono il terminale di Linux e un editor di testo. Va benissimo anche il semplice Gedit preinstallato su molte versioni di Linux, ma in alternativa è possibile utilizzare editor di testo più completi e orientati alla programmazione come SublimeText.

Se invece non si ha abbastanza dimestichezza con sistemi Linux o semplicemente non si ha voglia di installarlo e utilizzarlo è possibile programmare in C anche su sistemi Windows.
Le alternative in questo caso sono due:
  • Installazione di una Macchina Virtuale su cui far girare una distribuzione Linux a nostra scelta;
  • Installazione direttamente su Windows 10 (versioni successive all’Anniversary Update) della bash di Ubuntu abilitando le opzioni sviluppatore dalle impostazioni del nostro sistema Windows (Qui la procedura guidata).

Compiliamo il nostro primo programma C

Senza prestare particolare attenzione al codice vediamo intanto come compilare prima, ed eseguire poi, un generico programma in C.
Una volta scritto il nostro programma C sarà necessario salvarlo con estensione .c (ad esempio “prova.c”) in una cartella nota, possibilmente con un percorso non troppo complicato (altrimenti dovrete digitarlo ogni volta nel terminale per compilarlo).
Fatto ciò, in ambiente Linux o sulla bash installata in Windows, apriamo il terminale e digitiamo:
gcc /percorsodelprogramma/prova.c -o nomechevogliamo
esempio : gcc primo.c -o primo
in questo caso non scrivo il percorso del file perché è stato salvato direttamente nella cartella Home, che è quella di default del terminale.
Clicca sull'immagine per ingrandirla.

Il comando gcc serve a chiamare la compilazione al file .c che scriviamo successivamente (fate molta attenzione ad inserire sempre il percorso corretto del file .c se non salvate il file in Home).
La direttiva -o invece serve ad assegnare un nome al nostro programma binario ottenuto in seguito alla compilazione.
Una volta digitati i comandi sopra, nel caso in cui non ci fossero errori nel codice, il terminale non restituirà nulla ma avrà correttamente compilato il nostro programma, che adesso è pronto ad essere eseguito.

Eseguiamo il programma

Se la fase di compilazione è andata a buon fine vedrete che nello stesso percorso del nostro programma C è stato creato un nuovo file con il nome inserito nella direttiva -o.
Clicca sull'immagine per ingrandirla.

A questo punto basterà dare sempre sul terminale il comando:
percorsodelprogramma/nomeprogramma
esempio: ./primo
Dove con ./ si intende la cartella corrente:
Clicca sull'immagine per ingrandirla.

Il nostro programma viene quindi eseguito e possiamo verificarne i risultati dal terminale.

Clicca qui per continuare: Le variabili.

Continua...

#1 Introduzione alla programmazione in C - Parte 1

ottobre 09, 2017 0
Con questo primo articolo inauguriamo la rubrica Guida alla programmazione. La rubrica avrò lo scopo di far apprendere quali sono i più importanti e diffusi linguaggi di programmazione, ma soprattutto come e quando si utilizzano.

Il primo corso riguarderà lo studio del linguaggio C: nel corso delle varie lezioni vedremo cos'è un codice, quali sono gli elementi più importanti del C, quali tipi di strutture dati statiche o dinamiche esistono, cos'è una ricorsione e tanto altro.
Il corso è indicato soprattutto per gli studenti universitari che per la prima volta si affacciano alla programmazione in C, pertanto, l'ordine delle lezioni sarà molto simile a quello del corso di Fondamenti di Informatica di molte università italiane.
Al fine di rendere il tutto più completo ed interessante, ogni lezione sarà corredata da video esempi e da esercizi svolti e allegati a fine articolo.
Per idee, dubbi o consigli, lasciate un commento sotto a questo articolo!

Iscriviti al nostro canale Telegram: clicca qui

Indice guide #1 Introduzione
#2 Le variabili
#3 La libreria Stdio.h
#4 Blocchi di selezione if/else e switch
#5 Costrutti ciclici while, do/while, for

Cos’è la programmazione?
La programmazione non è altro che la stesura di un codice di alto livello, cioè un elenco di operazioni da far eseguire al nostro computer, scritte in un linguaggio che sia comprensibile sia al programmatore che alla macchina che esegue il codice.

Come fa un computer a riconoscere il nostro codice?

Innanzitutto specifichiamo la differenza tra linguaggio di alto livello e di basso livello.


  • Alto livello: è il codice che effettivamente andiamo a scrivere, è spesso intuitivo e facile da comprendere per il programmatore. Tra i linguaggi più utilizzati e conosciuti ad oggi troviamo il C, C++, C#, Java, Python e tanti altri.
  • Basso livello: il codice che scriviamo non viene immediatamente riconosciuto dal nostro computer, ma deve essere prima “trasformato”, tramite la compilazione (che vedremo tra poco) in modo da risultare comprensibile alla macchina.
Un’altra differenza importante per comprendere le fasi della compilazione è quella tra programmazione imperativa (programmazione C) e programmazione interpretativa (programmazione Java).
Nella prima, il codice che viene compilato su un determinato sistema operativo e un certo hardware, potrà essere eseguito solo su computer con quelle caratteristiche. L’esecuzione del codice è quindi strettamente collegata alla piattaforma che lo compila.
Nel secondo caso invece, il codice viene compilato ed eseguito non sulla nostra piattaforma ma su una macchina virtuale (JVM) che una volta scaricata, viene installata sul nostro pc e sarà uguale per tutti i sistemi operativi, evitando cosi ogni problema di compatibiltà software o hardware. Se vi siete mai chiesti come facesse il sistema operativo Android a girare su smartphone, tablet e pc con hardware così differenti adesso avete una sommaria risposta.

Perchè C?

Iniziamo dicendo che la programmazione in C è di tipo procedurale. Abbiamo scelto di approfondire il linguaggio C perché, oltre ad essere uno dei più diffusi, è sicuramente il linguaggio perfetto per chi vuole iniziare ad approcciarsi al mondo della programmazione.
Questo perché è un linguaggio estremamente potente, che ci consente di realizzare programmi di qualsiasi genere, compresi videogames, app per smartphone o addirittura parti fondamentali di sistemi operativi come il kernel.

Oltre ad essere cosi potente, C è sicuramente il linguaggio che ci mette fin da subito di fronte ai veri problemi della programmazione. Non ci vengono fornite librerie incredibilmente complete come quelle, ad esempio, di Java, quindi la maggior parte del lavoro sporco spetta al programmatore.
Concludendo possiamo dire che, se si padroneggia bene il linguaggio C, imparare gli altri sarà nettamente più semplice.

Clicca qui per continuare con la seconda parte.

Continua...

sabato 7 ottobre 2017

Installare la bash di Ubuntu su Windows 10

ottobre 07, 2017 0
Grazie ad un accordo con Canonical, tutte le versioni di Windows 10 da Anniversary Update in poi, potranno integrare la bash di Ubuntu togliendo il bisogno di cercare alternative "virtualizzate".
Bash (acronimo per bourne again shell) è una shell del progetto GNU usata nei sistemi operativi Unix; si tratta di un interprete di comandi che permette all’utente di comunicare col sistema operativo attraverso una serie di funzioni predefinite, o di eseguire programmi.

Attivare la Bash

  1. Aprite Pannello di controllo-> Programmi-> Attiva o disattiva funzionalità di Windows.
  2. Cercate la voce Sottosistema Windows per Linux (Beta), mettete una spunta e cliccate OK.
  3. Attendete il download e l’installazione dei componenti necessari. Al termine potrebbe essere richiesto il riavvio del sistema operativo.

Installare la Bash

  1. Recatevi in Impostazioni-> Aggiornamento e sicurezza-> Per sviluppatori e attivate la Modalità sviluppatore.
  2. Aprite il cmd/prompt dei comandi come Amministratore
  3. Digitate il comando lxrun /install e premete Invio. Alla richiesta, digitate "s" e premete Invio;
  4. Attendete il download dei file dal Windows Store, l’estrazione degli stessi e la creazione di un account UNIX predefinito;
  5. Quando vi sarà richiesto, inserite un nome utente e una password.

Se l'operazione sarà andata a buon fine, visualizzerete il messaggio di Installazione completata.
Per avviare la bash, vi basterà aprire il menù Start e cercarlo tra i programmi installati.
Continua...

mercoledì 16 luglio 2014

Come scaricare la Paranoid Android per i dispositivi non Nexus

luglio 16, 2014 1


Il team di Paranoid Android supporta ufficialmente solo i Nexus e quindi se avete un dispositivo di altra marca, dovrete affidarvi a qualche porting.

Trattandosi di un piccolo team, diventa impossibile testare la ROM su tanti modelli diversi, ma questo non significa che il supporto per i device legacy (i non Nexus) sia del tutto assente. C’è infatti un sotto gruppo conosciuto come AOSPA-Legacy, che ha una collezione non ufficiale di firmware per tanti altri modelli e che cerca di rimanere in pari con le release ufficiali, a volte un po' in ritardo, ma permettendo comunque ai proprietari di un modello non supportato ufficialmente di avere la loro PA in tempi più che accettabili.
Continua...

Installare la Paranoid Android 4.x.x sui Nexus 7 2012 e 2013

luglio 16, 2014 0
"Il seguente firmware non è distribuito dalla casa produttrice. Non mi assumo alcuna responsabilità in caso di brick o malfunzionamenti."

I Nexus 7 2012 e 2013 hanno ricevuto ufficialmente l'aggiornamento alla versione 4.4.2 di Android. I più smanettoni e appassionati però, preferiscono una rom alternativa alla versione stock di Android per ricevere e utilizzare funzioni che ancora non sono stata implementate ufficialmente. Tra le varie Rom disponibili vi è la Paranoid Android. Questa rom, infatti, garantisce un supporto ottimale aggiornando settimanalmente le proprie rom in modo da garantire sempre nuove funzioni e allo stesso tempo di rimuovere tutti i bug presenti.

PREREQUISITI

  • Bootloader sbloccato, permessi di Root abilitati e Recovery modificata presente | Se non li possiedi clicca qui.
  • Scaricare la Rom relativa al proprio dispositivo:
    • Download Paranoid Android 4.x Nexus 7 2012 Wifi Only (grouper)
    • Download Paranoid Android 4.x Nexus 7 2012 GSM (tilapia)
    • Download Paranoid Android 4.x Nexus 7 2013 Wifi Only (flo)
    • Download Paranoid Android 4.x Nexus 7 2013 LTE (deb)
  • Download Google Apps Paranoid 4

Continua...

lunedì 7 gennaio 2013

Partizionare una scheda SD

gennaio 07, 2013 0
Ecco qui una guida su come partizionare una schedaSD usando Minitool partition magic, programma che potrete usare anche per partizione un disco rigido.
Se volete creare una piccola partizione alla vostra schedaSD seguite questa procedura:

1)Collegare la microsd al pc, in modo da gestirla come una periferica rimovibile;


2)Avviare partition magic, dovreste vedere che la microsd ha un'unica partizione FAT32;

3)Ridurre la dimensione facendo tasto destro su di esso e selezionare "Move/Resize partition", scegliare la dimensione della microsd, la restante verrà usata per creare la seconda partizione;



















4)Fare tasto destro su Unallocated e creare una partizione EXT2 o EXT3, di tipo "primaria";






















5)Confermare cliccando su Apply.


Continua...

venerdì 21 dicembre 2012

[UPDATE] Huawei u8650 Sonic 2.3.6 (Root+Recovery 6)

dicembre 21, 2012 59
"Questa rom è la versiona tedesca di Android 2.3.6 per Huawei u8650, Vodafone non ha aggiornato ufficialmente questo terminale. Non mi assumo nessuna responsabilità in caso di brick o malfunzionamenti."

Clicca Mi Piace sulla nostra pagina Facebook per seguire tutte le notizie di Exabyte.


Aggiornamento alla versione 2.3.6 di Android per Huawei Sonic
1) Installazione ROM
Scaricate la Rom da questo link: ROM 2.3.6+ROOT
L'installazione si divide in due parti; la prima parte è essenziale per l'aggiornamento del terminale, la seconda è opzionale.
(E' necessario avere una microSD da almeno 512MB e la batteria con almeno il 50% di carica)
STEP 1:

  • Dentro la cartella principale, decomprimete il file "ROM 2.3.6 STOK.zip" e copiate l'intera cartella "dload" nella microSD, assicurandovi che nella cartella ci sia il file update.app.
  • Clicca Mi Piace sulla nostra pagina Facebook per seguire tutte le notizie di Exabyte.
  • Spegnete il cellulare, rimuovete la batteria per circa 10 secondi e riavviatelo tenendo premuto TASTO VOLUME SU+TASTO VOLUME GIU'+TASTO ACCENSIONE fino a quando non apparirà una schermata con scritto Firmware Update.
  • A questo punto si avvierà la procedura di installazione del cellulare, il telefono si riavvierà da solo a proceduta completata.
A questo punto si può benissimo utilizzare il cellulare ma, lo STEP 1, contiene solo la versione base di Android senza le personalizzazioni Huawei, tra cui il widget della barra notifiche (i vari pulsanti Wi-Fi, 3G, Bluetooth ecc) che sono contenute nello STEP 2.
STEP 2:

  • Ritornate alla cartella principale, decomprimete la cartella VENDOR.zip e copiate il file update.app all'interno nella cartella dload presente nella microSD, sostituite il vecchio file update.app e con il nuovo che deve pesare solo 1Kb.
  • Spegnete il cellulare, rimuovete la batteria per circa 10 secondi e riavviatelo tenendo premuto TASTO VOLUME SU+TASTO VOLUME GIU'+TASTO ACCENSIONE fino a quando non apparirà una schermata con scritto Firmware Update.
  • A questo punto si avvierà la procedura di installazione del file vendor, il telefono si riavvierà da solo a proceduta completata.
Clicca Mi Piace sulla nostra pagina Facebook per seguire tutte le notizie di Exabyte.
(Personalmente a me è capitato che la procedura si bloccasse, se capita anche a voi, aspettate per un paio di minuti per verificare se si sia veramente bloccato. In caso di blocco rimuovete la batteria e riavviate il cellulare, il file dovrebbe essersi installato ugualmente.)

2) Aggiunta Recovery ClockWorkMod 6 e permessi di Root

Scaricate la recovery da questo link: Recovery CWM 6

  • spegnete il cellulare e rimuovete la batteria per 10 secondi
  • decomprimete la cartella
  • avviate il cellulare premendo TASTO VOLUME GIU'+ACCENSIONE
  • collegate il terminale al pc e aprite il file install-recovery-windows.bat
  • lasciate avviare la procedura e se richiesto premete invio, una volta finito scollegate il cellulare dal pc
Per avviare la recovery spegnere il cellulare, attendere 5 secondi e accenderlo premendo TASTO VOLUME SU+ACCENSIONE

Clicca Mi Piace sulla nostra pagina Facebook per seguire tutte le notizie di Exabyte.
Installare i permessi di root:
  • Copiate la cartella ROOT 2.3.6.zip nella microSD
  • aprite la recovery
  • usando i tasti del volume scendete fino a "install zip from SDcard"
  • scegliete il file ROOT 2.3.6.zip e avviate l'installazione dei permessi di root
  • riavviate il cellulare 

**Nuova ROM Etna - Android 2.3.6**

---->Follow me on Facebook - Exabyte  <----
---->Follow me on Twitter - @exabyteblog <----
---->Follow me on Google+ - Exabyte <---- 

Continua...

Post Top Ad