Problema: calcolare il massimo tra K numeri

Documenti analoghi
Problema: ricerca di un elemento

Problema: conteggio occorrenze

Esercizio: dispari-pari

Dichiarazione di variabili

Esempio: somma di due numeri

Javascript: il browser

Individuazione di sottoproblemi

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

Javascript: il browser

Sviluppo di programmi

Formalismi per la descrizione di algoritmi

Sviluppo di programmi

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.

Descrizione di un algoritmo

IL TEOREMA DI BOEHM-JACOPINI

Corso di Informatica

Un algoritmo ben fatto deve terminare dopo un numero finito

Esercizio: dispari-pari

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Fondamenti di Informatica

Formalismi per la descrizione di algoritmi

Sviluppo di programmi

Fondamenti Teorici e Programmazione

UD 3.2b: Programmazione in Pascal (1)

Come ragiona il computer. Problemi e algoritmi

Primi script in MATLAB

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Il Linguaggio di Programmazione Pascal

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Stringhe e allocazione dinamica della memoria

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

<HTML> <HEAD>Massimo di una sequenza di K numeri e stampa in ordine inverso </TITLE> </HEAD> <BODY>

Introduzione ai Diagrammi di Flusso

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.2b: Programmazione in Pascal (1)

Rappresentazione degli algoritmi

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

Rappresentazione degli algoritmi

Corso di Informatica di Base

Laboratorio n 6 del Ing. Dario Cogliati

Algoritmi e Strutture Dati

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

Guida introduttiva al PHP

Informatica (A-K) 5. Algoritmi e pseudocodifica

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

CAPITOLO 3 - ALGORITMI E CODIFICA

Tipi di dato strutturati: Array

Strutture di controllo in C. Strutture di controllo in C -- Flow Chart --

Fondamenti di Informatica

Tipi derivati: Array

Dall algoritmo al programma

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Esercizi 2. Marco Anisetti

Programmazione A.A Fondamenti di programmazione. ( Lezione IX ) Notazione Lineare Strutturata. Prof. Giovanni Gallo Dr.

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Javascript: il browser

FONDAMENTI DI INFORMATICA

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Introduzione alla programmazione orientata agli oggetti

C. De Stefano Corso di Fondamenti di Informatica Università degli Studi di Cassino

Algoritmi stabili e instabili

>> A = [1 2 3; 4 5 6; 7 8 9]; >> A

Fasi di creazione di un programma

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti

Laboratorio - Programmazione

Premessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.

La Programmazione. Cos è la programmazione? Concetti preliminari

Introduzione al MATLAB c Parte 2

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Esempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo!

Impariamo a programmare in. Lezione 7

Come scrivere bene codice? (1 di 1)

Strutture Dati. Luca Abeni

Ingresso ed Uscita in C. Informatica 1 / 15

Strutture Dati. Nicu Sebe. Informatica Nicu Sebe 1 / 27

Esistono alcune tipologie di problemi riconducibili a schemi di risoluzione standard

Variabili e assegnazione

Prof. Massimiliano Giacomin 19 dicembre NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli

PROGRAMMAZIONE STRUTTURATA

i Vettori Alessandra Giordani Lunedì 15 aprile

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

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

Ing. Lorenzo Vismara

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Programmazione web lato client con JavaScript. Marco Camurri 1

Parte 1: tipi primitivi e istruzioni C

Dall analisi alla codifica (1)

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;

Fondamenti di informatica T-1 (A K) Esercitazione 3: assegnamento e variabili

Transcript:

Problema: calcolare il massimo tra K numeri Scrivere un algoritmo che fornisca in input ad un programma un numero K e K interi positivi. L algoritmo deve restituire il valore massimo tra quelli introdotti e stampare in ordine inverso i numeri inseriti.

Problema: calcolare il massimo tra K numeri Scrivere un algoritmo che fornisca in input ad un programma un numero K e K interi positivi. L algoritmo deve restituire il valore massimo tra quelli introdotti e stampare in ordine inverso i numeri inseriti. Sembra un problema già visto: Si supponga di fornire in input ad un programma un numero K e K interi positivi. Il programma deve restituire il valore minimo tra quelli introdotti. ma non lo è!! Infatti dobbiamo memorizzare tutti i valori inseriti per stampare il primo inserito per ultimo Ma quante variabili usiamo?

Gli array Nelle situazioni in cui si devono memorizzare un INSIEME di dati allori si può usare la struttura di dati chiamata vettore o array Un array (vettore) è costituito da una sequenza di elementi consecutivi nella memoria di un calcolatore Un array si può vedere come una generalizzazione del concetto di variabile

