INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Documenti analoghi
Concetti Introduttivi. Il Computer

Risoluzione di problemi

Fondamenti di Informatica 4. Gli algoritmi

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

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.)

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Analisi e programmazione Gli algoritmi

Analisi e programmazione 1

Introduzione al Corso

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

Elaboratore Elettronico

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

LABORATORIO DI INFORMATICA

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

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

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

Algoritmi e Programmi

Problemi, algoritmi, calcolatore

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

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

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

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

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Sviluppo di programmi

Laboratorio di Informatica Ingegneria Clinica Lezione 7/11/2011. Prof. Raffaele Nicolussi

Analisi e Programmazione

INTRODUZIONE ALLA PROGRAMMAZIONE

Introduzione agli Algoritmi

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

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

Il concetto di calcolatore e di algoritmo

Algoritmi. Pagina 1 di 5

Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a

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

Corso di Fondamenti di Informatica

Concetti di base dell ICT

Informatica. Come si risolve un problema?

Corso di Fondamenti di Informatica Algoritmi ed esecutori

Esercizi sugli Algoritmi numerici

1 Esercizi in pseudocodice

Cosa è l Informatica?

Lezione 5. La macchina universale

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

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

Il concetto di informatica. Graziano Pravadelli (2012)

Fabrizio Messina, Marzio Pennisi

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

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Rappresentazione con i diagrammi di flusso (Flow - chart)

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

Analisi e programmazione

Lezione 1: Concetti introduttivi. Informatica Algoritmo Programma

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Crittografia Aritmetica modulare

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

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori

INFORMATICA Algoritmi come formalizzazione della risoluzione di un problema

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

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

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori

Informatica di Base - 6 c.f.u.

Algoritmi e basi del C Struttura di un programma

ALGORITMI: PROPRIETÀ FONDAMENTALI

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Funzione esponenziale Equazioni esponenziali RIPASSO SULLE POTENZE

Sistemi Web per il turismo - lezione 3 -

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

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

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

3. Programmi e algoritmi

Introduzione alla programmazione

FONDAMENTI DI INFORMATICA

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

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

PROGRAMMAZIONE: Le strutture di controllo

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Algoritmi e diagrammi di flusso versione biennio

Linguaggi, Traduttori e le Basi della Programmazione

Esercitazione 3. Espressioni booleane I comandi if-else e while

Unità di apprendimento 6. Dal problema al programma

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

PROGRAMMAZIONE: ESERCITAZIONE N. 6

PREPARAZIONE ALLE GARE DI MATEMATICA - CORSO BASE

Lezione 8. La macchina universale

Corso di Informatica

Intro ad analisi. Alessandra Giordani Lunedì 5 marzo 2011

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii)

Corso di Informatica di Base

Anno 1. Divisione fra polinomi

Istruzioni Condizionali

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Transcript:

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione? Aula? 1

Analisi e programmazione Tramite un elaboratore si possono risolvere problemi di varia natura: gestione dei c/c di un istituto di credito, prenotazioni ferroviarie Il problema deve essere formulato in modo opportuno, perché sia possibile utilizzare un elaboratore per la sua soluzione Per analisi e programmazione si intende l insieme delle attività preliminari atte a risolvere problemi utilizzando un elaboratore, dalla formulazione del problema fino alla predisposizione dell elaboratore Scopo dell analisi definire un algoritmo Scopo della programmazione definire un programma 2

Analogia uomo-macchina Algoritmo + dati Uomo Programma + dati Elaboratore Risultati Risultati Analogie tra le azioni che devono essere eseguite da un operatore umano e da un elaboratore in modo automatico 3

Algoritmo, programma e linguaggio di programmazione Algoritmo: elenco finito di istruzioni, che specificano le operazioni eseguendo le quali si risolve una classe di problemi Un algoritmo non può essere eseguito direttamente dall elaboratore Programma: ricetta che traduce l algoritmo ed è direttamente comprensibile, pertanto eseguibile, da parte di un elaboratore Linguaggio di programmazione: linguaggio rigoroso che permette la formalizzazione di un algoritmo in un programma 4

