Annuncio

Collapse
No announcement yet.

Corso base Linguaggio C: 2° lezione

Collapse
X
 
  • Filter
  • Ora
  • Show
Clear All
new posts

  • Corso base Linguaggio C: 2° lezione

    Benvenuti alla seconda lezione del corso base di linguaggio C.
    Oggi vedremo come si compila un programma scritto in tale linguaggio, ed inoltre daremo una spiegazione più accurata del codice presentato nella prima lezione.
    Inanzitutto iniziamo dicendo che un programma scritto in C (come quasi tutti i linguaggi di programmazione esistenti) per poter funzionare ha bisogno di essere compilato. La fase di compilazione non è altro che prendere il file sorgente (quello scritto da noi) e trasformarlo in un formato interpretabile dalla macchina su cui il programma dovrà andare in esecuzione. I dettagli del funzionamento di un compilatore non sono inerenti a questo corso, quindi li salteremo. Se qualcuno di voi però è interessato me lo faccia sapere e magari scriverò un tutorial sulle varie fasi che portano un file sorgente ad essere trasformato in un file binario eseguibile.
    Di compilatori per linguaggio C ne esistono diversi. Per i nostri esempi può andar bene qualsiasi compilatore, visto che, come ho detto nella scorsa lezione, cercheremo di usare il più possibile lo standard internazionale ANSI. In questo corso comunque, come compilatore, useremo il Visual C++ 6.0 della Microsoft.
    Per creare un file eseguibile con questo compilatore bisogna seguire determinati passi: va prima creato un'area di progetto (che racchiuderà tutti i file che comporranno il programma futuro) dopodichè al progetto creato vanno aggiunti i singoli file che si andranno ad editare.
    Per programmi composti da un unico file (come l'esempio della scorsa lezione) questa procedura può sembrare noiosa e lunga, ma è bene abituarcisi per quando si arriverà a scrivere programmi più corposi.

    Vediamo come creare un nuovo progetto:
    Aprite Visual C++ Dopodichè dal menù in alto scegliete: File->New...
    Dalla finestra che appare scegliete Projects e di questi scegliete Win32 Console Application. Ora nella casella di testo Project name date un nome al vosto progetto (ad esempio pr1) e nella casella Location scegliete il percorso ove salvare il progetto. Infine fate click su OK.
    Scegliete "An empty project" e cliccate su Finish.Avete appena creato l'area che conterrà tutti i file del vostro progetto.
    Ora agite come prima sul menù: File->New... e scegliete l'etichetta "Files".
    Da questa finestra scegliete la voce "C++ Source File" e date un nome al file che volete editare nella casella di testo "File name". Cliccate su ok.
    Adesso siete pronti per scrivere il vostro primo programma, quindi potete riportare nella finestra bianca alla vostra destra il sorgente visto nella prima lezione.
    Una volta inserito il vostro programma potrete compilarlo e creare l'eseguibile. Siccome in realtà la creazione di un eseguibile è suddivisa in due parti (la compilazione ed il linkaggio) questa può essere fatta in una volta sola attraverso la voce di menù: Build->Build "nome del programma"
    Questo creerà all'interno dell'area di progetto da voi creata una cartella di nome Debug dove dentro troverete tra i vari files creati anche un file .exe che rappresenta il programma pronto per essere eseguito.
    Se nel codice sorgente da voi scritto dovessero esserci degli errori sintattici il compilatore se ne accorgerà e ve li segnalerà nella finestra posta in basso. Chiaramente se ci sono errori eviterà di creare il file eseguibile finale chiamandovi prima a correggerli!

    Esistono anche altri compilatori, più o meno potenti. Per questo corso un compilatore vale l'altro...ho preferito presentarvi questo in quanto oltre ad essere quello utilizzato da me trovo che sia un ottimo strumento di lavoro per creare applicazioni scritte in C. Ripeto comunque che potete utilizzare lo strumento che preferite.

    Un'ultima cosa per quanto riguarda il compilatore Visual C++: se andate nella cartella ove è stato creato il progetto noterete diversi file. Il file da aprire ogni qualvolta vorrete riprendere in mano il vostro programma sorgente è il file con estensione .dsw che contiene i riferimenti all'intero progetto creato con tutti i file sorgenti che ne fanno parte

    Dopo questa breve parentesi su come compilare un file sorgente vediamo di analizzare il programma presentato nella prima lezione. Non riscriverò l'intero sorgente per motivi di spazio, ma mi limiterò a discuterne una riga alla volta

    #include <stdio.h>
    Tutte le istruzioni che iniziano con il simbolo # sono direttive del preprocessore. Senza scendere troppo nel dettaglio va detto che la direttiva #include permette di inserire nel codice, nel punto in cui viene dichiarata, tutto il codice presente all'interno del file di intestazione specificato successivamente, in questo caso il file "stdio.h". I file di intestazione contengono prototipi di funzione e strutture dati che possono essere utilizzati nel corso del programma. Ad esempio, siccome nel nostro programma, per stampare a video la frase "Ciao mondo!" utilizziamo la funzione printf, il prototipo di questa funzione è contenuto in stdio.h. Se non avessimo incluso questo file il compilatore ci avrebbe segnalato un errore dicendo che non conosceva la funzione printf.
    Cosa sia un prototipo, comunque, lo analizzeremo in dettaglio quando vedremo le funzioni.
    Un'ultima cosa sugli include: se si vuole includere un file di intestazione standard (fornito, cioè, con il compilatore stesso) il nome va specificato tra parentesi angolari. Possiamo anche crearci noi i nostri file di intestazione: se li salviamo nella cartella "include" del compilatore manteniamo sempre le parentesi angolari, altrimenti possiamo salvarli nella stessa cartella del nostro progetto, ed in questo caso dovremo inserire il nome del file tra doppi apicini.

    int main(int argc, char *argv[])
    Come detto nella scorsa lezione, la funzione da cui parte il nostro programma deve essere ASSOLUTAMENTE chiamata main. Anche se è un po' prematuro parlare di parametri, visto che ancora non abbiamo visto come è strutturata una funzione, possiamo dire che la funzione main potrebbe prendere in input dei parametri dalla linea di comando. Questo significa che una volta creato il nostro eseguibile, se apriamo la finestra di dos da cui lo lanceremo, possiamo specificare dalla linea di comando, oltre al nome, anche delle informazioni aggiuntive che potranno essere elaborate dal nostro programma.
    I file allegati alla lezione fanno proprio questo: se lanciate il programma "lezione2" senza specificare nulla verrà stampato a video la frase "Ciao a tutti!"...se invece lanciate il programma aggiungendo il vostro nome in coda (ad esempio Diana) verrà stampato "Ciao Diana!".
    Per il momento non aggiungeremo altro a questa spiegazione, anche se, visionando il sorgente è abbastanza intuitivo come tutto questo funzioni.

    printf("Ciao mondo!\n");
    Questa è un istruzione che serve per stampare a video tutto ciò che viene specificato tra doppi apicini. In realtà, questa è una funzione che accetta come parametro in ingresso quello che vogliamo vedere stampato a video. Più avanti vedremo quanto è potente questa funzione!

    return 0;
    L'istruzione return viene utilizzata per specificare la fine di una funzione. Grazie a questa istruzione è possibile, inoltre, restituire a chi ha chiamato la funzione un valore. In questo caso la funzione "main" possiamo dire che è stata chiamata dal dos ed una volta arrivati alla fine, il nostro programma restituisce i comandi al dos tramite la return aggiungendo come parametro 0. In realtà è possibile restituire al dos un qualsiasi valore. Quando non esistevano ancora i sistemi operativi a finestra e si lavorava tutto a riga di comando, questo valore era importante per capire se c'era stato un errore nel programma oppure se era andato tutto bene (in questo caso veniva restituito il valore 0 come in questo caso). Oggi possiamo dire che il valore restituito al dos risulta essere ininfluente.

    E con questo finisce anche la seconda lezione. Se ci fossero delle cose che non sono chiare fate pure le vostre domande all'interno di questo stesso post. La prossima volta cominceremo a vedere cosa sono le variabili
    Matrix è ovunque, è intorno a noi... anche adesso, nella stanza in cui siamo... è quello che vedi quando ti affacci alla finestra o quando accendi il televisore... la avverti quando vai al lavoro, quando vai in chiesa, quando paghi le tasse... è il mondo, che ti è stato messo davanti agli occhi per nasconderti la verità!

  • #2
    [QUOTE=gattominr of gaara;584337]ma che cazzo ti ga scritto, chi pensi che gle ne freghi un fico secco a qualquno di queste cazzate.
    guarda che gente stupida che c'è in questo forum.
    QUOTE]

    Caro "amico", inanzitutto aspetto Derfel per farti bannare, visto il linguaggio ed il tono che hai e che stai utilizzando su questo forum, di certo non consentito.
    Per quanto riguarda i post, magari a te non interessa, e magari non interessano ai più...non per questo gli utenti di RDA sono degli stupidi, come tu li hai definiti. Ti dirò di più: impara a scrivere correttamente prima di dare giudizi affrettati sulla cultura di una persona...il tuo italiano, per come ti sei espresso, sicuramente non ti rende onore....
    Matrix è ovunque, è intorno a noi... anche adesso, nella stanza in cui siamo... è quello che vedi quando ti affacci alla finestra o quando accendi il televisore... la avverti quando vai al lavoro, quando vai in chiesa, quando paghi le tasse... è il mondo, che ti è stato messo davanti agli occhi per nasconderti la verità!

    Comment


    • #3
      cosa vuol dire bannare
      MIIISTERRR KENEDEEEEE KENEEDEEEe
      Tutti trucchi e soluzioni

      Comment


      • #4
        Originariamente Scritto da gattominr of gaara Visualizza Messaggio
        cosa vuol dire bannare
        "bannare" significa non permettere più ad un determinato utente di accedere al forum per un determinato periodo di tempo...
        che visto quello che hai scritto...... è sicuramente quello che meriti !!
        Il sito ufficiale del grande Tex Willer
        Xbox live: TEX WILLER 65
        Console: PS3 - Xbox360 - PS2 - Wii

        Comment


        • #5
          nooo!!!!!!!
          MIIISTERRR KENEDEEEEE KENEEDEEEe
          Tutti trucchi e soluzioni

          Comment


          • #6
            comunque ,anche se non sono interessato per cause di mancanza di tempo
            penso che sia un impegno non facile portare avanti una simile istruzione
            e mi pare una bellissima iniziativa ,ancora una volta mi complimento con diana
            e con derfel per portare avanti questo tipo di progetti formativi ,se non si e' interessati non c'e bisogno di postare ,scusatemi se vado ot,spero di non ledere nessuna regola volevo solo dimostrare la mia solidarieta'.

            bye dal vostro Ultraman di quartiere
            sigpicunisciti al fantastico team di ULTRA FRIEND'S WORLD e scoprirai che l'enimazione non e' solo "chiacchere da bar"

            Originariamente Scritto da Mizia72,27/8/2007, 22:44
            Una narrazione avvincente, che galoppa con toni misti di fantasia ed epica e che trasmette un unico chiaro messaggio: l’amore viscerale per la terra natìa di Sicilia!
            Da fiera siciliana, trovo stimolante il modo originale con cui hai percorso la crescita geografica e storica di una terra dal fascino leggendario.
            Sarebbe perfetta la collaborazione di un bravo mangaka che trasformi con disegni dai tratti titanici e apocalittici questa narrazione in cui si gustano atmosfere un po’ anacronistiche perché slegate da una cronologia temporale (si assiste infatti alla contemporanea presenza di figure mitologiche del classicismo greco, presenze dal sapore medievale e spiritualismo di fede cristiana) e che sfociano in un microcosmo variegato che delineerebbe un nuovo stile fra le serie animate:il folkfantasy!!
            Molto ardito lo stravolgimento dei miti di Scilla e Cariddi, altrettanto audace il riferimento ai Beati Paoli, misteriosi e incappucciati “giustizieri” del sedicesimo secolo qui devoti a Santa Rosalia, spettacolare la creazione del vulcano Etna nato dall’ira fiammeggiante del demone dal nome tipicamente siculo (Kalogerus!), fiabesca la figura della fata Sirunda da cui si originerà il sacro elefantino dei catanesi!! E per accontentare anche chi ama la tradizione e le chiassose feste di paese, si assiste ad un palio con cavalli dai nomi bizzarri e simpatici (Cicciopanza lo immagino un destriero alquanto traballante e flemmatico per via del sovrappeso ridondante!!
            Complimenti Ultraman, questa lettura è stato un momento di simpatico e travolgente divertimento...come vedere gli episodi completi di un originalissimo anime!!

            Comment


            • #7
              Originariamente Scritto da ULTRAMAN Visualizza Messaggio
              comunque ,anche se non sono interessato per cause di mancanza di tempo
              penso che sia un impegno non facile portare avanti una simile istruzione
              e mi pare una bellissima iniziativa ,ancora una volta mi complimento con diana
              e con derfel per portare avanti questo tipo di progetti formativi ,se non si e' interessati non c'e bisogno di postare ,scusatemi se vado ot,spero di non ledere nessuna regola volevo solo dimostrare la mia solidarieta'.

              bye dal vostro Ultraman di quartiere
              Giustissimo, e aggiungo a tex willer che appena leggo un'altra cavolata ci sar&#224; un ban senza ritorno capito gattone?
              http://img46.imageshack.us/img46/3987/userbarer7.jpg





              http://gamesurf.tiscali.it/forum/sig...gpic6655_7.gif

              Comment


              • #8
                [quote=diana05;584391]
                Originariamente Scritto da gattominr of gaara
                ma che cazzo ti ga scritto, chi pensi che gle ne freghi un fico secco a qualquno di queste cazzate.
                guarda che gente stupida che c'è in questo forum.
                QUOTE]

                Caro "amico", inanzitutto aspetto Derfel per farti bannare, visto il linguaggio ed il tono che hai e che stai utilizzando su questo forum, di certo non consentito.
                Per quanto riguarda i post, magari a te non interessa, e magari non interessano ai più...non per questo gli utenti di RDA sono degli stupidi, come tu li hai definiti. Ti dirò di più: impara a scrivere correttamente prima di dare giudizi affrettati sulla cultura di una persona...il tuo italiano, per come ti sei espresso, sicuramente non ti rende onore....
                Diana a perfettamente ragione......se non sei interessato ti prego da utente a utente di uscire da questo settore.....e andare a scassare in qualche altro forum..in rispetto di tutti gli utenti con interesse ed educazione nel forum...
                Io le mie colpe le sto ancora pagando, tu che mi dici delle tue?

                Comment


                • #9
                  Salve a tutti ho da poco iniziato a interessarmi a questo corso, ho provato varie volte a imparare da solo il linguaggio C (ho anche provato col Visual Basic, ma forse a quanto ho capito mi servono altre basi). Tutto va a meravigli capisco tutto Diana è bravissima, è tutto molto chiaro. Mi sorge però un problema quando vado a fare il programmino "Ciao mondo", non mi parte, o meglio parte ma si richiude automaticamente la finaestra di Dos. Ho pensato di aver sbagliato qualcosa allora ho provato ad avviare anche il file allegato di Diana, ma fa lo stesso. Allora sono giunto alla conclusione che ci sia qualcosa che non va nel mio PC ma non so cosa potrebbe essere. Chi mi può aiutare cortesemente, perché se non posso vedere i programmi che faccio (già partendo da quelli più elementari) che programmo a fare?
                  C'è sempre un buon motivo
                  sigpic
                  per sorridere :)

                  Comment

                  Working...
                  X