Conoscere gli algoritmi e i linguaggi di programmazione: una presentazione

Slide di scuola superiore sull'introduzione agli algoritmi e ai linguaggi di programmazione. Il Pdf, di Informatica, illustra i concetti fondamentali attraverso esempi pratici come la macchina del caffè e la calcolatrice, fornendo uno schema generale del funzionamento dei sistemi di elaborazione.

Mostra di più

42 pagine

Unità di apprendimento
Lezione 1
Conoscere gli algoritmi
e i linguaggi

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

Unità di apprendimento

Lezione 1: Conoscere gli algoritmi e i linguaggi

In questa lezione impareremo:

  • cos'è un problema
  • come affrontarlo
  • come descrivere l'algoritmo risolutivo utilizzando i diagrammi a blocchi

Mappa dei saperi essenziali

didattica inclusiva situazione reale fisica matematica economia scienze altre discipline

1 pongono un si ricerca problema algoritmo linguaggio di codifica mediante soluzione si definisce analisi grafico testuale si individua la che porta alla strategia FLOW CHART LINGUAGGIO DI PROGRAMMAZIONE

I problemi e la loro soluzione

  • I| PC è una macchina complessa in grado di eseguire milioni di istruzioni al secondo.
  • L'insieme di queste istruzioni prende il nome di programma.
  • Ogni singola istruzione deve essere scritta secondo rigorose regole (sintassi) affinché l'elaboratore possa comprenderla correttamente

DATI INIZIALI PROGRAMMA DATI FINALI

Il programma e il linguaggio di programmazione

  • Il programma viene scritto in un linguaggio di programmazione costituito da un insieme di regole sintattiche.
  • Queste regole forniscono al calcolatore le istruzioni necessarie per portare a termine un determinato compito.
  • Il linguaggio di programmazione usato dal programmatore è noto anche come linguaggio ad alto livello

Linguaggio ad alto e basso livello

  • E' molto lontano dal codice binario linguaggio a basso livello, cioè dal formato dei comandi che un PC è in grado di eseguire.
  • Affinché l'elaboratore sia in grado di comprenderlo, è necessario che venga effettuata una traduzione da un linguaggio all'altro.

La base della scrittura di un programma: il problema

  • Alla base della scrittura di un programma c'è l'esigenza di risolvere un problema.
  • La definizione di problema è la seguente: "Situazione difficile che si deve affrontare e risolvere e che presenta soluzioni alternative".
  • Per essere risolto, un problema deve essere innanzitutto compreso.
  • La comprensione passa attraverso una fase di analisi, detta "studio della situazione reale" o, appunto, "fase di analisi".

La fase di analisi e la soluzione

  • La comprensione passa attraverso lo "studio della situazione reale": la fase di analisi.
  • Si parte quindi dal problema per arrivare al programma individuando la soluzione: questo è il principale compito del programmatore

L'importanza dell'analisi e della comprensione

  • Sia nei problemi molto semplici fino a problemi complessi è sempre la fase di analisi e di comprensione che ci consente di giungere alla soluzione.
  • Soltanto quando il problema è stato analizzato e compreso e se ne è trovata la soluzione il programmatore può passare alla scrittura del programma vero e proprio.

Il ruolo del programmatore

  • Il programmatore:
  • dapprima si pone una serie di domande necessarie proprio per avere gli elementi della conoscenza del problema;
  • successivamente può iniziare il lavoro di progetto per l'"individuazione di un algoritmo" risolutivo.

Ricerca della soluzione e strategia risolutiva

  • Il primo passo è quello di capire che cosa si deve risolvere.
  • Quindi occorre ricercare la soluzione individuando come risolvere il problema (individuazione della strategia risolutiva).

il problema l'idea il programma

L'analisi sistematica del problema

  • L'analisi consiste nell'affrontare in modo sistematico il problema, studiando i vari aspetti della sua formulazione.
  • Occorre preliminarmente delimitare con precisione l'area di interesse, ricordando che più ampia è la portata del problema da risolvere, maggiori diventano le complessità da affrontare sul piano concettuale, progettistico e operativo.

Comprensione del problema: obiettivi, regole e dati

  • Per una corretta comprensione del problema è necessario:
  • evidenziare
  • reali obiettivi del problema;
  • le regole;
  • i dati espliciti e impliciti;
  • eliminare
  • i dettagli inutili e ambigui.

Metodi per affrontare i problemi

  • I metodi per affrontare i problemi si basano su:
  • l'utilizzo dell'esperienza passata:
  • somiglianza con altri problemi noti;
  • analogia con altri problemi risolti;
  • la scomposizione dei problemi in sottoproblemi;
  • la conoscenza dell'argomento;
  • il procedimento per tentativi.

Strumenti a disposizione del progettista

  • gli strumenti a disposizione del progettista sono molteplici;
  • ogni strumento deve sempre essere integrato e confrontato con l'esperienza e le abilità creative proprie del progettista per riuscire a dare vita alla soluzione del problema.

Strumenti per la soluzione dei problemi

  • Tra gli strumenti ricordiamo:
  • le conoscenze di matematica e algebra;
  • l'intuito;
  • la logica e il ragionamento deduttivo/induttivo;
  • la fantasia e l'ingegno.

Strategia risolutiva e algoritmo

  • Una volta individuata la strategia risolutiva si scrivono le singole istruzioni da compiere, una dopo l'altra.
  • L'insieme delle operazioni che permettono di risolvere un problema prende il nome di algoritmo.

