SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Laboratorio di informatica
      Ingegneria Chimica


        Esercitazione 1




       27 Febbraio 2012
•Ciclo di vita di un programma
                                          L’editor crea il codice
Scrittura             Editor       DISK   sorgente

Pre-elaborazione                          Pre-eleborazione del
                   Preprocessore   DISK   codice sorgente

                                          Il compilatore crea il
Compilazione        Compilatore    DISK   codice oggetto

                                          Il linker crea il codice
Collegamento          Linker       DISK   eseguibile collegando
                                          codice oggetto e librerie

                                   DISK   Il loader carica il codice
Caricamento           Loader              eseguibile in memoria
                                          primaria (RAM)

                                   RAM    La CPU esegue le singole
Esecuzione                CPU             istruzioni
•Ambiente di Sviluppo

Programmatore          Editor      File Sorgente



Errori di Sintassi   Compilatore   File Oggetto




Errori di Linking      Linker      File Eseguibile


Errori Run Time
Errori Logici         Debugger
Primo passo

       user id: studente 16

       password:
1) Dal DESKTOP cliccare su:
          ESERCITAZIONI

2) Andare nella cartella:
          Informatica Chimica

3) Copiare il materiale
Cliccare sull’icona “DEV C++”

e …. si comincia ….
DevCpp: creare nuovo file sorgente

• selezionare FILE->NEW->SOURCE
DevCpp: scrivere il codice sorgente
• usare editor
DevCpp: salvare il file sorgente
Salvare il file sorgente
•    Durante la scrittura del file sorgente si deve trasferire
     il file da memoria volatile (memoria principale) a memoria
     non volatile (disco)
•    Due concetti fondamentali:
    1. Posizione del file (nella memoria secondaria su cui
         viene salvato)
           A:                           (floppy)
           C:cartella                  (hard-disk)
           F:cartella                  (pen-drive)
    2. Nome del file (composto normalmente da due parti
       separate da un punto)
       •   Il nome
       •   L’estensione: caratterizza il tipo di dati contenuti nel file,
           pippo.c è un file contenente codice C.
    Esempio:
           pippo.c       mscalc.exe       autoexec.bat
DevCpp: compilare ed eseguire
• compilare ed eseguire il programma
•La funzione main
• Un programma C deve contenere sempre una funzione
  speciale, detta main che indica dove inizia il programma
• Le istruzioni specificate in una funzione sono eseguite
  quando la funzione viene attivata
• La funzione main è attivata dal sistema operativo quando si
  richiede l’esecuzione del programma.
• Le altre funzioni sono attivate “dall’interno” del programma,
  mediante un’istruzione di chiamata di funzione
•Stampa di una linea di testo (1)
      /* Primo programma in C */
      #include <stdio.h>
      #include <stdlib.h>
         int main()
         {
            printf( "Primo programma in C!n" );
            system( "PAUSE" );
            return 0;
         }
      Primo programma in C!
      Premere un tasto per continuare...



• Il testo compreso tra /* e */ è un commento ed è ignorato
  dal compilatore
•Stampa di una linea di testo (2)
#include direttiva per il pre-processore: specifica di caricare il
contenuto di un file
<stdio.h> contiene la dichiarazione di printf( ) e delle
funzioni della libreria standard del C per input/ output
<stdlib.h> contiene la dichiarazione di system( ) e di altre
funzioni della libreria standard del C
Un programma C consiste di moduli o funzioni
     – funzioni create dal programmatore stesso
     – funzioni della libreria standard del C
Le funzioni della libreria sono progettate con grande attenzione
all’efficienza
•Stampare di una linea di testo (3)
• int main()
   – I programmi in C contengono una o più funzioni, una di
     queste deve essere main()
   – I nomi di funzioni sono seguiti da parentesi
   – int indica che la funzione restituisce un valore intero (nel
     caso del main, questo valore è restituito al sistema
     operativo, che normalmente interpreta “0” come
     “esecuzione corretta”)
   – Le parentesi graffe {} delimitano il corpo della funzione,
     ovvero l’insieme delle istruzioni eseguite alla sua chiamata
•Stampa di una linea di testo (4)
• printf("Primo programma in C!n" );
   – Istruzione che produce la stampa (visualizzazione su
     schermo) della frase: Primo programma in C!
   – Termina, come ogni istruzione, con un punto e virgola
   – n specifica che la prossima stampa dovrà essere eseguita
     su una nuova linea

