Quinta Lezione: If-Else

1 febbraio 2010 Lascia un commento

Ciauz a tutti,

scusate per l’assenza nello spiegare il C, oggi faremo come promesso nella precedente lezione il comando di scelta: if-else. Questo comando è una struttura di controllo ovvero controlla che una variabile abbia il valore dato da noi programmatori…ciò cosa significa? Significa che se il valore da noi scelto è 10 dalla lezione precedente useremo gli operatori relazionali, e diremo quindi:

Se 10 è > o = di 5 allora printf(“Sei Bocciato\n”); altrimenti printf(“Sei Promosso\n”);

Questo è un esempio di pseudocodice…trasformando lo pseudocodice in un listato C avremo dunque:

#include<stdio.h>
main()
{
	int x;
	int y;
	int z;
	printf("Inserisci primo valore:\n");
	scanf("%d",&x);
	printf("Inserisci secondo valore:\n");
	scanf("%d",&y);
	z=x+y;
	printf("RISULTATO:%d\n",z);
	if(z>10)
	{
		printf("Sei Bocciato!\n");
	}
	else
	{
		printf("Sei Promosso!\n");
	}
}

Naturalmente qui ho inserito degli scanf() per far inserire al “professore” xD i voti ma andando a vedere il nostro comando if-else, vediamo che i printf() sono tra parentesi graffe….Beh allora vi dico io che il contenuto tra le parentesi graffe si chiama BLOCCO o ISTRUZIONE COMPOSTA. Altro da dire su questo comando è che non si devono mettere i ‘;’ dopo la parentesi dell’if ovvero così: if(z>n); non è giusto! Dato che verrà visto dal compilatore come errore logico.

Operatore Ternario:

Bene! Ora passando all’operatore ternario possiamo dire che è una sorta di if-else che comprende tre termini, questi tre termini sono divisi da (?:) questi due termini. Vediamo subito un’esempio:

z>=10 ? printf(“Sei Promosso!\n”) : printf(“Sei Bocciato!\n”);

bisognerà sostituirla questa stringa a posto del if else. Questo operatore ternario è la stessa cosa di un if-else solamente che abbrevia il listato, alle volte ci tornerà utile questo operatore perchè non potremo mettere un if-else. Bene questo è tutto la prossima lezione sarà sul while().

Ciauz Gh1r0

Annunci
Categorie:C, Programmazione

Quarta Lezione: Gli Operatori

23 dicembre 2009 Lascia un commento

Ciauz a tutti,

oggi introdurremo gli operatori. Allora iniziamo col dire che gli operatori in C hanno tre “sotto-operatori” e sono:

Operatori Aritmetici
Operatori Relazionali
Operatori di incremento

Questi tre operatori hanno dei compiti specifici…infatti Operatori aritmetici sono quegli operatori che fanno solamente calcoli matematici, mentre gli operatori relazionali sono operatori di confronto il che significa, mettiamo il caso che tra due numeri c’è da fare un confronto tra chi è più grande e chi è il più piccolo, si otterrà quindi il seguente listato:

#include<stdio.h>
main()
{
	int x = 2;
	int y = 4;
	int z;
	z=x+y; /* operatore aritmetico */
	if(z>14) /* vedremo questo comando nella lezione successiva */
	{
		printf("Error calculation\n");
	}
	else
	{
		printf("Right Calculation\n");
        }
        printf("RISULTATO:%d\n",z);
}

Ora vediamo il listato come al solito. Bene vediamo una istruzione if-else ma la vedremo nelle prossime lezioni, mentre direi di fare più attenzione agli operatori 🙂 questi operatori sono + e > il + è conosciuto ma > è il simbolo di maggiore cosa farà quindi l’if-else dirà che se z è maggiore di un certo numero che dichiariamo fa questo quindi questo è uno degli operatori relazionali altri operatori relazionali quali sono? Beh sono:

– minore:
– maggiore o uguale: >=
– minore o uguale: <=
– diverso: !=
– uguale a: ==

Questi sono i così detti operatori relazionali, mentre se si vanno a vedere i due operatori di incremento e decremento sono x++ incrementa di 1 la variabile x, x- -(bisogna metterli attaccati io li metterò staccati perchè l’editor ha un problema) questo invece decrementa 1 alla variabile x. Quindi a cosa servono questi operatori? Servono per confrontare determinati valori, stringhe e altro tra di loro. Questi valori se minori maggiori, etc…si potranno inserire in un comando di decisione che dirà al programma di fare una cosa invece che un’altra e questo sarà l’obbietto della nostra prossima lezione. Bene questo è tutto

Ciauz Gh1r0

Categorie:C, Programmazione

Terza Lezione: Input-Output

16 dicembre 2009 Lascia un commento

Ciauz a tutti,