il problema l'analisi l'idea (la strategia) la soluzione (l'algoritmo)

Il concetto di algoritmo

  • Il termine algoritmo deriva dal nome del matematico arabo Al Khwarismi, vissuto nel IX secolo d.C.
  • è una "deformazione" proprio del suo nome
  • Qualcuno sostiene che tale deformazione sia imputabile a Fibonacci

L'algoritmo di Al Khwarismi

  • Al Khwarismi è ritenuto l'ideatore del procedimento che consente di effettuare il calcolo della moltiplicazione tra due numeri mediante la disposizione a cifre incolonnate
  • E' il procedimento che usiamo ancora oggi.

1200 VIET MUxaMMen Joanb.XOPe3MLI

Definizione di algoritmo

  • L'algoritmo è un insieme di azioni elementari che consentono di risolvere un problema trasformando i dati iniziali del problema stesso nel risultato, cioè nell'insieme dei dati finali che rappresentano la soluzione.
  • L'algoritmo è quindi una sequenza ordinata di passi semplici che hanno lo scopo di portare a termine un compito complesso

Caratteristiche dell'algoritmo

  • L'algoritmo deve avere le seguenti caratteristiche:
  • deve essere generale, cioè risolvere un insieme di problemi;
  • opera su dati in ingresso producendo un risultato in uscita;
  • le istruzioni sono ordinate e in numero finito;
  • le istruzioni sono chiare e interpretate in modo univoco da chi le esegue;
  • il risultato viene prodotto in un tempo finito;
  • ogni volta che viene eseguito con gli stessi dati produce gli stessi risultati.

Modalità di descrizione degli algoritmi

  • Durante la fase di progetto vengono usate due modalità per descrivere gli algoritmi:
  • il linguaggio di progetto/naturale (o pseudocodifica)
  • il diagramma a blocchi (o flow chart)

Pseudocodifica di un algoritmo

  • La descrizione di un algoritmo in linguaggio naturale prende il nome di pseudocodifica

ESEMPIO Scriviamo la pseudocodifica dell'algoritmo che ci permette di IV re essaggio col cellulare.

  1. Accendi il telefono
  2. Seleziona la app opportuna tra quelle presenti nel tuo telefono
  3. Se il numero del destinatario è presente nella tua agenda
  4. Seleziona il numero digitando il nome o facendo scorrere l'elenco
  5. Altrimenti digita il numero sulla tastiera numerica
  6. Compila il messaggio da inviare
  7. Clicca sull'icona <invio>

Generalità dell'algoritmo

  • L'algoritmo deve essere il più possibile generale, cioè contemplare tutte le possibili situazioni e non un caso specifico

Prova adesso! Scrivi la procedura per preparare e cuocere una pizza margherita par- tendo dai suoi componenti e indi- cando dettagliatamente ogni sin- gola operazione, una per riga.

  • Definizione dell'algoritmo
  • Codifica in pseudocodice

Dall'algoritmo al codice macchina

  • L'algoritmo codificato in pseudocodifica è ancora molto lontano dal programma che viene eseguito dal calcolatore o dai dispositivi digitali in generale.

Microprocessore e codice binario

  • Il microprocessore è in grado di utilizzare solo il codice binario (distinguere 0 da 1).
  • Può eseguire solo un codice composto da 0 e 1 che si chiama codice macchina.

ALGORITMO RAPPRESENTAZIONE linguaggio naturale codice binario ESECUTORE CPU

Scrittura di programmi in codice macchina

  • È possibile scrivere un programma direttamente in codice macchina.
  • Si utilizza un linguaggio specifica, il linguaggio assemblativo.
  • Codificare programmi in questo linguaggio è molto complesso dato che mette a disposizione del programmatore poche istruzioni e di basso livello.

Esempio di codice macchina e assemblativo

  • Esempio di codice eseguibile scritto in linguaggio macchina con a fianco il segmento di codice scritto in linguaggio assemblativo (anche detto assembly).

Indirizzo Opcode Data Significato 0000 1101 000000001001 IN X 0001 1101 000000001010 IN Y 0010 0000 000000001001 LOAD K 0011 0111 000000001010 COMPARE Y 0100 1001 000000000111 JUMPGT DONE 0101 1110 000000001001 OUT H 0110 1000 000000000000 JUMP LOOP 0111 1110 000000001010 OUT Y 1000 1111 000000000000 HALT 1001 0000 000000000000 CONST 0 Codice macchina Linguaggio assemblativo

Traduzione dell'algoritmo in codice macchina

  • E' percorribile un'altra strada per arrivare al codice macchina:
  • scrivere l'algoritmo in un linguaggio di programmazione di alto livello;
  • mediante uno specifico programma, il compilatore, tradurre automaticamente il "programma sorgente" scritto ad alto livello in linguaggio macchina.

l'algoritmo Linguaggio naturale linguaggio di programmazione {codice sorgente) compilatore interprete linguaggio macchina (codice binario)

Linguaggio di programmazione ad alto livello

  • Si traduce l'algoritmo in linguaggio di programmazione ad alto livello.
  • Questo è un linguaggio formale, rigoroso, composto da un insieme di regole lessicali e sintattiche molto ridotte e schematizzate in numero.
  • Devono essere sufficienti per poter descrivere in modo non ambiguo le istruzioni che il calcolatore deve eseguire

Diversità dei linguaggi di programmazione

  • Esistono molteplici linguaggi di programmazione, diversi tra loro per:
  • metodologia e filosofia adottata (paradigma);
  • complessità e numero di istruzioni;
  • settore e ambito di applicazione

Esempi di linguaggi di programmazione

  • Tra tutti ricordiamo solamente:
  • il linguaggio Pascal, elaborato nel 1968 dal professor Wirth del Politecnico di Zurigo, che è tutt'oggi il linguaggio più diffuso e utilizzato per affrontare lo studio della programmazione;
  • il linguaggio C, messo a punto da Dennis Ritchie per implementare i primi sistemi operativi negli anni Settanta, che è il linguaggio di riferimento sia per i programmatori "più esperti".

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.