• system("PAUSE" );
   – Blocca il sistema fino a che non viene premuto un tasto
     (permettendoci di vedere l’output per il tempo desiderato)
   – L’ interpretazione di questa istruzione dipende dall’ambiente
     in cui il programma viene eseguito

• return 0;
   – Specifica il valore che la funzione deve restituire
La nozione di variabile
• Le variabili sono un’astrazione del concetto di
  cella di memoria
• Una variabile è caratterizzata (principalmente)
  da:
   – nome logico (deve iniziare con una lettera o
     “underscore” _ e non deve essere una parola chiave!)
   – valore
   – tipo: Specifica le proprietà della variabile, in termini di
     valori che può assumere e di operazioni ammissibili
     sulla variabile. Il tipo consente di verificare in fase di
     compilazione la correttezza dell’uso della variabile
• Prima di essere usata una variabile deve essere
  dichiarata
• Una variabile assume un valore a seguito di
  un’istruzione di assegnamento
L’istruzione di assegnamento

• La forma generale (sintassi) di un assegnamento è
                <variabile>=<espressione>
• Il significato è: “valuta il valore di <espressione> e
  poni il risultato nella cella di memoria individuata
  dall’ indirizzo di <variabilie>”
• Il termine <espressione> può essere:
   – Un’ espressione semplice
       • una costante
       • il valore di una variabile
       • il valore restituito da una funzione
   – Un’espressione composta
       • composizione di espressioni mediante operatori
Operatori aritmetici
  Operazione       Operatore C    Esempio

Inversione segno        -            -15

   Addizione           +           12+2
                                  12.0 + 2
  Sottrazione           -          12 - 4
                                  14.5 – 4
 Moltiplicazione        *            4*2

   Divisione            /          7/2 (=3)
                                 7.0/2 (=3.5)
 Modulo (resto)        %            7%3
Esempi

    Prima                    Dopo

      x                       x
      ?         x=3           3



      x                        x
      3         x=x+3          6




