SlideShare a Scribd company logo
1 of 12
Download to read offline
CORSO DI
   PROGRAMMAZIONE I
          E
INFORMATICA GENERALE 1


         Lezione 1
   (Concetti fondamentali)
E’ fondamentale capire la differenza tra…


 • Specifica di un problema

 • Specifica del processo di risoluzione

 • Codifica del processo di risoluzione




Programmazione I - Paolo Valente, 2008/2009
Risoluzione di un problema
 Con questo termine si indica il processo che:
 • dato un problema
 • individuato un opportuno metodo risolutivo
 trasforma i dati iniziali nei corrispondenti risultati finali

 Sarà ovviamente necessario essere in grado di eseguire le
 operazioni previste per ottenere i dati finali




Programmazione I - Paolo Valente, 2008/2009
Algoritmo
 • In questo corso faremo riferimento alla classe di
   problemi risovibili mediante l'esecuzione di
   algoritmi

 ALGORITMO
 • “Sequenza” finita di azioni che risolve in un tempo
   finito una classe di problemi




Programmazione I - Paolo Valente, 2008/2009
Utilizzo di un elaboratore
 • Negli ultimi decenni, il progresso dell'elettronica ha
   permesso la costruzione di macchine in grado di
   manipolare informazioni in modo deterministico ed ad
   altissima velocità



                      COMPUTER



 • Possiamo utilizzarle nella risoluzione dei problemi
   precedentemente definiti?
 • Sì, purché riusciamo ad utilizzarle per eseguire
   degli algoritmi
Programmazione I - Paolo Valente, 2008/2009
Computer
 • E’ uno strumento in grado di eseguire insiemi di
      azioni (“mosse”) elementari

 • Le azioni vengono eseguite su oggetti (dati di
   ingresso) per produrre altri oggetti (dati di uscita,
   risultati)

 • L’esecuzione di azioni viene richiesta
   all’elaboratore attraverso “frasi scritte in un
   qualche linguaggio” (istruzioni)


Programmazione I - Paolo Valente, 2008/2009
Linguaggio di programmazione
 • Lo strumento attraverso il quale si riesce a far
      eseguire un algoritmo ad un calcolatore è un
      linguaggio di programmazione
 • In particolare ogni linguaggio di programmazione
   è dotato di proprie
       – sintassi
          o simboli e parole ammesse, regole
          grammaticali, ...
       – semantica
          o significato dei simboli e delle parole

       – Alcune parole designano istruzioni, ossia
         azioni da compiere
Programmazione I - Paolo Valente, 2008/2009
Programma e programmazione
 PROGRAMMA
 • Testo scritto secondo la sintassi e la semantica
   di un linguaggio di programmazione
 PROGRAMMAZIONE, CODIFICA o
 IMPLEMENTAZIONE
 • Scrittura di un algoritmo attraverso un insieme
   ordinato di frasi, appartenenti ad un linguaggio
   di programmazione, che specificano le azioni da
   compiere in modo formale interpretabile dal
   computer
 • In pratica, scrittura di un programma

Programmazione I - Paolo Valente, 2008/2009
ALGORITMO e PROGRAMMA
                    (a confronto)
• Ogni elaboratore è una macchina in grado di eseguire azioni
  elementari su dati

• L'esecuzione delle azioni elementari è richiesta
  all'elaboratore tramite istruzioni

• Le istruzioni sono espresse attraverso frasi di un opportuno
  linguaggio di programmazione

• Un programma non è altro che la formulazione testuale
  di un algoritmo in un linguaggio di programmazione


Programmazione I - Paolo Valente, 2008/2009
Esecuzione di un programma
 • L'esecuzione delle azioni nell'ordine specificato
   dall'algoritmo consente di ottenere, a partire dai
   dati di ingresso, i risultati che risolvono il problema




                             DATI                        RISULTATI
                                              Computer   OUTPUT
                             INPUT




Programmazione I - Paolo Valente, 2008/2009
Riassumendo…
                                                                     DATI




                                                                         (esecuzione)
 Formulazione                          Individuazione        Programma
 di un problema                        di un algoritmo



                                                                   RISULTATI
                        Metodo risolutivo        Linguaggio di
                           (progetto)          Programmazione
                                                   (codifica)




Programmazione I - Paolo Valente, 2008/2009
Parole chiave della lezione
 • Problema
 • Algoritmo
 • Computer
 • Programma
 • Programmazione
 • Esecuzione




