Prof. Pagani Corrado ALGORITMI

Documenti analoghi
Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Introduzione alla programmazione

Linguaggi di programmazione

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Introduzione alla programmazione strutturata

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Cos è la programmazione?

Esonero di Informatica I. Ingegneria Medica

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Programmazione in Java (I modulo)

Corso di Informatica di Base

Linguaggi di Programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

Informatica. Come si risolve un problema?

DESCRIZIONI RIGOROSE c7

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

I Linguaggi di Programmazione

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

LINGUAGGI DI ALTO LIVELLO

Linguaggi di Programmazione

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Introduzione agli Algoritmi

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI DI ALTO LIVELLO

L ELABORATORE ELETTRONICO

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Elementi di programmazione

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Lezione 6 Introduzione al C++ Mauro Piccolo

Problemi, algoritmi, calcolatore

Le basi del linguaggio Java

Il linguaggio di programmazione Python

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Come ragiona il computer. Problemi e algoritmi

Sistemi di Elaborazione delle Informazioni

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Concetti base programmazione. Antonio Gallo

CONCETTI FONDAMENTALI

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Rappresentazione degli algoritmi

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

INTRODUZIONE ALLA PROGRAMMAZIONE

Rappresentazione con i diagrammi di flusso (Flow - chart)

Sviluppo di programmi

Linguaggio C - sezione dichiarativa: costanti e variabili

LEZIONE 4. Hardware (periferiche) Software (algoritmi)

MODULO 07. La soluzione dei problemi mediante gli algoritmi

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

INFORMATICA. L informatica comprende:

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Il concetto di calcolatore e di algoritmo

Fondamenti di Informatica T-1

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Costanti e Variabili

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Primi passi col linguaggio C

Linguaggi, Traduttori e le Basi della Programmazione

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Introduzione al Linguaggio C

ALGORITMI: PROPRIETÀ FONDAMENTALI

Cosa è l Informatica?

Teoria dell Informazione

Caratteristiche di un linguaggio ad alto livello

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

4 - Tipi di dato primitivi

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Algoritmi e diagrammi di flusso versione biennio

Laboratorio di programmazione

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Concetti Introduttivi. Il Computer

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)

Unità di apprendimento 6. Dal problema al programma

LABORATORIO DI INFORMATICA

Linguaggi di programmazione

Transcript:

Prof. Pagani Corrado ALGORITMI

PRIMI APPROCCI GRAFICI ALLA PROGRAMMAZIONE Il coding (e la programmazione) è entrato con forza nella scuola anche grazie al progetto MIUR chiamato Programma il futuro (http://programmailfuturo.it/) Programma il futuro http://studio.code.org/s/20-hour L artista: http://studio.code.org/s/20-hour/stage/5/puzzle/1 La contadina: http://studio.code.org/s/20-hour/stage/9/puzzle/1

DEFINIZIONI INTRODUTTIVE PROBLEMA: situazione di difficolta' alla quale si cerca di trovare una soluzione ISTANZA DI UN PROBLEMA: un singolo problema comprensivo degli specifici dati di input CLASSE DI PROBLEMI: insieme di problemi semplici che solitamente differiscono solo per i dati di input

ISTANZA DI UN PROBLEMA O CLASSE DI UN PROBLEMA Problema specifico (istanza): Quali sono le istruzioni per calcolare la somma di 103+439? Soluzione: somma 3 con 9, scrivi 2 e porta 1 somma 3 con 0 e con 1 (il riporto), scrivi 4 e porta 0 Problema generale: Quali sono le istruzioni per calcolare la somma di due numeri interi qualsiasi? Soluzione: somma la cifra meno significava del primo addendo con la cifra meno significava del secondo addendo

PROFESSIONALITA COINVOLTE RISOLUTORE: colui che inventa il processo di risoluzione del problema processo risolutivo programmatore: colui che traduce il processo risolutivo in un linguaggio comprensibile per l esecutore elaboratore elettronico ESECUTORE: colui che esegue i passi presenti nel processo risolutivo Essere umano Elaboratore elettronico (meglio)

ALGORITMO ALGORITMO: Procedimento che consente di ottenere la risoluzione di un problema o (meglio)di una classe di problemi simili eseguendo, in un determinato ordine, un insieme finito di passi semplici (azioni, o meglio istruzioni); in informatica si intende un metodo per la soluzione di un problema adatto a essere implementato sotto forma di programma. Parte da dati di input (istanza del problema) e restituisce dati di output

ALGORITMO IMPLEMENTATO IN MODO AUTOMATICO SU UN ELABORATORE Ling. Programm. Programmatore PROGR

PROPRIETA DI UN ALGORITMO Finitezza Numero finito di istruzioni Terminazione Per ogni istanza deve terminare Determinatezza Deve sempre essere specificata l istruzione senza ambiguità Effettività L istruzione deve sempre essere ammissibile Generalità Dovrebbe essere progettato per risolvere la più grande classe di problemi possibili

LINGUAGGI LINGUAGGI NATURALI usati dai popoli x comunicare non hanno una struttura completamente rigida possono essere interpretati in + di un modo es) italiano - inglese russo LINGUAGGI FORMALI usati per comunicare con elaboratori elettronici struttura rigida ogni istruzione deve essere interpretabile in un unico modo Es) linguaggi informatici, linguaggi di programmazione, linguaggi per la rappresentazione di algoritmi