x           y            x          y
3           3   x=x+y    6          3
Area di un rettangolo
1/* Area di un rettangolo */
2
3#include <stdio.h>
4
5int main()
6{
7    int base, altezza, area;        /* dichiarazione */                    1. Dichiarazione variabili
8
                                                                            2. Input
9    printf( “nInserisci la basen" );
10     scanf( "%d", &base );              /* leggi un intero */
11     printf( “nInserisci l’altezzan" );
12     scanf( "%d", &altezza );              /* leggi un intero */
                                                                            3. Calcolo Area
13     area = base*altezza;           /* calcolo dell’area */
14     printf( “nL’area e’ %dn", area );          /* stampa area */       4. Print
15
16     return 0;   /* indica che il programma è terminato con successo */
17 }

Inserisci la base
45                                                                          Program Output
Inserisci l’altezza
72
L’area è 3240
Area di un rettangolo (1)

• int base, altezza, area;

  – Dichiarazione delle variabili
     • Le variabili devono essere dichiarate prima di essere
       utilizzate
     • In questo caso si definiscono le tre variabili come intere

  – Diversi tipi di variabili, ad esempio
     • Interi      int
     • Reali       float
     • Caratteri   char
Area di un rettangolo (2)

• scanf(“%d“, &base);
  – Legge in ingresso il valore della base
     – %d specifica che il valore in ingresso è un intero (per i reali si
       usa %f, per i caratteri %c)
     – & è importante, il motivo sarà chiaro in seguito!

  – L’utente risponde allo scanf digitando il numero e
    premendo ENTER
Area di un rettangolo (3)

area = base*altezza;
   – Assegnamento di un valore ad una variabile
         a = 5;
         b = a + 3;
         g = f / 2;
   –   Alla variabile viene assegnato il valore a destra

printf("nL’area e’ %dn", area);
  – Stampa in output:
       L’area e’ <valore della variabile area>
   –   %d specifica che il valore in output è un intero (per i
       reali si usa %f, per i caratteri %c)
Esercizi

1   Scrivere un programma che chieda all’utente di
    immettere due numeri interi, ottenga i numeri
    dall’utente e visualizzi la loro somma, prodotto,
    differenza, quoziente e modulo

2   Scrivere un programma che chieda all’utente di
    immettere un numero reale che rappresenta il raggio di
    un cerchio e visualizzi il diametro, la circonferenza e
    l’area dello stesso (usare il valore 3.14159 per π)

3   Scrivere un programma che chieda all'utente di inserire
    un carattere e stampi 3 occorrenze del carattere letto
    separate da spazio

Mais conteúdo relacionado

Mais procurados

Let's give it a GO!
Let's give it a GO!Let's give it a GO!
Let's give it a GO!MarioTraetta
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)STELITANO
 
12 - Programmazione: Array dinamici e puntatori
12 - Programmazione: Array dinamici e puntatori12 - Programmazione: Array dinamici e puntatori
12 - Programmazione: Array dinamici e puntatoriMajong DevJfu
 
06 1 array_stringhe_typedef
06 1 array_stringhe_typedef06 1 array_stringhe_typedef
06 1 array_stringhe_typedefPiero Fraternali
 
Sistemi Operativi: Il kernel linux - Lezione 06
Sistemi Operativi: Il kernel linux - Lezione 06Sistemi Operativi: Il kernel linux - Lezione 06
Sistemi Operativi: Il kernel linux - Lezione 06Majong DevJfu
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio cughetta
 
13 Puntatori E Memoria Dinamica
13   Puntatori E Memoria Dinamica13   Puntatori E Memoria Dinamica
13 Puntatori E Memoria Dinamicaguest60e9511
 
11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2Majong DevJfu
 
14 - Programmazione: Stream e File
14 - Programmazione: Stream e File14 - Programmazione: Stream e File
14 - Programmazione: Stream e FileMajong DevJfu
 
Laboratorio Programmazione: In - Out variabili
Laboratorio Programmazione: In - Out variabiliLaboratorio Programmazione: In - Out variabili
Laboratorio Programmazione: In - Out variabiliMajong DevJfu
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiSergio Porcu
 

Mais procurados (20)

Let's give it a GO!
Let's give it a GO!Let's give it a GO!
Let's give it a GO!
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)
 
05 1 intro-struttura
05 1 intro-struttura05 1 intro-struttura
05 1 intro-struttura
 
2006 Py03 intermedio
2006 Py03 intermedio2006 Py03 intermedio
2006 Py03 intermedio
 
12 - Programmazione: Array dinamici e puntatori
12 - Programmazione: Array dinamici e puntatori12 - Programmazione: Array dinamici e puntatori
12 - Programmazione: Array dinamici e puntatori
 
06 1 array_stringhe_typedef
06 1 array_stringhe_typedef06 1 array_stringhe_typedef
06 1 array_stringhe_typedef
 
Sistemi Operativi: Il kernel linux - Lezione 06
Sistemi Operativi: Il kernel linux - Lezione 06Sistemi Operativi: Il kernel linux - Lezione 06
Sistemi Operativi: Il kernel linux - Lezione 06
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio c
 
Bash Scripting
Bash ScriptingBash Scripting
Bash Scripting
 
2008 python
2008 python2008 python
2008 python
 
13 Puntatori E Memoria Dinamica
13   Puntatori E Memoria Dinamica13   Puntatori E Memoria Dinamica
13 Puntatori E Memoria Dinamica
 
2006 Py02 base
2006 Py02 base2006 Py02 base
2006 Py02 base
 
Corso c++
Corso c++Corso c++
Corso c++
 
11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2
 
14 - Programmazione: Stream e File
14 - Programmazione: Stream e File14 - Programmazione: Stream e File
14 - Programmazione: Stream e File
 
Laboratorio Programmazione: In - Out variabili
Laboratorio Programmazione: In - Out variabiliLaboratorio Programmazione: In - Out variabili
Laboratorio Programmazione: In - Out variabili
 
Pillole di C++
Pillole di C++Pillole di C++
Pillole di C++
 
06 3 struct
06 3 struct06 3 struct
06 3 struct
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
 

Destaque

Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)STELITANO
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)STELITANO
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)STELITANO
 
Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012STELITANO
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)STELITANO
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)STELITANO
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)STELITANO
 
Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)STELITANO
 

Destaque (9)

Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)
 
Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)
 
Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)
 
الدقي
الدقيالدقي
الدقي
 

Semelhante a Esercitazione 1 (27 febbraio 2012)

