apple96 Inviato 15 Marzo 2012 Segnala Condividi Inviato 15 Marzo 2012 LE BASI DEL LINGUAGGIO C _PrEmEsSa_ con questa guida imparerete le basi della programmazione in linguaggio C e, quindi alla fine sarete capaci di realizzare piccole applicazioni come ad esempio una calcolatrice. _PrEpArAzIoNe_ prima di tutto dovrete dotarvi del software adatto di cui vi posterò il download: versione per windows (Dev C++): DOWNLOAD versione per mac(Xcode): DOWNLOAD Altrimenti potete scaricare "Monodeveloped" per i seguenti sistemi operativi: Mac: DOWNLOAD Windows: DOWNLOAD Ubuntu: DOWNLOAD Linux: DOWNLOAD Il sito per scaricare monodeveloped per questi ed altri S.O. lo trovate qui N.B.: Xcode è scaricabile gratuitamente direttamente dall' Mac App Store _InTrOdUzIoNe_ Un programma viene scritto tramite editor di testo che deve essere compilato per essere eseguito. Il codice sorgente viene controllato dal preprocessore che ha i seguenti compiti: 1)rimuovere eventuali commenti presenti nel sorgente; 2)interpretare speciali direttive per il preprocessore denotate da "#", come #include o #define. 3)controllare eventuali errori del codice Se tutto ciò avviene senza problemi avremo un nuovo codice sorgente "pulito" ed "espanso" che viene tradotto dal compilatore C in codice assembly. Tramite il Linker o Link editor vengono collegati tutti i file oggetto che creeranno il programma. N.B.: il linguaggio C, come il C++, sono linguaggi sensibili alle lettere maiuscole e minuscole. Con le maiuscole si scrivono le istruzioni e in maiuscolo le variabili. _InIzIo_ per velocizzare la guida e accorciarla ho fatto questo piccolo video di introduzione che potette scaricare da qua: DOWNLOAD _PrImI cOmAnDi_ In anzi tutto bisogna creare dei collegamenti con le funzioni di libreria semplicemente inserendo: #include <stdio.h> dopodiché vi troverete scritto: SCRIPT int main (int argc, const char * argv[]) { // insert code here... printf("Hello, World!\n"); return 0; } All’ interno delle parentesi graffe vanno scritte le istruzioni. N.B.: tutte le istruzioni in C e in C++ terminano con il “;â€. _OpErAtOrI mAtEmAtIcI_ * = moltiplicazione / = divisione + = addizione - = sottrazione % = fornisce il resto della divisione es. 8/2 = 2,5 (visualizzo 8:2=4) 7%3= 2,5 (visualizzo il resto 8:2=1) _OpErAtOrI lOgIcI_ = uguale > maggiore >= maggiore uguale < minore <= minore uguale != diverso == uguale uguale (per le condizioni) // or ! not _VaRiAbIlI_ le variabili, in C, si introducono con “intâ€. Affinchè il computer le riconosca bisogna esplicitare tutte le variabili che si useranno all’ inizio del programma. esistono tanti tipi di variabili, tra cui ricordiamo: %i= indica che la variabile è intera (int) %f= indica che la variabile è decimale (float) %c= indica che la variabile è un carattere (char) %s = indica una stringa (sting - definito in string.h se la memoria non mi inganna) gli "short" , "long" e "double" sono invece usati per: numero intero corto, numero intero lungo e numero reale lungo Abbiamo anche il tipo bool , che puo' assumere solo valori 0 e 1. COMMENTI E SPAZI Per introdurre nello script dei commenti o delle indicazioni si usano: /* per aprire un commento */ per chiuderlo // per aprire un commento di una riga Per inserire degli spazi o andare a capo utilizzo, invece: \n per andare a capo \t per spostarci di 1 tap PRINTF() con questa funzione possiamo stampare su schermo, quindi visualizzare dopo l’ esecuzione del programma, ciò che verra scritto all’ interno delle parentesi. dentro le parentesi si inserisce la seguente dicitura: printf("cosa visualizziamo= %tipo di variabile(i/f)",variabile che dà il risultato); _PrOgRaMmA 1_ iniziamo con un semplice programma che ci permette di calcolare l’ area di un rettangolo: eccovi lo script: SCRIPT int main() { /*indichiamo le variabili che useremo: b base, h altezza, a area*/ int b,h,a; /*esplicitiamo i valori di b e h*/ b=5; h=3; /*inseriamo la formula che dovrà applicare*/ a=b*h; /*"printf" è una funzione che ci permette di stampare su schermo ciò che viene indicato all' interno delle parentesi*/ printf("area= %i\n",a); /*dentro le "" mettiamo: cosa vogliamo vedere= %tipo di variabile(i), variabile che dà il risultato*/ /*/n significa che va a capo*/ printf("Hello, World!\n"); return 0; } quando clicchiamo su play ci comparirà la seguente schermata: area= 15 Hello, World! _EsErCiZi_ 1: calcolare il perimetro del rettangolo SCANF() questa funzione ci permette di inserire dati da tastiera. all’ interno delle parentesi inserirete: printf("%tipo di variabile",& variabile del dato)) _PrOgRaMmA 2_ calcolare l’ area del rettangolo inserendo i valori di b e h: SCRIPT int main() { int b,h,a; printf("introduci la base\t"); scanf("%i",&b); printf("introduci l' altezza\t"); scanf("%i",&h); a=b*h; printf("area= %i\n",a); printf("Hello, World!\n"); return 0; } forniamo b, h, a come variabili decimali (float): SCRIPT int main() { float b,h,a; printf("introduci la base\t"); scanf("%f",&b); printf("introduci l' altezza\t"); scanf("%f",&h); a=b*h; /*%.2f significa che il risultato sarà di tipo float e terrà 2 cifre dopo la virgola*/ printf("area= %.2f\n",a); printf("Hello, World!\n"); return 0; } _EsErCiZi_ 1: introduci da tastiera il raggio del cerchio e calcola la circonferenza e l’ area N.B.: redice quadrata -> sqrt (bisogna inserire una nuova libreria: #include <math.h>) _IF, ELSE_ Queste due funzioni significano se (if) altrimenti (else) e servono per porre delle condizioni. In generale si scrivono così: SCRIPT if(condizione)/*no ;*/ { istruzione A; istruzione B; } else { istruzione C; istruzione D; } _PrOgRaMmA 3_ Con questo programma inserendo i pezzi acquistati (pt) e il prezzo unitario (pu) calcoleremo il costo totale (ct). C’è uno sconto del 10% se si acquistano 10 pezzi: SCRIPT int main() { int pt, pu, ct; printf("inserisci i pezzi acquistati\t"); scanf("%i",&pt); printf("inserisci il prezzo unitario\t€"); scanf("%i",&pu); if(pt==10) { ct=pu*pt-((pu*pt)/100*10); } else { ct=pu*pt; } printf("prezzo= %i€",ct); } _WHILE_ Tramite questo ciclo se si verifica una certa condizione tutto ciò che viene scritto all' interno del ciclo si ripeterà fino a che la condizione non si verifichi falsa. La struttura per questo tipo di ciclo è la seguente: SCRIPT int main() { while (condizione) { istruzione/i } } _PrOgRaMmA 4_ tramite questo piccolo programma si potrà creare una semplice calcolatrice: SCRIPT int main() { int i; //poniamo la variabile per la quale si dovrà ripetere il ciclo i=1; // assegnamogli un valore while (i==1)//se "i" sarà uguale ad "1" il ciclo si ripeterà { int a,b,n,sm,d,st,m; printf("1)somma\n2)sottrazione\n3)moltiplicazione\n4)divisione"); printf("\n\ninserisci operatore\n"); scanf("%i",& n); printf("\ninserisci a\n"); scanf("%i",& a); printf("\ninserisci b\n"); scanf("%i",& b); sm=a+b; st=a-b; d=a/b; m=a*b; if(n==1) { printf("risultato= %i",sm); } if(n==2) { printf("risultato= %i",st); } if(n==3) { printf("risultato= %i",m); } else { printf("risultato= %i",d); } printf("\n\n1)ripristina\n2)fine\n"); scanf("%i",& i); //immettiamo da tastiera il valore che assumerà "i" } } _BREAK & CONTINUE_ Queste due istruzioni vengono usate all' interno di cicli e svolgono funzioni particolari. Break: esce dal ciclo anche se la condizione di ripetizione del ciclo è verificata. Continue: salta un interazione del ciclo senza interromperlo. _PrOgRaMmA 5_ Per farvi capire meglio la sottile differenza tra le due istruzioni precedentemente descritte ho realizzato questo programma: SCRIPT int main() { int i; printf("inserisci un numero da 1 a 100\n"); while (scanf("%d", &i) == 1 && i != 0) { if (i < 0) { printf("Valore non consentito"); break; /* esce dal ciclo */ } if (i > 100) { printf("Valore non consentiton"); continue; } int quadrato = i * i; printf("%d n", quadrato); printf("\ninserisci un numero da 1 a 100\n"); } } _GlI ARRAY E IL CICLO FOR_ Gli array indicano un gruppo di oggetti dello stesso tipo. In C vengono dichiarati attraverso il seguente script: int int_array[10]; oppure; float float_array[10]; oppure; char char_array[10]; N.B.: tra le parentesi quadre "[]" si mette il la cifra che identifica il numero di oggetti dello stesso tipo Una volta dichiarato un array è possibile assegnare il valore alla posizione corrispondente, richiamandola tramite l'indice, ad esempio se volessi inserire il valore 87.43 nell'array di float alla quinta posizione, basta scrivere: float_array[4] = 87.43 Mentre se volessi utilizzare il valore contenuto nella terza posizione dell'array e memorizzarlo in un'altra variabile, dovrei fare: float myvar = float_array[2]; Naturalmente un array, oltre a comprendere un gruppo ordinato di valori, può contenere valori determinati. In questo caso si indicherà così int numeri[] = { 7, 23, 4, 94, 120 }; il ciclo for, invece, è un ciclo che ogni volta che si ripete incrementa o decrementa l' indice della variabile di un certo numero e quando la variabile giunge ad un determinato valore il ciclo si ferma. Esempio: Abbiamo un gruppo di 100 elementi e vogliamo stamparli a video in modo casuale fino ad arrivare ad un numero di 100 numeri su schermo: SCRIPT int main() { int int_array[100]; //poniamo l' array di tipo intero int i; // inseriamo l' incremento del ciclo for "i" for (i=0; i<100; i++) // in questo caso "i=0" è il valore di i all' inizio "i<100" è la condizione affinchè il ciclo si ripeta "i++" è l' incremento { printf ("%d", int_array); } } N.B.: per incremento ricordo che si intende di quanto aumenta o diminuisce la variabile del ciclo for _FiNe_ Potete scaricare la guida offline in formato pdf qui ___________________________________________________________________________________</math.h></stdio.h> Link al commento Condividi su altri siti Altre opzioni di condivisione...
MacMomo Inviato 15 Marzo 2012 Segnala Condividi Inviato 15 Marzo 2012 Scusa, non vorrei sembrare impertinente o denigrare il tuo lavoro, che comunque è da elogiare, se non altro per le intenzioni, ma... Prima cosa, mi spieghi perché cavolo scrivi in QuEsTo MoDo StRaNo che non si capisce niente? Seconda cosa. Parti un po' sparato con le spiegazioni, uno che non sa niente si trova subito di fronte ad esempio gli operatori logici, senza magari sapere neanche a che servono. Inoltre proprio in questa parte ci sono già un paio di errori gravi. Il primo è che indichi il simbolo = come un operatore logico (uguale), mentre quello è un operatore di assegnazione. Tra l'altro, quello di confonderlo con == è proprio il primo errore che si fa quando si è alle prime armi, quindi se tu lo spieghi già sbagliato in partenza... cominciamo male. L'operatore OR, poi lo indichi con due slash, mentre si scrive con due barre verticali, ovvero ||. Io mi sono fermato qui a leggere, ma ti consiglio di dargli una riletta prima di pubblicarlo. Marco - Gallery MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard Link al commento Condividi su altri siti Altre opzioni di condivisione...
stevemb_94081 Inviato 15 Marzo 2012 Segnala Condividi Inviato 15 Marzo 2012 hai scritto un po' di cazzatine eh ma perchè fare una guida al C quando il C++ è molto più usato,semplice e più potente? aka stevemb http://forrst.me/stevemb Link al commento Condividi su altri siti Altre opzioni di condivisione...
J_Ares Inviato 16 Marzo 2012 Segnala Condividi Inviato 16 Marzo 2012 Ci sono un sacco di errori, devi rivederla prima di poterla pubblicare. In questo modo rischi solo di confondere e portare a vari errori chi cerca di imparare il linguaggio. il Mio Sito i miei software:--Dvd Hunter | Game Hunter | Book Hunter | Hunter Touch  MacBook Pro 15" i7  iMac Alu  iPod touch 4° Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.