Sei sulla pagina 1di 13

!

alvatore Cuomo Prolusione


Lezione n. Parole chiave:

Algoritmo" Esecutore

In#ormatica

Corso di Laurea:

Insegnamento:
Programmazione II" modulo di La$oratorio salvatore.cuomo%unina. it

Email Docente:

A.A. 2009-20 0

Introduzione al corso 2&2


Contatti con il docente, materiale didattico integrativo, informazioni ufficiali sul corso: http://www.docenti.unina.it/salvatore.cuomo http://www.dma.unina.it/~cuomo Email: salvatore.cuomo@unina.it Testi consigliati: :: A. 'urli" (. (iunta" (. Laccetti" '. )izzardi * Laboratorio di Programmazione I * Ed. Liguori :: (. Criscuolo" +.P. ,ramontano * Introduzione alla Programmazione, Parte Prima: Algoritmi Imperativi in C - Ed. 'anna :: A. 'urli * Lezioni di Laboratorio di Programmazione * Ed. Liguori :: (. Drome- * Algoritmi !ondamentali * Ed. .ac/son :: 0. 1ernighan" D.)itchie * Linguaggio C * Ed. .ac/son :: 2.'. Deitel" P...Deitel * C Corso completo di programmazione * Ed. A3ogeo :: 2. 2ahn * "uida a #ni$ seconda ed.* 'c(ra4-2ill

Princi3ali o$iettivi del corso


Padronanza delle tecniche di Programmazione: 5 Conoscenze di $ase relative al calcolatore dal 3unto di vista del 2ard4are e !o#t4are 5 6ozioni di $ase sui 3rinci3ali !istemi 73erativi 5 Conoscenza dei 3aradigmi di 3rogrammazione 5 Conoscenza di alcuni linguaggi di 3rogrammazione 8 Ansi C & C99 : con 3articolare ri#erimento a: :: 3rinci3ali ti3i di dato :: costrutti di controllo :: im3lementazione di algoritmi :: strutture dati :: #unzioni e metodi :: ; Al termine del corso si richiede di: Essere in grado di realizzare programmi in un linguaggio di programmazione imperativo.

Introduzione al corso
In <uesta 3rolusione richiamiamo $revemente alcune nozioni 3reliminari che riguardano il concetto di Algoritmo e di Esecutore 3er 3oi accennare $revemente alla architettura di un ela$oratore. SOMM !"O 5 Concetto di Algoritmo 5 Il concetto di esecutore di Algoritmi 5 0revi cenni sulla architettura di un calcolatore :: La memoria :: =nit> logico aritmetica :: =nit> di In3ut&7ut3ut

Programmare
#e attivit$ sperimentali della 3rogrammazione sono rivolte allo svilu33o di concetti $asilari" alla organizzazione logica di metodi risolutivi orientati allo svilu33o di codici automatici che 3i? sinteticamente indicheremo come 3rogrammi 8e 3iu@ in generale so#t4are: 3er la risoluzione di 3ro$lemi del mondo reale. In altre 3arole" siamo interessati allo studio" all@ analisi e lo svilu33o di metodi di calcolo e di tecniche di 3rogrammazione #inalizzate alla risoluzione dei 3ro$lemi della vita reale. %igura&: )isoluzione dei 3ro$lemi della scienza e della tecnica.

Il concetto di Algoritmo
L@organizzazione logica di metodi risolutivi di 3ro$lemi della scienza e della tecnica si $asa sul concetto di Algoritmo di cui diamo la seguente: 'efinizione #(algoritmo ) successione logica di direttive elementari, interpreta*ili in maniera univoca, che svolte in un ordine presta*ilito, consentono la soluzione di un assegnato pro*lema in un numero predeterminato di passi.

La de#inizione si $asa sui seguenti 3unti #ondamentali: 5 5 5 5 la la le le se<uenza di direttive deve essere finitaA se<uenza deve 3ortare ad un risultatoA direttive devono essere Bpossi*ili+ ovvero esegui*ili materialmenteA direttive devono essere es3oste in maniera non am*iguo.