[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...UltraUploader
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Marcello Missiroli
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 
Analizzatori di programmi in C
Analizzatori di programmi in CAnalizzatori di programmi in C
Analizzatori di programmi in CBoymix81
 
Lezione 4: I tool Ant e Subversion
Lezione 4: I tool Ant e SubversionLezione 4: I tool Ant e Subversion
Lezione 4: I tool Ant e SubversionAndrea Della Corte
 
Capitolo 7 elementi di programmazione c-c++
Capitolo 7   elementi di programmazione  c-c++Capitolo 7   elementi di programmazione  c-c++
Capitolo 7 elementi di programmazione c-c++Giovanni Della Lunga
 
Lucidi relativi al DVD di Programmazione in C
Lucidi relativi al DVD di Programmazione in CLucidi relativi al DVD di Programmazione in C
Lucidi relativi al DVD di Programmazione in CFulvio Corno
 
What is new in C# 2018
What is new in C# 2018What is new in C# 2018
What is new in C# 2018Marco Parenzan
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchMajong DevJfu
 
Introduzione a TypeScript
Introduzione a TypeScriptIntroduzione a TypeScript
Introduzione a TypeScriptSinergia Totale
 

Semelhante a Esercitazione 1 (27 febbraio 2012) (20)

Bash intro
Bash introBash intro
Bash intro
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
 
La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
 
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 
Vb.Net
Vb.NetVb.Net
Vb.Net
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
Analizzatori di programmi in C
Analizzatori di programmi in CAnalizzatori di programmi in C
Analizzatori di programmi in C
 
Lezione 4: I tool Ant e Subversion
Lezione 4: I tool Ant e SubversionLezione 4: I tool Ant e Subversion
Lezione 4: I tool Ant e Subversion
 
GNU Linux Programming introduction
GNU Linux Programming introductionGNU Linux Programming introduction
GNU Linux Programming introduction
 
Applicazioni native in java
Applicazioni native in javaApplicazioni native in java
Applicazioni native in java
 
Rest sdk
Rest sdkRest sdk
Rest sdk
 
Capitolo 7 elementi di programmazione c-c++
Capitolo 7   elementi di programmazione  c-c++Capitolo 7   elementi di programmazione  c-c++
Capitolo 7 elementi di programmazione c-c++
 
Lucidi relativi al DVD di Programmazione in C
Lucidi relativi al DVD di Programmazione in CLucidi relativi al DVD di Programmazione in C
Lucidi relativi al DVD di Programmazione in C
 
What is new in C# 2018
What is new in C# 2018What is new in C# 2018
What is new in C# 2018
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switch
 
R Vectors
R VectorsR Vectors
R Vectors
 
Introduzione a TypeScript
Introduzione a TypeScriptIntroduzione a TypeScript
Introduzione a TypeScript
 

Mais de STELITANO

Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012STELITANO
 
Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012STELITANO
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisiSTELITANO
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)STELITANO
 
Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteSTELITANO
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteSTELITANO
 
Lezione 19 (18 aprile 2012) ricerca
Lezione 19 (18 aprile 2012)   ricercaLezione 19 (18 aprile 2012)   ricerca
Lezione 19 (18 aprile 2012) ricercaSTELITANO
 
Lezione 18 (18 aprile 2012) ordinamenti
Lezione 18 (18 aprile 2012)   ordinamentiLezione 18 (18 aprile 2012)   ordinamenti
Lezione 18 (18 aprile 2012) ordinamentiSTELITANO
 
Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)STELITANO
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)STELITANO
 
Lezione 12 (28 marzo 2012) puntatori vettori
Lezione 12 (28 marzo 2012) puntatori   vettoriLezione 12 (28 marzo 2012) puntatori   vettori
Lezione 12 (28 marzo 2012) puntatori vettoriSTELITANO
 
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni   memoria - puntatoriLezione 12 (28 marzo 2012) funzioni   memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni memoria - puntatoriSTELITANO
 
Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012STELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 26 marzo 2012STELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)STELITANO
 
Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3STELITANO
 
Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2STELITANO
 

Mais de STELITANO (20)

Risultati
RisultatiRisultati
Risultati
 
Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012
 
Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisi
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
 
Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parte
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parte
 
Lezione 19 (18 aprile 2012) ricerca
Lezione 19 (18 aprile 2012)   ricercaLezione 19 (18 aprile 2012)   ricerca
Lezione 19 (18 aprile 2012) ricerca
 
Lezione 18 (18 aprile 2012) ordinamenti
Lezione 18 (18 aprile 2012)   ordinamentiLezione 18 (18 aprile 2012)   ordinamenti
Lezione 18 (18 aprile 2012) ordinamenti
 
Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)
 
