LaRosa-fdi1-06.pdf

Document Sample
LaRosa-fdi1-06.pdf Powered By Docstoc
					Università degli Studi di Messina
Facoltà di Ingegneria
                                    Programmazione




Corso di Fondamenti di Informatica I 
         Fondamenti di Informatica I
     CdL Ingegneria Elettronica 
            A.A. 2006/07




                         Ing. Francesco La Rosa
Compito del Programmatore                          Programmazione



  Ideare  un  algoritmo  efficace  per  la  risoluzione  di  un  problema
  dato;

  Tradurre questo algoritmo in  istruzioni (operazioni) eseguibili da 
                                  istruzioni
  un computer tramite un linguaggio di programmazione.

  Linguaggio  di  programmazione:  linguaggio  che  usiamo  per 
  tradurre  un  algoritmo  in  una  forma  comprensibile 
  dall'elaboratore.
  dall'elaboratore
Linguaggi di Programmazione Programmazione



    Linguaggio macchina:
      
        ogni  computer  comprende  direttamente  soltanto  il  “suo” 
        linguaggio macchina;
      
        “lingua naturale” di un particolare computer;
          lingua naturale
      
        strettamente correlato all'hw del calcolatore
      
        sequenze di cifre binarie (successione di 1 e 0);
      
        linguaggi scomodi e complicati per gli esseri umani.
Linguaggi assembler                           Programmazione




  Programmazione in linguaggio macchina troppo lenta e 
  noiosa per i programmatori;

  al  posto  delle  sequenze  di  numeri,  si  inizia  ad  usare 
  delle  abbreviazioni  simili  all'inglese  per  rappresentare 
  le operazioni elementari;

  necessitano  di  programmi  traduttori  (assembler)  per 
  convertire  in  linguaggio  macchina  i  programmi  scritti 
  in linguaggio assembler.
Linguaggi assembler     Programmazione




              Esempio
Linguaggi ad alto livello                       Programmazione


 In Assembler ogni istruzione corrisponde ad una istruzione in 
                               corrisponde
LM.  Quindi  sono  necessarie  lunghe  sequenze  di  istruzioni  per 
svolgere compiti molto semplici;
vengono allora sviluppati i linguaggi ad alto livello, che hanno 

una  sintassi più simile al linguaggio umano ed hanno istruzioni
     sintassi più simile al linguaggio umano
molto potenti, ciascuna delle quali corrisponde a sequenze anche 
lunghe di istruzioni in LM.
Questo semplifica la programmazione.
        semplifica
Linguaggi ad alto livello                    Programmazione



Necessitano  di  programmi  traduttori  per  convertire  in 

linguaggio  macchina  il  codice  scritto  in  quello  ad  alto 
livello: i compilatori
Linguaggi ad alto livello                                                   Programmazione

Negli anni '50 furono inventati i primi linguaggi di programmazione ad alto livello:
       FORTRAN (FORmula TRANslator): primo “vero” linguaggio;

          BASIC, COBOL (COmmon Business Oriented Language);

       Anni '60 e '70: programmazione strutturata

          Pascal (Niklaus Wirth, 1968);

          C (Brian Kernigham e Dennis Ritchie, 1970­75)

       Anni '80 e '90, programmazione orientata agli oggetti

          C++ (Bjarne Stroustrup, 1979)

          Java (James Gosling e Patrick Naughton, 1991)

  Il  programmatore  esprime  la  sequenza  di  operazioni  da  compiere,  senza  scendere  al  livello  di 
dettaglio delle istruzioni macchina.
Linguaggio C                                          Programmazione


Linguaggio C – Breve storia
   
     evoluzione di BCPL (sviluppato nel 1967 da M. Richards) e B;
   
     sviluppato da Dennis Ritchie nei Bells Laboratories nel 1972;
   
     nel  1978  esce  il  libro  di  Kernighan  e  Ritchie  Il  linguaggio  C, 
     diventato  uno  dei  libri  di  maggior  successo  in  campo 
     informatico; 
   
     la rapida espansione del C su diversi tipi di computer ha prodotto 
     molte varianti a volte incompatibili;  
   
     nel  1989  viene  approvato  lo  standard  ANSI/ISO  9899:  1990 
                                                                   9899
     attualmente in vigore.
    Linguaggio C – Ambiente di sviluppo      Programmazione



     La fase di preparazione di un programma scritto in un 