Programmazione I - Paolo Valente, 2008/2009

More Related Content

What's hot

What's hot (20)

Flow chart
Flow chartFlow chart
Flow chart
 
10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati
 
T8 supporti
T8 supportiT8 supporti
T8 supporti
 
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
 
T6 codice
T6 codiceT6 codice
T6 codice
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio c
 
T2 architettura
T2 architetturaT2 architettura
T2 architettura
 
Cosa sono gli algoritmi?
Cosa sono gli algoritmi?Cosa sono gli algoritmi?
Cosa sono gli algoritmi?
 
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++
 
Pe t1 perl-intro
Pe t1 perl-introPe t1 perl-intro
Pe t1 perl-intro
 
Linguaggio C++ - Basi
Linguaggio C++ - BasiLinguaggio C++ - Basi
Linguaggio C++ - Basi
 
Lezione1 Linguaggio C
Lezione1 Linguaggio CLezione1 Linguaggio C
Lezione1 Linguaggio C
 
Pillole di programmazione in C
Pillole di programmazione in CPillole di programmazione in C
Pillole di programmazione in C
 
come costruire un algoritmo
come costruire un algoritmocome costruire un algoritmo
come costruire un algoritmo
 
Python - Primi passi
Python - Primi passi Python - Primi passi
Python - Primi passi
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
 
Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
 
Laboratorio Programmazione: In - Out variabili
Laboratorio Programmazione: In - Out variabiliLaboratorio Programmazione: In - Out variabili
Laboratorio Programmazione: In - Out variabili
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 

Similar to 01 - Programmazione: Dai Problemi ai Programmi

Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)STELITANO
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)STELITANO
 
Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)STELITANO
 
Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)Fulvio Corno
 
Code metrics
Code metricsCode metrics
Code metricsKlab
 
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Daniele Falamesca
 
Lezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareLezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareGiuseppe Cramarossa
 
Elaborazione automatica dei dati: computer e matlab
Elaborazione automatica dei dati: computer e matlabElaborazione automatica dei dati: computer e matlab
Elaborazione automatica dei dati: computer e matlabprofman
 
A static Analyzer for Finding Dynamic Programming Errors
A static Analyzer for Finding Dynamic Programming ErrorsA static Analyzer for Finding Dynamic Programming Errors
A static Analyzer for Finding Dynamic Programming ErrorsLino Possamai
 
Java Unit Testing - Introduction
Java Unit Testing - IntroductionJava Unit Testing - Introduction
Java Unit Testing - Introductionfgianneschi
 
Coding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecodingCoding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecodingAlessandro Bogliolo
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...MicheleDamian
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliStefano Leli
 
Pitch PIGREEK | Startcup Puglia 2015 | Bari
Pitch PIGREEK | Startcup Puglia 2015 | BariPitch PIGREEK | Startcup Puglia 2015 | Bari
Pitch PIGREEK | Startcup Puglia 2015 | BariStefano Franco
 
Laboratorio Programmazione: Funzioni
Laboratorio Programmazione: FunzioniLaboratorio Programmazione: Funzioni
Laboratorio Programmazione: FunzioniMajong DevJfu
 

Similar to 01 - Programmazione: Dai Problemi ai Programmi (20)

Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)
 
1 Programmazione
1   Programmazione1   Programmazione
1 Programmazione
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)
 
Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)
 
Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)
 
Code metrics
Code metricsCode metrics
Code metrics
 
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
 
Lezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareLezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del software
 
Elaborazione automatica dei dati: computer e matlab
Elaborazione automatica dei dati: computer e matlabElaborazione automatica dei dati: computer e matlab
Elaborazione automatica dei dati: computer e matlab
 
Tesi di Laurea
Tesi di LaureaTesi di Laurea
Tesi di Laurea
 
MyJOrganizer presentazione
MyJOrganizer presentazioneMyJOrganizer presentazione
MyJOrganizer presentazione
 
A static Analyzer for Finding Dynamic Programming Errors
A static Analyzer for Finding Dynamic Programming ErrorsA static Analyzer for Finding Dynamic Programming Errors
A static Analyzer for Finding Dynamic Programming Errors
 
Java Unit Testing - Introduction
Java Unit Testing - IntroductionJava Unit Testing - Introduction
Java Unit Testing - Introduction
 
Guida C++
Guida C++Guida C++
Guida C++
 
Coding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecodingCoding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecoding
 
Ti 2021 22_new
Ti 2021 22_newTi 2021 22_new
Ti 2021 22_new
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie Agili
 