Le fasi del procedimento di analisi e programmazione Problema ANALISI Algoritmo PROGRAMMAZIONE Relazioni tra problema, analisi, algoritmo, programmazione, programma, dati ed elaborazione Programma ELABORAZIONE Dati 5 Risultati

Definizione di algoritmo Algoritmo deriva dal nome del matematico arabo Abu Ja far Mohammed ibn Musa al-khowarizmi scrisse, circa nell 825, il trattato Kitab al jabr w al-muqabala. Il termine originario era agorismo, trasformato in algoritmo per analogia con aritmetica Un algoritmo è una successione di istruzioni o passi che definiscono le operazioni da eseguire sui dati per ottenere i risultati; un algoritmo fornisce la soluzione ad una classe di problemi Lo schema di esecuzione di un algoritmo specifica che i passi devono essere eseguiti in sequenza, salvo diversa indicazione Ogni algoritmo è concepito per interagire con l ambiente esterno per acquisire dati e comunicare messaggi o risultati; i dati su cui opera un istruzione sono forniti dall esterno o sono frutto di istruzioni eseguite in precedenza Ambiente esterno Dati Risultati o messaggi Algoritmo 6

Esempio: Ordinamento di un mazzo di carte Problema: Sia dato un mazzo da 40 carte da ordinare in modo che le cuori precedano le quadri, che a loro volta precedono fiori e picche; le carte di uno stesso seme sono ordinate dall asso al re Algoritmo: Si suddivida il mazzo in 4 mazzetti, ciascuno costituito da tutte le carte dello stesso seme Si ordinino le carte di ciascun mazzetto dall asso al re Si prendano nell ordine i mazzetti delle cuori, quadri, fiori e picche 7

Esempio: Ricerca in un mazzo di chiavi Problema: Si vuole ricercare, all interno di un mazzo di chiavi, quella che apre un dato lucchetto Algoritmo: 1) Si seleziona una chiave dal mazzo e la si marca con un pennarello 2) Si tenta di aprire il lucchetto con la chiave appena marcata; se funziona, si va al passo 4) 3) Altrimenti, si controlla la chiave successiva 8 i. Se non è marcata, la si marca e si torna al passo 2) ii. Viceversa, si prende atto che nel mazzo non è presente la chiave che apre il lucchetto 4) Fine della ricerca

Esempio: Radici delle equazioni di 2 grado Problema: Calcolo delle radici reali di ax 2 bx c 0 Algoritmo: 1) Acquisire i coefficienti a,b,c 2) Calcolare b 2 4ac 3) Se 0 non esistono radici reali, eseguire l istruzione 7) 4) Se 0, x 1 x 2 b/2a, poi eseguire l istruzione 6) 5) x 1 ( b )/2a, x 2 ( b )/2a 6) Comunicare i valori x 1, x 2 7) Fine 9

Esempio: Calcolo del M.C.D. 1 Problema: Calcolare il M.C.D. di due interi a,b, con a b Algoritmo: Formalizzato da Euclide nel 300 a.c., si basa sul fatto che ogni divisore comune di a e b è anche divisore del resto r della divisione intera di a per b, quando a b e r 0; se r 0, b è il M.C.D. MCD(a,b) MCD(b,r), se r 0 MCD(a,b) b, se r 0 Nota L algoritmo garantisce la determinazione del M.C.D. senza il calcolo di tutti i divisori di a e b 10

Esempio: Calcolo del M.C.D. 2 1) Acquisire i valori di a e b 2) Se b a, scambiare i valori di a e b 3) Calcolare il resto r della divisione intera di a per b 4) Se r 0, MCD(a,b) b; comunicare il risultato all esterno; eseguire l istruzione 6) 5) Se r 0, sostituire il valore di a con il valore di b ed il valore di b con il valore di r; tornare al passo 3) 6) Fine 11

Proprietà degli algoritmi Affinché una ricetta, un elenco di istruzioni, possa essere considerato un algoritmo, devono essere soddisfatti i seguenti requisiti: Finitezza: ogni algoritmo deve essere finito, cioè ogni singola istruzione deve poter essere eseguita in tempo finito ed un numero finito di volte Generalità: ogni algoritmo deve fornire la soluzione per una classe di problemi; deve pertanto essere applicabile a qualsiasi insieme di dati appartenenti all insieme di definizione o dominio dell algoritmo e deve produrre risultati che appartengano all insieme di arrivo o codominio Non ambiguità: devono essere definiti in modo univoco i passi successivi da eseguire; devono essere evitati paradossi, contraddizioni ed ambiguità; il significato di ogni istruzione deve essere univoco per chiunque esegua l algoritmo 12