Dall@Algoritmo al linguaggio
Il concetto di Algoritmo si $asa sulla 3ossi$ilit> che le direttive vengano descritte da una serie di #rasi non am$igue che costituiscono il programma. Le #rasi con cui vengono scritte le direttive a33artengono ad un linguaggio com3rensi$ile a chi le deve eseguire" ovvero <uello che chiameremo: il linguaggio di programmazione (eneralmente" l@algoritmo viene descritto secondo uno pseudocodice che C un linguaggio arti#iciale e non #ormalizzato 3er es3rimere le azioni che costituiscono l@algoritmo. I 3rogrammi scritti in 3seudocodice scritti ed im3lementati dai 3rogrammatori. Essi risultano: :: un valido strumento o 3er descrivere gli algoritmi: :: un linguaggio sem3lice di ra3ida traduzione in un BveroD linguaggio di 3rogrammazione 8Linguaggio C&C99" .ava" Ph-ton" ;:

leggi dati in ingresso se fissata condizione: fai_qualcosa() altrimenti: fai_qualcosaltro() stampa messaggio

Dall@Algoritmo all@esecutore
Il concetto di Algoritmo si $asa sulla 3ossi$ilit> che le direttive utilizzate 3er risolvere un #issato 3ro$lema siano 3ossi$ili ovvero esegui$ili materialmente. Euesto #a nascere" naturalmente" la necessit> di un esecutore di tali direttive. =n esecutore di algoritmi deve essere realizzato in $ase alle seguenti s3eci#iche: 5 )egistrare i dati di ingresso" intermedi e di uscita 5 )egistrare le istruzioni 5 Eseguire le o3erazioni logiche e aritmetiche sui dati in ingresso 5 Avere il controllo sulla se<uenza delle suddette o3erazioni

Esecutore di
A$$iamo accennato alle s3eci#iche #ondamentali di un esecutore di Algoritmi. Da <uanto detto" la macchina esecutrice 3uG essere realizzata mediante uno schema di 3rogettazione di calcolatori elettronici che 3rende nome dal matematico .ohn von 6eumann e che #u svilu33ato 3er il sistema IA! machine e dellHInstitute #or Advanced !tud- a Princeton" 6e4 .erse-" =.!.A..
%igura ,: Esecutore !chema =omo.

lgoritmi

In #igura sono ri3ortati due schemi di esecutore: l@uomo e l@im3ortante schema dalle 'acchina di Fon 6eumann

%igura -: La macchina di Fon 6eumann

"l calcolatore &.La macchina di Fon 6eumann C lo schema alla $ase dei moderni calcolatori elettronici 8vedi #igura I:.

I com3onenti #ondamentali alla $ase della macchina esecutrice sono:

5 La Memoria: E@ il dis3ositivo #isico in grado di immagazzinare le in#ormazioni sotto #orma di dati ed istruzioni su di essi. %igura /: =n calcolatore elettronico

In #igura J" viene mostrata una ra33resentazione dalla memoria gerarchica di un calcolatore.

%igura 0: Livelli di memoria di un calcolatore elettronico

"l calcolatore ,.5 L@ 1nit$ di controllo: C il dis3ositivo de3utato al coordinamento delle attivit> della macchina esecutrice. In 3articolare consente di 3relevare dalla memoria le istruzioni" si occu3a di tras#erire i dati dalla memoria" assicura l@esecuzione della successiva istruzione.

=n esem3io di unit> di controllo C mostrato nella #igura K. %igura 3: =nit> di controllo

5 L@ 1nit$ logico2aritmetica: C il dis3ositivo che consente l@esecuzione delle o3erazioni sui dati" sia aritmetiche" sia <uelle logico-relazionali.

=na schematizzazione di AL= C mostrata nella #igura L.

%igura 4: !chema com3onenti $ase di una AL=

"l calcolatore -.5 L@ 1nit$ di input e output: e@ il dis3ositivo che consente di inter#acciare la macchina esecutrice con il mondo esterno. In 3articolare sono unit> di I&7 tutte <uelle 3eri#eriche che consentono di inserire i dati" di stam3arli" di visualizzarli.

Esso sono generalmente il video" le stam3anti" le tastiere" la scheda di rete" lo scanner e molti altri dis3ositivi. %igura 5: Dis3ositivi di I&7

Materiali di studio
Testi Consigliati Alcuni contenuti della lezione sono tratti da: A. 'urli * Lezioni di La$oratorio di Programmazione * Ed. Liguori Per un a33ro#ondimento teorico sugli argomenti trattati si consiglia di leggere: 8a: A. 'urli" (. (iunta" (. Laccetti" '. )izzardi * La$oratorio di Programmazione I * Ed. Liguori Capitolo & 8$: (. Criscuolo" +. ,ramontano" Introduzione alla 3rogrammazione. Algoritmi iterativi in C99. Ed. 'anna Capitolo &

Potrebbero piacerti anche