linguaggio ad alto livello passa da diverse fasi:
                                    diverse fasi
    
      editazione;
    
      compilazione; 
    
      linking (collegamento);
    
      caricamento;
    
      esecuzione.
Realizzazione di un Programma   Programmazione
Realizzazione di un Programma   Programmazione
                               Programmazione
Panoramica sul C




   Il primo programma in C: “Hello, world!”
                             Hello, world!
Panoramica sul C                Programmazione




   Operazione di Output: funzione printf
Panoramica sul C                 Programmazione




         Variabili e tipi predefiniti 
         Variabili
Panoramica sul C                  Programmazione




       Programma  C  e file di Header (.h)
                               Header 
Panoramica sul C                  Programmazione




       Programma  C  e file di Header (.h)
                               Header 
Panoramica sul C                   Programmazione




     Input/Output formattato (scanf e printf)
                              scanf printf
                                         Programmazione
Panoramica sul C




      Flusso del programma: costrutti iterativi
Panoramica sul C
                         Programmazione




                   Flusso del programma:
                    costrutti iterativi
                   costrutti condizionali
Panoramica sul C                     Programmazione




  Input/Output formattato (scanf e printf): esempio!
                           scanf printf
Panoramica sul C
                   Programmazione




                   Funzioni 
                      & 
                   Procedure
Panoramica sul C                Programmazione




           Funzioni: definizione.
                     definizione
                   Programmazione
Panoramica sul C


                        Scope 
                         delle 
                        variabili
Panoramica sul C            Programmazione




          Strumenti utili
Panoramica sul C    Programmazione




             gVim
Panoramica sul C   Programmazione




             gcc
Panoramica sul C
                   Programmazione




             gcc
Panoramica sul C   Programmazione




             gcc
Panoramica sul C   Programmazione




             gcc
Struttura di un programma C                Programmazione



 Un Programma C consta di:

    Programma C
        
          una Global Declarative Part;
              Global Declarative Part
        
          Il Main (funzione principale);
             Main (funzione principale)
        
          Funzioni e Procedure;
        
          Commenti.
          Commenti




                                            
Struttura di un programma C                  Programmazione

   La  Global  Declarative  Part  contiene  la  dichiarazione 
delle Librerie da utilizzare in fase di compilazione e degli 
        Librerie
elementi globali (Costanti, Variabili, ecc.), visibili in tutto 
il Programma.

 Il Main consta di:
    Main
     
       una Declarative Part, che contiene la dichiarazione 
       degli elementi disponibili nel programma principale;
     
       una Executable Part, racchiusa tra I simboli  {}, che 
                                                         {}
       contiene istruzioni eseguibili;

   Le  Funzioni  e  Procedure  hanno  una  struttura  analoga  a 
quella del Main;

 Un  commento,  che  non  è  influente  dal  punto  di  vista 
                                             
esecutivo (delimitato dai simboli /* e */).
                                  /* */
                                                               Programmazione
Struttura di un programma C
         La Declarative Part del Main
            Declarative Part


     Dichiarazione di constanti:

         
              const  <Tipo>  cost1 = val1, cost2 = val2, …, costn=valn; 
              const
         
              dove:  <Tipo> ::= char | int | float| double ;

 Dichiarazione di variabili:





         
              <Tipo>   var1 = val1, var2 = val2, …, varn=valn; 


                                                                
                                                                Programmazione
Struttura di un programma C
         La Executable Part del Main
            Executable Part

 Le istruzioni sono di due tipi:

    istruzioni
        
             assegnazione; 
             assegnazione
        
             composte:
             
                Istruzione condizionale
             If (espressione) istruzione1; else istruzione2; 
             
                Istruzione ripetitiva o ciclica 
             while (espressione) istruzione;
        
              compound statement o  blocco:  costituito da una sequenza di 
              compound statement blocco
            istruzioni,  racchiusa  tra  {},  eventualmente  preceduta  da  una 
                                         {}
            parte dichiarativa.

                                                                 
                                                    Programmazione
Input/Output formattato


     #include <stdio.h>


      printf (stringa_di_controllo, elementi_da_stampare);
      printf
        
             printf("%3c%3c%3c%5d%17e%17e\n\n", c1, c2, c3, i, x, y);

  scanf (stringa_di_controllo, elementi_da_leggere);

  scanf
        
           scanf("%c%c%c%d%f%lf", &c1, &c2, &c3, &i, &x, &y);
        
            &c1: indirizzo della variabile c1.
            &c1
                                                     

				
DOCUMENT INFO