Algoritmi e appositi linguaggi Un algoritmo deve poter essere eseguito da chiunque, senza che l esecutore sia stato necessariamente coinvolto nell analisi del problema o nella descrizione dell algoritmo Gli algoritmi devono essere formalizzati per mezzo di appositi linguaggi, dotati di strutture linguistiche che garantiscano precisione e sintesi I linguaggi naturali non soddisfano questi requisiti, infatti... sono ambigui: la stessa parola può assumere significati diversi in contesti differenti (pesca è un frutto o un attività sportiva?) sono ridondanti: lo stesso concetto può essere espresso in molti modi diversi, ad esempio somma 2 a 3, calcola 2 3, esegui l addizione tra 2 e 3 13

Un primo programma in c Scrivere un programma che calcoli l area del triangolo: Elaborare un algoritmo per la risoluzione del problema Scriverlo in linguaggio C Compilare il programma ed eseguirlo su computer 14

Calcolo area triangolo: algoritmo 1. Inserire/leggere la base 2. Inserire/leggere l altezza 3. Calcolare l area = (base x altezza)/2 4. Scrivere risultato a video 15

Listato in C: prima versione // calcolo area del triangolo # include <stdio.h> main () { int base; int altezza; int area; base = 3; altezza = 10; area = base * altezza /2; printf( area = %d\n, area); } 16

17 Listato in C: seconda versione // calcolo area del triangolo # include <stdio.h> main () { int base; int altezza; int area; printf( inserisci valore base: ); scanf( %d\n, &base); printf( inserisci valore altezza: ); scanf( %d\n, &altezza); Area = base * altezza/2; printf( area = %d\n, area); }

Esercizi 1. Scrivere un programma che scriva a video: Questo è il mio primo programma by andrea 2. Scrivere un programma che calcoli y=ax+b, Dove x=5, a=18 e b =7 (a,b,x numeri interi) 3. Modificare programma precedente in modo che il valore di x venga immesso dall utente 18

19 Esercizi 1. Determinare il valore delle var a, b e c al termine di tutte le seguenti istruzioni: a = -2; b = a+1; b = b abs(a); c = a*b; b = 3; 1. Indicare gli errori nel listato: include <stdio.h> #define Base 3 #define altezza main () { } area int; area = base x altezza printf( Base: d\n, Base); printf( Altezza: %d/n ; area) printf( Area: d\n, area);

20 Area del triangolo: versione migliorata Possiamo accettare base e/o altezza = zero? // calcolo area del triangolo # include <stdio.h> main () { int base, altezza, area; printf( inserisci valore base: ); scanf( %d\n, &base); printf( inserisci valore altezza: ); scanf( %d\n, &altezza); SE base 0 AND altezza 0 ALLORA area = base * altezza/2; scrivi a video area ALTRIMENTI Non è possibile calcolare l area }

Esercizi Se a=5, b=35 e c=7 calcolare le espressioni: Ris = a+b*c Ris = (a+b) * (a<b) Ris = (a+b) && (a<b) Ris = (a*c-b) (a>b) Ris = ((a*c)!= b) (a>b) Ris = (a>b) (a<c) (c==b)!(a>b) && (c>a) (a!=c) ((a<b) && (b<c)) PER CASA: scrivere un programma che verifichi le risposte 21

Esercizi Scrivere un programma che, richiesti i numeri GG, MM, AAAA di una data, verifichi se questa è valida Scrivere un programma che letto l anno nel formato AAAA, verifichi se tale anno è bisestile. Suggerimento: un anno è bisestile se è divisibile per 4 ma non per 100 PER CASA: scrivere un programma che letto base e altezza, esegua: A scelta dell utente il calcolo dell area del triangolo o rettangolo La media delle 2 aree Il rapporto delle 2 aree 22