in questa lezione si imparerà un nuovo comando, il comando scanf(). Questo comando è interattivo con l’utente che utilizzano esternamente il programma dato che fa il compito di chiedere l’input da tastiera di un numero e/o un carattere. Lo scanf() come già detto nella prima lezione non è un comando del C(dopotutto come il printf(), infatti ci starà la libreria stdio.h per questo lavoro. Ma per comprendere meglio questo comando vediamo un codice di esempio che utilizza lo scanf():

#include<stdio.h>
main()
{
	int x;
	int y;
	int z;
	printf("Insert first number:\n");
	scanf("%d",&x);
	printf("Insert second number:\n");
	scanf("%d",&y);
	z=x+y*y;
	printf("RISULTATO:%d\n",z);
}

Questo codice darà per risultato un numero…dipenderà da voi da quali valori inserite! Ma andando a vedere nel dettaglio, spieghiamo questo codice! Come ben vedete lo scanf(), ha innanzitutto la specifica di conversione che è decimale quindi l’utente dovrà inserire numeri interi, ma seconda cosa è che ha il simbolo ‘&’ che sarebbe la E commerciale in C chiamata col nome di: ampersand. Questo simbolo dice allo scanf() la localizzazione della memoria della variabile, ovvero dove il compilatore la salva. Infatti la ampersand sta sempre prima delle variabili e mai dentro lo scanf(). Passando alle variabili non saranno piene perchè le immetterà l’utente dalla tastiera.

NOZIONI DI MEMORIA:

Lo scanf() utilizza la memoria per inserire temporaneamente le variabili che vengono immesse dall’utente, infatti x, y e z sono delle LOCAZIONI(o POSIZIONI) nella memoria del nostro computer. Se le nostre due memorie x e y hanno già dei valori inseriti dentro, lo scanf() eliminerà le precedenti e inserirà quelle immesse nuovamente dall’utente. Perciò se uno vorrebbe caso mai sapere le due variabili precedenti non si può a meno che non si disassembli il programma prima di eseguire l’input di altre variabili! Il metodo dello scanf(), si può quasi definire come un keylogger se si inseriscono degli scanf() in remoto. Ad esempio se un hacker utilizza lo scanf() per inserire variabili char e rimandarle non su una memoria che decide il compilatore ma ben si su una memoria che decide lui forzandola tramite: cracking del software e procedure in codice assembly lo scanf() sarebbe un keylogger dato che utilizza lo sniffamento della tastiera! Beh per oggi questo è tutto ci vediamo alla prossima lezione 😉

Ciauz
By Gh1r0

Categorie:C, Programmazione

Seconda Lezione: Le variabili

14 dicembre 2009 Lascia un commento

Ciauz a tutti,

per chi non è amante della matematica oggi mi odierà xD, ma non importa. Oggi si imparano le variabili…questo settore per la matematica è molto importante, ma non soltanto per la matematica pure per altri argomenti. Di variabili ce ne sono di tre tipi: INTERE, A VIRGOLA MOBILE E CARATTERE nel C queste variabili vengono dichiarate con dei nomi specifici ovvero:

-char
-int(sotto variabili: short e long)
-float(virgola mobile), double

Ma andiamo a vedere il vero e proprio codice in C…iniziamo dalla variabile int questa variabile assume nella sua memoria solo numeri interi quindi:

#include<stdio.h>
main()
{
	int x=8; /* dichiaro che x vale 8 */
	int y=10; /* dichiaro che y vale 10 */
	int z; /* z non lo dichiaro un numero perchè la memoria sarà in seguito riempita dal risultato */
	z=x+y; /* somma di x+y */
       printf("RISULTATO:%d",z);
}

Questo listato dice praticamente che il risultato di 8+10 è uguale a 18 e stampa a video il risultato. Ma vediamo più in dettaglio il funzionamento del codice! Prima di tutto vi faccio notare che c’è la nuova “stringa di comando” ovvero la %d. Questo comando è la specifica di conversione che converte da esadecimale il numero x e y in decimale. Bene vediamo l’int x=8; che sarebbe la variabile di tipo int(quindi intera) con il valore assegnato già da noi. Passando alle variabili con virgola mobile si avrà:

#include
main()
{
	float x=3.5;
	float y=5.6;
	float z;
	z=x/y;
	printf("RISULTATO:%f\n",z);
}

Iniziamo con il dire che ora come specifica di conversione useremo la %f che è quella adatta ai numeri con virgola mobile. Poi dico anche che di variabili sia intere che con virgola mobile ci sono due tipi short e long…short per i numeri “corti” nel senso quelli con pochi bit mentre long sono quei numeri con virgola mobile o interi più alti di 8 bit. Bene il printf() qui cosa farà stamperà un numero, giusto? Beh per stampare questo numero bisogna che dopo le virgolette di chiusura mettiate la variabile che vorrete stampare cioè la z, la differenza tra lo scanf() e il printf() nell’inserire le variabili dopo le virgolette è una che useremo nello scanf() il simbolo &(che si dice e commerciale). Questo simbolo cosa fa? In pratica dice allo scanf() dove si trova la localizzazione dove è memorizzata la memoria della variabile x e y. Ma queste cose per ora non ci interessano 🙂 andiamo invece ora a vedere la variabile char ovvero la variabile per i caratteri. In questa variabile c’è una nuova libreria che dovremmo includere ovvero la

<strong>#include<ctype.h></strong>

questa libreria include i caratteri perciò il listato di questa variabile sarà:

#include<stdio.h>
#include<ctype.h>
main()
{
	char a='a';
	char b='x';
	char c;
	c=a+b;
	printf("RISULTATO:%c\n",c);
}

Questo listato ora ha come specifica di conversione la %c dato che c, sta a significare char. La stringa char è una stringa che stampa e fa operazioni con caratteri. Per ora questo è tutto alla prossima lezione…

Ciauz Gh1r0

Categorie:C, Programmazione

Prima Lezione: Introduzione al C

14 dicembre 2009 Lascia un commento

Ciauz a tutti,

oggi incominciamo a introdurre il linguaggio C. Incomincio infatti con il dire che il C è un linguaggio case-sensitive ovvero che è sensibile alle maiuscole e minuscole, un buon metodo per praticare e utilizzare a fondo la programmazione in C sarebbe avere un sistema operativo Linux o quanto meno di base Unix! Dato che come ben sappiamo la creazione del linguaggio è stata fondata su sistemi Unix. Il comando che introduciamo oggi è il printf() questo comando eseguirà una stampa a video della scritta Ciauz a tutti! voglio dire un dettaglio molto importante sul printf(), che questo comando, non fa parte del linguaggio C dopotutto anche il comando scanf() che fa parte inoltre della libreria stdio.h non fa parte del C. Con questo cosa voglio focalizzare…che comandi come printf() e scanf() se non ci fosse la libreria stdio.h, non verrebbero riconosciuti dal compilatore, infatti per questo lavoro c’è il linker. Il linker è un “terminatore” ovvero che dopo che il compilatore ha terminato di compilare e correggere tutto il codice passa le ultime cose al linker, il quale finisce il lavoro. Ma andando avanti con la spiegazione il codice per stampare una scritta a video è il seguente:

#include<stdio.h> /* include la libreria stdio */
main() /* funzione principale di tutto il programma */
{
	printf("Ciauz a tutti\n"); /* stampa della scritta */
}

Bene dopo aver visto il codice, naturalmente i newbie si chiederanno che sono tutte quelle stringhe di codice incomprensibili 😛 ora infatti vi spiegherò riga per riga tutti i comandi. L’#include è la libreria standard del preprocessore che esegue(come prima detto) il compito di includere nel codice e programma le “dll” dell’input/output. La funzione main() è la funzione principale di tutto il programma, dato che senza di essa il software non potrà girare. I simboli uniti di /* e */ (‘/’ slash) sono dei commenti i commenti servono per far chiarimenti al programmatore dello scopo del programma e in caso futuro di chi legge il programma. I commenti non faranno eseguire al compilatore nessuna operazione dato che sono solo delle note e perciò il compilatore le darà come spazio bianco. Mentre il ‘;’ bisogna inserirlo al fine di ogni stringa. Questo simbolo fa si che il compilatore capisca che l’istruzione precedente è finita e ne incomincia una nuova. Infine il comando \n a cosa serve? Beh semplice serve per mandare a capo il testo 🙂 questo comando si chiama comando di escape o comando di fuga. Di questo comando fuga non esiste solo il \n che è praticamente un escape virtuale ma esiste anche \t che sarebbe il tab nella tastiera il \a che fa suonare il cicalino del computer(per chi cel’ha naturale), \\ questo comando invece inserisce un backslash(ovvero ‘\’) in una stringa poi in ultimo c’è il \” che inserisce le virgolette in una stringa.

COMPILAZIONE E ESECUZIONE PROGRAMMA:

Nei sistemi operativi linux per compilare un programma si usa il compilatore GCC. Questo compilatore è in dotazione con tutti i sistemi Linux e per compilare un file si deve andare a digitare su terminale la stringa:

gcc nomeprogramma.c

Così che il programma compilando si trasforma in eseguibile(naturalmente non .exe) avendo fatto ciò si digita la stringa per stampare il programma ovvero quella che fa il running del software ovvero l’esegui…Questo comando è:

./a.out nomeprogramma.c

Bene detto ciò vi dico che la lezione per oggi è finita, ci vedremo alla prossima lezione…Mi raccomando studiate e fate esempi.

Ciauz a tutti

By Gh1r0

Categorie:C, Programmazione