Gli array Ad ogni istante un array individua un insieme di valori Ogni singolo valore nell array è individuato dall identificatore (nome) dell array e da un indice che ne individua la posizione nella sequenza degli elementi nell array stesso Un array è caratterizzato da una dimensione che esprime il numero di elementi che contiene L operazione di assegnazione permette di modificare il valore di un determinato elemento della sequenza come per una qualsiasi variabile In genere gli elementi di un array sono tutti dello stesso tipo (stringhe, interi, caratteri, ecc.) ma in alcuni linguaggi di programmazione sono permessi array di elementi di tipo diverso, es. JavaScript, ma non è una scelta consigliabile

Gli array in Javascript Gli array (o vettori) contengono un insieme di dati rappresentati da un singolo nome di variabile Un array contiene un insieme di elementi Ogni elemento è identificato da un indice (il primo ha indice zero) 0 elemento

Gli array in Javascript Un array è creato mediante la seguente dichiarazione: var nome_array = new Array (numero_di_elementi); Si fa riferimento ad un elemento, ad esempio, nei seguenti modi: nome_array[0] = Pippo ; nome_array[y] = 27*sqrt(k/2); window.prompt(nome_array[k*3]);

Problema: calcolare il massimo tra K numeri Ipotizziamo di aver già letto i numeri ListaNumeri 2 5 4 1 6 8 5 3 7 3 0 1 2 3 4 5 6 7 8 9

Problema: calcolare il massimo tra K numeri ListaNumeri 2 5 4 1 6 8 5 3 7 3 0 1 2 3 4 5 6 7 8 9 2 MAX

Problema: calcolare il massimo tra K numeri ListaNumeri 2 5 4 1 6 8 5 3 7 3 0 1 2 3 4 5 6 7 8 9 5 MAX

Problema: calcolare il massimo tra K numeri ListaNumeri 2 5 4 1 6 8 5 3 7 3 0 1 2 3 4 5 6 7 8 9 5 MAX

Problema: calcolare il massimo tra K numeri ListaNumeri 2 5 4 1 6 8 5 3 7 3 0 1 2 3 4 5 6 7 8 9 5 MAX

Problema: calcolare il massimo tra K numeri ListaNumeri 2 5 4 1 6 8 5 3 7 3 0 1 2 3 4 5 6 7 8 9 6 MAX

Problema: calcolare il massimo tra K numeri ListaNumeri 2 5 4 1 6 8 5 3 7 3 0 1 2 3 4 5 6 7 8 9 8 MAX

Problema: calcolare il massimo tra K numeri ListaNumeri 2 5 4 1 6 8 5 3 7 3 0 1 2 3 4 5 6 7 8 9 8 MAX

Problema: soluzione preliminare e raffinament start read K start leggi i K numeri leggi i K numeri i := 0 max := ListaNumeri[0] calcola max i < K vero falso end leggi i K numeri write max read ListaNumeri[i] scrivi in ordine inverso i := i + 1 end

Problema: soluzione preliminare e raffinament start start calcola max read K i := 1 leggi i K numeri max := ListaNumeri[0] i < K vero falso end calcola max calcola max vero ListaNumeri[i] > max write max max := ListaNumer[i] falso scrivi in ordine inverso end i := i + 1

Problema: soluzione preliminare e raffinament start read K leggi i K numeri start scrivi in ordine inverso i := K - 1 max := ListaNumeri[0] calcola max i >= 0 vero falso end scrivi in ordine inverso write max write ListaNumeri[i] scrivi in ordine inverso end i := i - 1

Esercizio Tradurre il precedente algoritmo e tutti i successivi in pseudo-codice Scrivere il codice Javascript che traduca l algoritmo

Esempio Assegnare a tutte le posizioni di un vettore un numero X. Assumere che la dimensione del vettore sia uguale ad N e che la prima posizione del vettore sia uguale a 0

Esempio start read X,N i := 0 i < N vero falso end vettore[i] := X i := i + 1

Codice Javascript <html> <head> <title>esercizio sugli array</title> </head> <body> <script> <!-- Inizio script JavaScript var N,X,i; X = window.prompt("inserisci il numero X"); X = X * 1; N = window.prompt("inserisci la lunghezza dell'array"); N = N * 1; var vettore = new Array(N); i = 0; while (i < N) { vettore[i] = X; i = i + 1; } i = 0; while (i < N) { window.alert("vettore[" + i + "]=" + vettore[i]); i = i + 1; } // Fine script --> </script> </body> </html> Inserito per mostrare il contenuto dell array