Lezione 12 (28 marzo 2012) puntatori vettori
Lezione 12 (28 marzo 2012) puntatori   vettoriLezione 12 (28 marzo 2012) puntatori   vettori
Lezione 12 (28 marzo 2012) puntatori vettori
 
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni   memoria - puntatoriLezione 12 (28 marzo 2012) funzioni   memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
 
Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 26 marzo 2012
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)
 
Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3
 
Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2
 

Esercitazione 1 (27 febbraio 2012)

  • 1. Laboratorio di informatica Ingegneria Chimica Esercitazione 1 27 Febbraio 2012
  • 2. •Ciclo di vita di un programma L’editor crea il codice Scrittura Editor DISK sorgente Pre-elaborazione Pre-eleborazione del Preprocessore DISK codice sorgente Il compilatore crea il Compilazione Compilatore DISK codice oggetto Il linker crea il codice Collegamento Linker DISK eseguibile collegando codice oggetto e librerie DISK Il loader carica il codice Caricamento Loader eseguibile in memoria primaria (RAM) RAM La CPU esegue le singole Esecuzione CPU istruzioni
  • 3. •Ambiente di Sviluppo Programmatore Editor File Sorgente Errori di Sintassi Compilatore File Oggetto Errori di Linking Linker File Eseguibile Errori Run Time Errori Logici Debugger
  • 4. Primo passo user id: studente 16 password:
  • 5. 1) Dal DESKTOP cliccare su: ESERCITAZIONI 2) Andare nella cartella: Informatica Chimica 3) Copiare il materiale
  • 6. Cliccare sull’icona “DEV C++” e …. si comincia ….
  • 7. DevCpp: creare nuovo file sorgente • selezionare FILE->NEW->SOURCE
  • 8. DevCpp: scrivere il codice sorgente • usare editor
  • 9. DevCpp: salvare il file sorgente
  • 10. Salvare il file sorgente • Durante la scrittura del file sorgente si deve trasferire il file da memoria volatile (memoria principale) a memoria non volatile (disco) • Due concetti fondamentali: 1. Posizione del file (nella memoria secondaria su cui viene salvato) A: (floppy) C:cartella (hard-disk) F:cartella (pen-drive) 2. Nome del file (composto normalmente da due parti separate da un punto) • Il nome • L’estensione: caratterizza il tipo di dati contenuti nel file, pippo.c è un file contenente codice C. Esempio: pippo.c mscalc.exe autoexec.bat
  • 11. DevCpp: compilare ed eseguire • compilare ed eseguire il programma
  • 12. •La funzione main • Un programma C deve contenere sempre una funzione speciale, detta main che indica dove inizia il programma • Le istruzioni specificate in una funzione sono eseguite quando la funzione viene attivata • La funzione main è attivata dal sistema operativo quando si richiede l’esecuzione del programma. • Le altre funzioni sono attivate “dall’interno” del programma, mediante un’istruzione di chiamata di funzione
  • 13. •Stampa di una linea di testo (1) /* Primo programma in C */ #include <stdio.h> #include <stdlib.h> int main() { printf( "Primo programma in C!n" ); system( "PAUSE" ); return 0; } Primo programma in C! Premere un tasto per continuare... • Il testo compreso tra /* e */ è un commento ed è ignorato dal compilatore
  • 14. •Stampa di una linea di testo (2) #include direttiva per il pre-processore: specifica di caricare il contenuto di un file <stdio.h> contiene la dichiarazione di printf( ) e delle funzioni della libreria standard del C per input/ output <stdlib.h> contiene la dichiarazione di system( ) e di altre funzioni della libreria standard del C Un programma C consiste di moduli o funzioni – funzioni create dal programmatore stesso – funzioni della libreria standard del C Le funzioni della libreria sono progettate con grande attenzione all’efficienza
  • 15. •Stampare di una linea di testo (3) • int main() – I programmi in C contengono una o più funzioni, una di queste deve essere main() – I nomi di funzioni sono seguiti da parentesi – int indica che la funzione restituisce un valore intero (nel caso del main, questo valore è restituito al sistema operativo, che normalmente interpreta “0” come “esecuzione corretta”) – Le parentesi graffe {} delimitano il corpo della funzione, ovvero l’insieme delle istruzioni eseguite alla sua chiamata
  • 16. •Stampa di una linea di testo (4) • printf("Primo programma in C!n" ); – Istruzione che produce la stampa (visualizzazione su schermo) della frase: Primo programma in C! – Termina, come ogni istruzione, con un punto e virgola – n specifica che la prossima stampa dovrà essere eseguita su una nuova linea • system("PAUSE" ); – Blocca il sistema fino a che non viene premuto un tasto (permettendoci di vedere l’output per il tempo desiderato) – L’ interpretazione di questa istruzione dipende dall’ambiente in cui il programma viene eseguito • return 0; – Specifica il valore che la funzione deve restituire
  • 17. La nozione di variabile • Le variabili sono un’astrazione del concetto di cella di memoria • Una variabile è caratterizzata (principalmente) da: – nome logico (deve iniziare con una lettera o “underscore” _ e non deve essere una parola chiave!) – valore – tipo: Specifica le proprietà della variabile, in termini di valori che può assumere e di operazioni ammissibili sulla variabile. Il tipo consente di verificare in fase di compilazione la correttezza dell’uso della variabile • Prima di essere usata una variabile deve essere dichiarata • Una variabile assume un valore a seguito di un’istruzione di assegnamento
  • 18. L’istruzione di assegnamento • La forma generale (sintassi) di un assegnamento è <variabile>=<espressione> • Il significato è: “valuta il valore di <espressione> e poni il risultato nella cella di memoria individuata dall’ indirizzo di <variabilie>” • Il termine <espressione> può essere: – Un’ espressione semplice • una costante • il valore di una variabile • il valore restituito da una funzione – Un’espressione composta • composizione di espressioni mediante operatori
  • 19. Operatori aritmetici Operazione Operatore C Esempio Inversione segno - -15 Addizione + 12+2 12.0 + 2 Sottrazione - 12 - 4 14.5 – 4 Moltiplicazione * 4*2 Divisione / 7/2 (=3) 7.0/2 (=3.5) Modulo (resto) % 7%3
  • 20. Esempi Prima Dopo x x ? x=3 3 x x 3 x=x+3 6 x y x y 3 3 x=x+y 6 3
  • 21. Area di un rettangolo 1/* Area di un rettangolo */ 2 3#include <stdio.h> 4 5int main() 6{ 7 int base, altezza, area; /* dichiarazione */ 1. Dichiarazione variabili 8 2. Input 9 printf( “nInserisci la basen" ); 10 scanf( "%d", &base ); /* leggi un intero */ 11 printf( “nInserisci l’altezzan" ); 12 scanf( "%d", &altezza ); /* leggi un intero */ 3. Calcolo Area 13 area = base*altezza; /* calcolo dell’area */ 14 printf( “nL’area e’ %dn", area ); /* stampa area */ 4. Print 15 16 return 0; /* indica che il programma è terminato con successo */ 17 } Inserisci la base 45 Program Output Inserisci l’altezza 72 L’area è 3240
  • 22. Area di un rettangolo (1) • int base, altezza, area; – Dichiarazione delle variabili • Le variabili devono essere dichiarate prima di essere utilizzate • In questo caso si definiscono le tre variabili come intere – Diversi tipi di variabili, ad esempio • Interi int • Reali float • Caratteri char
  • 23. Area di un rettangolo (2) • scanf(“%d“, &base); – Legge in ingresso il valore della base – %d specifica che il valore in ingresso è un intero (per i reali si usa %f, per i caratteri %c) – & è importante, il motivo sarà chiaro in seguito! – L’utente risponde allo scanf digitando il numero e premendo ENTER
  • 24. Area di un rettangolo (3) area = base*altezza; – Assegnamento di un valore ad una variabile a = 5; b = a + 3; g = f / 2; – Alla variabile viene assegnato il valore a destra printf("nL’area e’ %dn", area); – Stampa in output: L’area e’ <valore della variabile area> – %d specifica che il valore in output è un intero (per i reali si usa %f, per i caratteri %c)
  • 25. Esercizi 1 Scrivere un programma che chieda all’utente di immettere due numeri interi, ottenga i numeri dall’utente e visualizzi la loro somma, prodotto, differenza, quoziente e modulo 2 Scrivere un programma che chieda all’utente di immettere un numero reale che rappresenta il raggio di un cerchio e visualizzi il diametro, la circonferenza e l’area dello stesso (usare il valore 3.14159 per π) 3 Scrivere un programma che chieda all'utente di inserire un carattere e stampi 3 occorrenze del carattere letto separate da spazio