LINGUAGGI FORMALI Si dividono in Linguaggi di modellazione Diagrammi di flusso Linguaggi di programmazione Alto livello al livello del programmatore Java, vb, c++, c#. Basso livello Al livello del processore Linguaggio macchina (binario) Assembler Altri linguaggi HTML, CSS, SQL,.

TRADUZIONE DEL CODICE SORGENTE IN CODICE ESEGUIBILE Approccio Compilato Una volta compilato il programma è pronto per essere utilizzato; si necessita la ricompilazione solo se il programma è stato modificato Codice sorgente compilatore linker programma eseguibile (in linguaggio macchina) Approccio Interpretato L interprete interviene ogni volta che si richiede l esecuzione e deve essere installato sulla macchina Codice sorgente interprete Esecuzione tramite virtual machine/interprete

TIPOLOGIE DI APPLICAZIONI Applicazioni Stand Alone Console (3^ INF) Desktop con interfaccia grafica (4^ INF) Applicazioni Client Server Applicazioni WEB (5^ INF) Web Service (5^ TDP) App per dispositivi mobili (5^ TDP) Applicazioni Peer 2 Peer

RAPPRESENTAZIONE DEGLI ALGORITMI Programmazione imperativa Diagrammi a Blocchi In informatica è una rappresentazione grafica usata per descrivere un algoritmo Pseudocodice o Notazione Lineare Strutturata È un linguaggio di progetto il cui scopo è la rappresentazione di algoritmi, può essere utilizzato alternativamente al classico diagramma di flusso.

DIAGRAMMI A BLOCCHI

AMBIENTI PER DIAGRAMMI A BLOCCHI Ambienti web https://www.draw.io/ Gratuito e non richiede la registrazione https://cacoo.com/diagrams/ Ambienti Desktop Editor di testi evoluti Plugin per Eclipse Per Visual Studio..

VARIABILI Una variabile è un dato (o un insieme di dati insieme di dati) modificabili situati in una porzione di memoria (RAM) suscettibili di modifica nel corso dell'esecuzione di un programma. Una variabile è caratterizzata da un nome (identificatore) univoco (nell ambito di visibilità) che deve rispettare determinate regole dettate dal linguaggio un tipo di dati ammessi Un valore, modificabile nel corso del programma dall operazione di assegnamento

REGOLE PER I NOMI DI VARIABILI si possono usare sia lettere sia numeri (sia alcuni caratteri di punteggiatura come _), ma il primo carattere deve essere una lettera La maggior parte dei linguaggi (tra cui il C) sono case sensitive, quindi le maiuscole sono distinte dalle minuscole le parole riservate come if, int,... non possono essere usate per i nomi delle variabili Non possono contenere caratteri speciali che hanno altri significati (ad esempio operandi +,-,*,/ )

TIPI DI DATI PER LE VARIABILI Ad una variabile viene associato un tipo di dato che definisce l insieme dei valori che la variabile può assumere e (di conseguenza) l insieme delle operazioni ammesse. Tipo Descrizione Dimensione (byte) Char Singolo carattere 1 Short int N intero 2 int N intero Dipende dal compilatore Long int N intero 4 bool True / false 1 bit float N con virgola 4 double N con virgola 8 string Testo (non presente come dato primitivo in tutti i linguaggi)

ASSEGNAMENTO L operazione di assegnamento modifica il valore di una variabile (distruggendo il valore precedentemente contenuto) Variabile valore Si valuta prima l espressione a destra della freccia e poi si assegna il valore alla variabile che si trova a sinistra della freccia Esempio) A 2 A 7+4

ASSEGNAMENTO ESEMPI ED ERRORI 1 Si consideri che ogni variabile è di tipo intero. X 5 La variabile x assume il valore di 5 y 7+3 La variabile y assume il valore di 10 y z+1 La variabile z NON è assegnata ed il calcolo non è determinato z x+y+2 La variabile z assume il valore di 17 3 x 3 non è un nome di variabile y 10-z La variabile y assume il valore di -7 (4+x) 7 (4+x) è una espressione e non è un nome di variabile x x+1 La variabile x assume il valore di 6 y Y*Y Y non è y ed il suo valore è indeterminato y,z 1 y,z non è un nome di variabile

