Problema: calcolare il massimo tra K numeri

Похожие документы
Problema: conteggio occorrenze

Esercizio: dispari-pari

Esempio: somma di due numeri

Individuazione di sottoproblemi

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.

IL TEOREMA DI BOEHM-JACOPINI

Esercizio: dispari-pari

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

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

Stringhe e allocazione dinamica della memoria

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

Rappresentazione degli algoritmi

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

Rappresentazione degli algoritmi

Corso di Informatica di Base

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

Guida introduttiva al PHP

Informatica (A-K) 5. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

CAPITOLO 3 - ALGORITMI E CODIFICA

Fondamenti di Informatica

Dall algoritmo al programma

Introduzione al MATLAB c Parte 3 Script e function

Esercizi 2. Marco Anisetti

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Javascript: il browser

FONDAMENTI DI INFORMATICA

Algoritmi stabili e instabili

Fasi di creazione di un programma

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

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!

Come scrivere bene codice? (1 di 1)

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

PROGRAMMAZIONE STRUTTURATA

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

Programmazione web lato client con JavaScript. Marco Camurri 1

Parte 1: tipi primitivi e istruzioni C

Транскрипт:

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