ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Похожие документы
L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO!

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Cosa è l Informatica?

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

Programmazione. Informatica. Risoluzione dei Problemi

ALGORITMI: PROPRIETÀ FONDAMENTALI

Algoritmi e Programmi

Risoluzione di un problema

Informatica. Come si risolve un problema?

Introduzione agli Algoritmi

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

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

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Concetti Introduttivi. Il Computer

Problemi, algoritmi, calcolatore

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

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

LABORATORIO DI INFORMATICA

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

Lezione 1. Problemi Algoritmi Programmi

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

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

Il concetto di calcolatore e di algoritmo

A lezione sono stati presentati i seguenti passi per risolvere un problema:

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

ALGORITMI E PROGRAMMAZIONE STRUTTURATA. Prof R. Bresolin a.s

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Corso di Informatica di Base

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

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

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

Introduzione alla programmazione

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

1 Esercizi in pseudocodice

FONDAMENTI DI INFORMATICA

Транскрипт:

ELEMENTI DI INFORMATICA L Ing. Claudia Chiusoli

Materiale Lucidi delle lezioni Date degli appelli Esempi di Testi di esame Informazioni e contatti http://www.lia.deis.unibo.it/courses/

Programma del corso Architettura dei sistemi di elaborazione Algoritmi Linguaggi di programmazione Il Linguaggio C

Definizioni Informatica: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione e dell elaborazione dell informazione. Calcolatore Eletronico (computer) strumento per la rappresentazione e l elaborazione delle informazioni.

Il calcolatore elettronico (computer) è uno strumento in grado di eseguire insiemi di azioni elementari. le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti (risultati). L esecuzione delle azioni viene richiesta all elaboratore attraverso frasi scritte in un qualche linguaggio, dette istruzioni.

La Programmazione attività con cui si predispone il computer ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un certo problema. DATI INPUT Elaboratore Elettronico RISULTATI OUTPUT

Risoluzione di problemi I problemi che interessa risolvere con l elaboratore sono di sono di natura molto varia: Dati due numeri trovare il maggiore Dato un elenco di nomi e relativi numeri di telefono trovare il numero di telefono di una determinata persona Dati a e b, risolvere l equazione ax+b=0 Stabilire se una parola viene alfabeticamente prima di un altra Somma di due numeri interi Ordinare una lista di elementi Calcolare il massimo comune divisore fra due numeri dati Calcolare il massimo in un insieme Non tutti i problemi sono risolvibili attraverso l uso del calcolatore. Esistono classi di problemi per le quali la soluzione automatica non è proponibile (problemi con infinite soluzioni, problemi per cui è stato dimostrato che non esiste un metodo risolutivo automatizzabile)

Risoluzione di un problema Con questo termine si indica il processo che: dato un problema, e individuato un metodo risolutivo trasforma i dati iniziali nei corrispondenti risultati finali. Affinché la risoluzione di un problema possa essere realizzata attraverso l uso del calcolatore, tale processo deve poter essere definito come sequenza di azioni elementari.

Algoritmo L algoritmo è l insieme ordinato delle azioni che risolve un dato problema. L algoritmo descrive il metodo risolutivo attraverso un insieme ordinato di azioni. L esecuzione delle azioni secondo l ordine specificato dall algoritmo, a partire dai dati di ingresso, consente di ottenere i risultati relativi alla soluzione del problema. Metodo risolutivo (algoritmo) DATI Esecutore RISULTATI

Proprietà degli algoritmi 1. Eseguibilità: ogni istruzione deve essere eseguibile da parte dell esecutore dell algoritmo; 2. Non Ambiguità: ogni azione deve essere univocamente interpretabile dall esecutore; 3. Finitezza: il numero totale di azioni da eseguire, per ogni insieme di dati di ingresso, deve essere finito. L algoritmo deve: essere applicabile a qualsiasi insieme dei dati di ingresso appartenenti al dominio di definizione dell algoritmo; essere costituito da operazioni appartenenti ad un determinato insieme di operazioni fondamentali (sistema formale); essere costituito da regole non ambigue, cioè interpretabili in modo univoco qualunque sia l esecutore (persona o macchina ) che le legge

Algoritmi e programmi Ogni elaboratore è una macchina in grado di eseguire azioni elementari su oggetti detti dati. L esecuzione delle azioni è richiesta all elaboratore tramite comandi elementari chiamati istruzioni. Le istruzioni sono espresse attraverso un opportuno formalismo: il linguaggio di programmazione La formulazione testuale di un algoritmo in un linguaggio comprensibile ad un elaboratore è detta PROGRAMMA.

Dal problema al programma Dato un problema, la sua soluzione può essere ottenuta mediante l uso del calcolatore, compiendo i seguenti passi: 1. individuazione di un procedimento risolutivo 2. scomposizione del procedimento in insieme ordinato di azioni (ALGORITMO) 3. rappresentazione dei dati e dell algoritmo attraverso un formalismo (linguaggio di programmazione) comprensibile all elaboratore (PROGRAMMA) Il procedimento è complesso e non è univoco problema algoritmo programma metodo risolutivo linguaggio di programmazione

Esempio di un programma in linguaggio C Calcolare la somma di 2 interi int main() { int A, B; printf("immettere due numeri: "); scanf("%d %d", &A, &B); printf("somma: %d\n", A+B); }

Esempi di algoritmi Soluzione dell equazione ax + b = 0 leggi i valori di a e b calcola -b dividi quello che hai ottenuto per a e chiama x il risultato stampa x Calcolo del massimo di un insieme Scegli un elemento come massimo provvisorio max Per ogni elemento i dell insieme: se i>max eleggi i come nuovo massimo provvisorio max Il risultato è max NOTA: nell algoritmo si utilizzano VARIABILI, ossia nomi simbolici, usati per denotare dati.

Algoritmi equivalenti Due algoritmi si dicono equivalenti quando: hanno lo stesso dominio di ingresso; hanno lo stesso dominio di uscita; in corrispondenza degli stessi valori nel dominio di ingresso producono gli stessi valori nel dominio di uscita Due algoritmi equivalenti: forniscono lo stesso risultato possono avere differente efficienza possono essere profondamente diversi

Esempio di algoritmi equivalenti Gli algoritmi a e b sono equivalenti Algoritmo a: calcola l insieme A dei divisori di m calcola l insieme B dei divisori di n calcola l insieme C dei divisori comuni: C = A B Il risultato è il massimo dell insieme C Algoritmo b (si basa sul metodo di Euclide): mcd(m,n) = m (oppure n) se m=n mcd(m,n) = mcd(m-n, n) se m>n mcd(m,n) = mcd(m, n-m) se m<n Algoritmo: Finché m n: se m>n sostituisci a m il valore (m-n) altrimenti sostituisci a n il valore (n-m) Il massimo comune divisore è n