ASSEGNAMENTO CON CHAR E STRING Un singolo carattere costante di tipo char deve essere racchiuso tra apici singoli (per distinguerlo da una variabile con nome di un carattere) x e y sono variabili di tipo char x y assegna il valore di y (se c'è) alla variabile x x 'y assegno il carattere y nella variabile x Una stringa di testo costante deve essere racchiusa tra doppi apici (virgolette); il testo compreso tra virgolette non viene mai valutato dal compilatore (nomi di variabili ed operazioni non vengono svolte) var1 e var2 e y sono variabili di tipo string var1 var2 assegna il valore di var2 (se c'è) alla variabile var1 var1 cadel se la variabile cadel non esiste, non è possibile eseguire l istruzione var2 "evans" dentro la variabile var2 inserisco il testo evans var2 'cadel' non è eseguibile in quanto cadel non è un singolo carattere y ";. -/" Corretto: ad y assegno la sequenza di caratteri indicata y "(5/2)*34" Corretto: y vale la sequenza di caratteri (e non il risultato) y "" Corretto: y assume il valore di stringa vuota

ASSEGNAMENTO ESEMPI ED ERRORI 2 Si consideri che x è di tipo stringa, y e t di tipo carattere, z di tipo intero e k numero con virgola (float): x cadel x assume il testo cadel y w y è di tipo carattere, potrebbe assumere il valore w solo se fosse tra singoli apici t x una variabile di tipo carattere non può assumere un valore string t y Sarebbe ammissibile se il valore di y fosse inizializzato z 13*4-50 z assume il valore di 2 k x+y+2 x e y non sono variabili numeriche k 4 k assume il valore di 4 k k+z k assume il valore di 6 k 5.0/z k assume il valore di 2.5 evans 7 evans non è un nome di variabile ammissibile x x+1 x assume il valore stringa composto da 3 caratteri x+1 y y*y tra apici singoli ci può stare un solo carattere y a y assume il valore di un singolo carattere a

ESERCIZI DA SVOLGERE 1 Si consideri che ogni variabile è di tipo float. x 15 y 7+x y x+1 z z+y+2 3 x x 3+5-4 z 10-x (4%x) 7 x x+1 y y*y y+z 1 10 3+ 7

ESERCIZI DA SVOLGERE 2 Si consideri che x e w sono di tipo stringa, y di tipo carattere, z di tipo intero e k numero con virgola (float): x Evans y w z 3*4-10 k x+y+2 k k+3 z 5/z gatto 7 x x+1 y y*y y a w x x

TABELLA DI TRACCIA E uno strumento utilizzato dal programmatore per simulare il corretto funzionamento di un programma, riportando nelle colonne della tabella il cambiamento dei valori delle variabili dopo ogni istruzione eseguita. I X Y Z x 4; y x * 2 ; z 18 - x - y; 4 4 8 NO z <= y SI z z * 2; x x / 2; 4 8 6 4 8 12 F 2 8 12

DAB - ESERCIZI SEQUENZA 1 1. Calcolare il perimetro di un rettangolo date le misure dell'area e della base. 2. Calcolare l'area di un rettangolo date le misure del perimetro e dell'altezza. 3. Calcolare l'area di un triangolo rettangolo sapendo che un cateto è 3/5 dell'altro. 4. Calcolare il prezzo di un articolo conoscendo il prezzo base, lo sconto percentuale da applicare e l iva. 5. Di un oggetto si conosce il prezzo comprensivo dell'iva; determinarne il prezzo netto. 6. Un'automobile percorre 20 km con un litro di benzina. Calcolare la spesa necessaria a percorrere 100 km.

DAB - ESERCIZI SEQUENZA 2 7. Calcolare il successivo del doppio del quadrato di un numero. 8. Calcolare il quadrato del successivo del doppio di un numero. 9. Calcolare la differenza tra il quadrato di un numero e il numero stesso. 10. Calcolare l'area di un trapezio, conoscendo la base maggiore e sapendo che l'altezza è doppia della base minore, mentre la loro somma è uguale alla base maggiore. 11. Un rappresentante di commercio guadagna un fisso mensile di lire 1.000.000 più lire 200.000 per ogni enciclopedia venduta. Quanto guadagna al mese, sapendo che gli viene trattenuto il 18%? 12. Data l area di un rettangolo determinare il rettangolo di perimetro minimo