Corso di INFORMATICA 2 (Matematica e Applicazioni)



Похожие документы
Linguaggi e Paradigmi di Programmazione

FONDAMENTI di INFORMATICA L. Mezzalira

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

INFORMATICA 1 L. Mezzalira

Linguaggi di programmazione

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Metodologie di programmazione in Fortran 90

Corso di Informatica

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Programmi. Algoritmi scritti in un linguaggio di programmazione

Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270)

Introduzione. Informatica B. Daniele Loiacono

Lezione 8. La macchina universale

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Introduzione alla programmazione in C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Introduzione al MATLAB c Parte 2

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Linguaggi di programmazione

Algoritmi, dati e programmi

Modellazione dei dati in UML

PIANO DI LAVORO DEI DOCENTI

IL SOFTWARE SECONDO LA NORMA UNI EN ISO :2008 (IIA PARTE) 1

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Corso di Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni

Linguaggio C. Fondamenti. Struttura di un programma.

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Corso Online Analista Programmatore Microsoft

La Macchina Virtuale

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

OBIETTIVI SPECIFICI DI APPRENDIMENTO

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Elementi di Informatica

Problemi, Algoritmi e Programmi

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39


INFORMATICA GENERALE. Prof Alberto Postiglione Dipartim. Scienze della Comunicazione Univ. Salerno. Università degli Studi di Salerno

Linguaggi dinamici. Giacomo Cabri Mauro Andreolini

LICEO DELLE SCIENZE APPLICATE

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Corso di Esercitazioni di Programmazione

LINGUAGGI DI PROGRAMMAZIONE

Proff. Fabio Ciao e Raffaele Bortone

Corso Analista Programmatore Microsoft. Corso Analista Programmatore Microsoft Programma

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Informatica Generale

Introduzione ai linguaggi di programmazione

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Fasi di creazione di un programma

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Come ragiona il computer. Problemi e algoritmi

IIS D ORIA - PROGRAMMAZIONE per UFC INDICE DELLE UFC

Progettaz. e sviluppo Data Base

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

Gli algoritmi: definizioni e proprietà

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

Laboratorio di Programmazione Strutturata

Cenni sulle reti e applicazioni remote ( internet, applicazioni e servizi web )

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

DAL PROBLEMA AL PROGRAMMA

Programmazione C Massimo Callisto De Donato

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Discipline Informatiche

Piano di gestione della qualità

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

LINGUAGGI - COMPILATORI - INTERPRETI

Programmi e Oggetti Software

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Fondamenti di Informatica T1

Fondamenti di Informatica 7. Linguaggi di programmazione

SCUOLA PRIMARIA SCIENZE NATURALI E SPERIMENTALI. Competenza: 1. Comunicazione efficace Indicatore: 1.1 Comprensione

Laboratorio Matematico Informatico 2

Database. Si ringrazia Marco Bertini per le slides

Транскрипт:

Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto Pennesi