Pitch PIGREEK | Startcup Puglia 2015 | Bari
Pitch PIGREEK | Startcup Puglia 2015 | BariPitch PIGREEK | Startcup Puglia 2015 | Bari
Pitch PIGREEK | Startcup Puglia 2015 | Bari
 
Laboratorio Programmazione: Funzioni
Laboratorio Programmazione: FunzioniLaboratorio Programmazione: Funzioni
Laboratorio Programmazione: Funzioni
 

More from Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

More from Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

01 - Programmazione: Dai Problemi ai Programmi

  • 1. CORSO DI PROGRAMMAZIONE I E INFORMATICA GENERALE 1 Lezione 1 (Concetti fondamentali)
  • 2. E’ fondamentale capire la differenza tra… • Specifica di un problema • Specifica del processo di risoluzione • Codifica del processo di risoluzione Programmazione I - Paolo Valente, 2008/2009
  • 3. Risoluzione di un problema Con questo termine si indica il processo che: • dato un problema • individuato un opportuno metodo risolutivo trasforma i dati iniziali nei corrispondenti risultati finali Sarà ovviamente necessario essere in grado di eseguire le operazioni previste per ottenere i dati finali Programmazione I - Paolo Valente, 2008/2009
  • 4. Algoritmo • In questo corso faremo riferimento alla classe di problemi risovibili mediante l'esecuzione di algoritmi ALGORITMO • “Sequenza” finita di azioni che risolve in un tempo finito una classe di problemi Programmazione I - Paolo Valente, 2008/2009
  • 5. Utilizzo di un elaboratore • Negli ultimi decenni, il progresso dell'elettronica ha permesso la costruzione di macchine in grado di manipolare informazioni in modo deterministico ed ad altissima velocità COMPUTER • Possiamo utilizzarle nella risoluzione dei problemi precedentemente definiti? • Sì, purché riusciamo ad utilizzarle per eseguire degli algoritmi Programmazione I - Paolo Valente, 2008/2009
  • 6. Computer • E’ uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari • Le azioni vengono eseguite su oggetti (dati di ingresso) per produrre altri oggetti (dati di uscita, risultati) • L’esecuzione di azioni viene richiesta all’elaboratore attraverso “frasi scritte in un qualche linguaggio” (istruzioni) Programmazione I - Paolo Valente, 2008/2009
  • 7. Linguaggio di programmazione • Lo strumento attraverso il quale si riesce a far eseguire un algoritmo ad un calcolatore è un linguaggio di programmazione • In particolare ogni linguaggio di programmazione è dotato di proprie – sintassi o simboli e parole ammesse, regole grammaticali, ... – semantica o significato dei simboli e delle parole – Alcune parole designano istruzioni, ossia azioni da compiere Programmazione I - Paolo Valente, 2008/2009
  • 8. Programma e programmazione PROGRAMMA • Testo scritto secondo la sintassi e la semantica di un linguaggio di programmazione PROGRAMMAZIONE, CODIFICA o IMPLEMENTAZIONE • Scrittura di un algoritmo attraverso un insieme ordinato di frasi, appartenenti ad un linguaggio di programmazione, che specificano le azioni da compiere in modo formale interpretabile dal computer • In pratica, scrittura di un programma Programmazione I - Paolo Valente, 2008/2009
  • 9. ALGORITMO e PROGRAMMA (a confronto) • Ogni elaboratore è una macchina in grado di eseguire azioni elementari su dati • L'esecuzione delle azioni elementari è richiesta all'elaboratore tramite istruzioni • Le istruzioni sono espresse attraverso frasi di un opportuno linguaggio di programmazione • Un programma non è altro che la formulazione testuale di un algoritmo in un linguaggio di programmazione Programmazione I - Paolo Valente, 2008/2009
  • 10. Esecuzione di un programma • L'esecuzione delle azioni nell'ordine specificato dall'algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema DATI RISULTATI Computer OUTPUT INPUT Programmazione I - Paolo Valente, 2008/2009
  • 11. Riassumendo… DATI (esecuzione) Formulazione Individuazione Programma di un problema di un algoritmo RISULTATI Metodo risolutivo Linguaggio di (progetto) Programmazione (codifica) Programmazione I - Paolo Valente, 2008/2009
  • 12. Parole chiave della lezione • Problema • Algoritmo • Computer • Programma • Programmazione • Esecuzione Programmazione I - Paolo Valente, 2008/2009