Informazioni Utili Testi consigliati A. Bellini, A. Guidi: Linguaggio C guida alla programmazione, Mc-Graw-Hill. Brian W. Kernighan, Dennis M. Ritchie: Il linguaggio C principi di programmazione e manuale di riferimento, seconda edizione, PEARSON, 2007. Paul Deitel, Harvey Deitel: Il linguaggio C Fondamenti e tecniche di programmazione, PEARSON, 2013. Slide delle lezioni. Tools di sviluppo Eclipse (https://www.eclipse.org) Microsoft visual studio 2008 o succ. Modalità dell esame Prova scritta. Prova orale. Info docenti Dr. Paolo Gaspari (paolo.gaspari@unicam.it) Dr. Pennesi Roberto (roberto.pennesi@unicam.it) Ricevimento: Plesso di Matematica

Obiettivi formativi Acquisire i fondamenti della programmazione. Conoscere linguaggio di programmazione C. Programmare in C, implementare algoritmi. Conoscere gli elementi di base del linguaggio Java. Dato un problema di bassa/media complessità essere in grado di determinare l algoritmo di risoluzione ed implementare il programma. Grazie ai concetti appresi, essere in grado di affrontare altri linguaggi di programmazione.

Introduzione Contenuti del corso Introduzione ai linguaggi di programmazione: principi fondamentali; definizioni; paradigmi di programmazione (procedurale e object-oriented); storia del linguaggio C, Java. Organizzazione di un programma in C: Hello World, descrizione struttura, commenti, case-sensitive, parole chiave, convenzioni, preprocessore, ecc. Identificatori, Variabili, Tipi, operatori ed espressioni: variabili e costanti; dichiarazioni; assegnamento; operatori aritmetici, relazionali e logici; conversioni di tipo; espressioni condizionali. Strutture di controllo: selezione (if, if-else, else-if, switch-case); iterazione (cicli for, while e do-while). Array: definizione di vettori; array monodimensionali e multidimensionali; ordinamento e ricerca; stringhe. Funzioni: definizione; passaggio di parametri; variabili esterne e static; regole di scope; header file. Puntatori: e argomenti correlati; relazione tra array e puntatori. Strutture; definizione; vettori di strutture; puntatori a strutture; liste. Input ed output: standard; accesso a file; lettura e scrittura su file. Programmazione a Oggetti: caratteristiche principali (ereditarietà, polimorfismo, ); concetto di classe; Linguaggio Java: definizione di classi, attributi e metodi; istanza di oggetti; costruttore e distruttore. Elementi di java: sintassi, strutture di controllo, tipo; lavorare con le API; esempi.

Prerequisiti Argomenti noti Cosa s intende per Informatica e cos è un Elaboratore. Bit e Byte Codifica dell informazione Basi numeriche e conversioni. Hardware e Software. Architettura dei calcolatori Modello di Von Neuman: Sistema operativo e software applicativo. Algoritmi diagrammi di flusso - pseudo codice. Cenni su Linguaggi di Programmazione.

Cosa e' la programmazione? La programmazione è l'attività di sviluppare programmi per un calcolatore. Lo scopo della scrittura di un programma è la risoluzione di un problema. Per risolvere un problema bisogna: 1. Formulare il problema in modo più o meno formale (specifica dei requisiti). 2. Capire il problema e scomporlo in parti gestibili (analisi del problema). 3. Progettare una soluzione (algoritmo). 4. Implementare la soluzione (scrittura del codice). 5. Testare la soluzione e correggere eventuali errori (verifica del programma, testing e debugging). 6. Tenere sempre aggiornato il programma (manutenzione). Un algoritmo è un procedimento formale che risolve un determinato problema attraverso un numero finito di passi. Caratteristiche principali: la sequenza di istruzioni deve essere finita (finitezza) ; la procedura deve portare ad un risultato (effettività); le istruzioni devono essere eseguibili materialmente (realizzabilità); le istruzioni devono essere espresse in modo non ambiguo (non ambiguità). Un programma è l implementazione (codifica) di un algoritmo in un linguaggio di programmazione.

Un linguaggio di programmazione è un linguaggio formale utilizzato per comunicare con un calcolatore. E costituito da un insieme di parole e di simboli e un insieme di regole per combinarli. Al pari di un qualsiasi linguaggio naturale è dotato di un lessico, di una sintassi e di una semantica ben definiti. Lessico: insieme delle regole formali per la scrittura delle parole in un linguaggio; Sintassi: insieme di regole grammaticali per definire le frasi corrette composte dalla parole del linguaggio; Semantica: significato delle frasi del linguaggio; Classificazione dei linguaggi di programmazione: I linguaggi di programmazione possono essere classificati in base al livello di astrazione dalle caratteristiche fisiche della macchina (hardware).

Linguaggio macchina Linguaggio formale che un computer è in grado di eseguire senza mediazioni o conversioni. Le istruzioni sono strettamente correlate all architettura dell elaboratore. Le istruzioni e i dati sono rappresentati da sequenze binarie. Linguaggio assembler Codice operativo operando 00000010 000000011011100 00000110 000000011111100 00000100 000000011011100 Costituisce un primo parziale passo verso la semplificazione della programmazione. Le istruzioni binarie con dei codici mnemonici più facilmente comprensibili dall uomo. Codice operativo operando Codice mnemonico 00000010 000000011011100 LOAD 220 00000110 000000011111100 SUM 252 00000100 000000011011100 MEM 220

Linguaggi di alto livello Permettono di scrivere programmi con un linguaggio più vicino a quello naturale (pensiero umano). Astrazione dalla macchina di riferimento e semplificazione della scrittura dei programmi. Consentono l utilizzo di simboli matematici e parole chiave tipiche del linguaggio naturale. Il programma (codice sorgente) deve essere tradotto in linguaggio macchina (codice oggetto). Esempi di linguaggi evoluti: Fortran, Pascal, C, Java, ecc. Evoluzione Linguaggi:

Paradigmi di programmazione: I linguaggi di programmazione si possono classificare in funzione del loro paradigma (modello) di programmazione. Non ci si riferisce ai diversi linguaggi di programmazione ( es. un linguaggio può contemplare più paradgmi di programmazione ), ma alla metodologia o all organizzazione con cui vengono creati i programmi. Paradigmi principali: Programmazione imperativa o procedurale (es. Fortran, C, Pascal). Ad oggetti (es. C++, Java). Funzionale (es. Lisp). Logica ( es. Prolog ). Programmazione Procedurale: Il problema è scomposto in sottoproblemi, che possono essere risolti in maniera semi-indipendente; cosicchè il programma è costituito da diverse funzioni (procedure o subroutines) ognuna disegnata per uno scopo. Il corpo del programma è esso stesso una funzione: main(). Note: Approccio Top/Down Strutture dati + algoritmi = programmi

Si tratta di una programmazione strutturata con l obiettivo di rendere un flusso ordinato l esecuzione dei programmi. Sono previste delle strutture di controllo (costrutti) che consentono di alterare la sequenza di esecuzione delle istruzioni che costituiscono il programma: Sequenza Selezione Iterazione ( senza uso di goto label, tipico dei programmi non strutturati, es. basic ). Sequenza: Il concetto di Blocco è essenziale per la programmazione strutturata; s intende un insieme di istruzioni con una sola entrata (inizio esecuzione) ed una sola uscita (termine esecuzione).

Selezione: Iterazione:

Compilatore & Interprete: L esecuzione di un programma, non è altro che l esecuzione sulla CPU della sequenza di istruzioni. Affinché un programma scritto in un qualsiasi linguaggio di programmazione (alto livello) sia comprensibile e quindi eseguibile da parte di un calcolatore, occorre tradurlo nel linguaggio della macchina. Interprete: traduce ed esegue il programma sorgente istruzione per istruzione. Compilatore: il programma sorgente viene convertito interamente prima di essere eseguito.

Passi necessari per creare ed eseguire un programma (ciclo di vita del software):