Esercizio. Pseudocodice



Похожие документы
Esercizi Svolti di Programmazione

Descrizione di un algoritmo

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Esercizi di programmazione in C

Fasi di creazione di un programma

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

La selezione binaria

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

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

Esame del 3 febbraio 2010

Esempi di algoritmi. Lezione III

Esercizio: numero primo

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione alla programmazione in C

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi e diagrammi di flusso

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Esercizi di programmazione

DAL DIAGRAMMA AL CODICE

RICERCA DI UN ELEMENTO

Introduzione al MATLAB c Parte 2

Traccia di soluzione dell esercizio del 25/1/2005

Corso di Informatica

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Testi di Esercizi e Quesiti 1

Esercitazione 3. Corso di Fondamenti di Informatica

Lab 04 Istruzioni, cicli e array"

GESTIONE MANUALE DEI CREDITI E DEI RESIDUI

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

Esercitazione 7. Procedure e Funzioni

Appello di Informatica B

Elementi di Informatica

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

SWIM. SKF World-class Invoice Matching. fatture e documenti di consegna. Rev 04

Matrice Excel Calcolo rata con IMPORTO DEL FINANZIAMENTO determinato dall'utente

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

10 - Programmare con gli Array

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Le Macchine di Turing

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

MODULO 5 ACCESS Basi di dati. Lezione 4

4 3 4 = 4 x x x 10 0 aaa

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Esercizi su. Funzioni

13. Campi vettoriali

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

SCHEDA DI RECUPERO SUI NUMERI RELATIVI

Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

INFORMATICA 1 L. Mezzalira

Matrice Excel Calcolo rata con DURATA DEL FINANZIAMENTO determinata dall'utente

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

SOLUZIONE ESERCIZIO 1

GESTIONE DEI BENI USATI

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

LAVORO ESTIVO DI INFORMATICA CLASSE 2O

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 10 Settembre 2013

Alcune regole di base per scrivere un programma in linguaggio C

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Sistemi di Numerazione

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Esercitazione n.1 (v.c. Binomiale, Poisson, Normale)

Università di Roma La Sapienza, Facoltà di Ingegneria

PROGRAMMA SVOLTO NELLA SESSIONE N.

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Capitolo 13: L offerta dell impresa e il surplus del produttore

Fondamenti di Informatica 2

Gestione dei File in C

Progetto MIPS/SPIM. Descrizione. Questa tipologia di progetto consiste in

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

INFORMATICA - I puntatori Roberta Gerboni

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE

Laboratorio di Algoritmi e Strutture Dati

Metodologie di programmazione in Fortran 90

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 13 Settembre COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 9 Settembre 2015

+ / operatori di confronto (espressioni logiche/predicati) / = > < Pseudo codice. Pseudo codice

1) Dati in ingresso 2 numeri, l algoritmo calcola e stampa a video la loro somma

Gli algoritmi: definizioni e proprietà

MANUALE ESSE3 Gestione Registro delle lezioni

Le variabili. Olga Scotti

Matrice Excel Calcolo rata con TASSO DI INTERESSE determinato dall'utente

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara

Ricerca Operativa e Logistica

Caratteri e stringhe Esercizi risolti

Lab 11 Gestione file di testo"

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

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Algoritmi e Strutture Dati

File di testo e file binari Directory

Транскрипт:

Esercizio Trovare quoziente e resto di una divisione intera per differenze successive (supponendo cioè di non disporre dell operatore di divisione) Dati di Input: D, D1 (supponiamo D1>0) Dati di Output: Q, R (quoziente e resto) 1 Pseudocodice leggi D, D1 R = D Q = 0 Mentre (R >= D1) Esegui R = R D1 Q = Q + 1 FineEsegui scrivi Q, R 2

Soluzione 3 Esercizio Sommare i primi N numeri interi positivi e scrivere il risultato Dati di Input: N (con N > 0) Dati di Output: S (somma dei primi N numeri) 4

leggi N I = 0 S = 0 Esegui S = S + I I = I + 1 Mentre (I <= N) scrivi S Pseudocodice 5 Soluzione 6

Esercizio Leggere N numeri e scrivere la loro somma Dati di Input: N, ed N numeri Dati di Output: S (somma di questi N numeri) 7 Pseudocodice leggi N I = 1 S = 0 Mentre (I <= N) Esegui leggi NUM S = S + NUM I = I + 1 FineEsegui scrivi S 8

Soluzione 9 Esercizi con strutture sequenziali Leggere prezzo unitario, quantità e percentuale di sconto relativa a una data merce e calcolare l'importo, l'importo scontato e lo sconto Letti i voti di tre materie, calcolare il voto medio Acquisito il lato di un quadrato, calcolarne perimetro ed area 10

Esercizi con strutture condizionali Inserire un numero dall'esterno, dire se diverso da 0, in caso affermativo visualizzare il suo quadrato in caso negativo dire che è uguale a 0 Inseriti due numeri dall'esterno dire se sono uguali tra loro o diversi Leggere un numero dall'esterno e segnalare se è pari o dispari 11 Esercizi con strutture condizionali Inseriti due numeri dall'esterno stamparli in ordine crescente Per un servizio fotografico vengono offerte le seguenti tariffe: 200 lire a scatto più un fisso di 25000 lire, oppure 300 lire a scatto. Inserito il numero di scatti dire quale delle due tariffe risulta la più conveniente 12

Esercizi con strutture condizionali Un certo prodotto costa 1000 lire al pezzo se si acquistano fino a 10 pezzi, 800 lire a pezzo se si acquistano da 11 a 50 pezzi, 500 lire se si acquistano più di 50 pezzi. Dare in input il numero di pezzi e visualizzare l importo da pagare Il biglietto per entrare a un parco di divertimenti costa 30000 lire a persona. Il biglietto è ridotto del 20% per i ragazzi fino a 12 anni di età e del 40% per gli anziani oltre i 60 anni. Inserita dall esterno l età visualizzare l importo da pagare 13 Esercizi con strutture iterative Inseriti 15 numeri dall esterno eseguire la somma Inserire un numero positivo, visualizzare i suoi primi cinque multipli Inserire dall esterno sei numeri qualsiasi. Visualizzare quanti sono i numeri negativi tra quelli inseriti Inserito un numero n dall esterno, visualizzare i primi n numeri naturali 14

Esercizi con strutture iterative Stampare la somma dei primi n numeri naturali pari Inserire dall esterno 5 numeri qualsiasi positivi. Emettere qual è il più grande Inseriti dall esterno N numeri positivi, visualizzare il più grande, il più piccolo e la loro media Leggere 100 numeri interi e calcolare la percentuale dei positivi 15

Università C. Cattaneo Algoritmi: esercizi Esercizi /1 1. Si realizzi il diagramma di flusso di un algoritmo in cui l esecutore legge l età di ciascuno di una classe di 40 studenti e calcola e stampa il numero totale di maggiorenni. 2. Si realizzi il diagramma di flusso di un algoritmo che legge i 13 simboli corrispondenti ai risultati delle partite inserite in una schedina del totocalcio e calcola e stampa il numero di occorrenze dei simboli 1, X e 2. 3. Si realizzi il diagramma di flusso di un algoritmo che, per ogni studente di una classe di 30, legge il voto della prova teorica e quello della prova pratica di un esame. Se almeno un voto è inferiore a 18 il voto finale è insufficiente ; se entrambi sono maggiori o uguali a 18 il voto finale è pari al valore medio. Per ogni coppia di valori l algoritmo deve stampare il voto complessivo conseguito ("insufficiente" in caso di voto insufficiente o la media dei due valori nel caso di voto sufficiente). Alla fine deve stampare il numero totale di voti insufficienti. 12/10/2004 Ingegneria - Informatica - A.A. 2004-05 2 Ingegneria - Informatica - A.A. 2004-05 1

Università C. Cattaneo Esercizi /2 4. All ingresso di un teatro si decide di applicare uno sconto al prezzo del biglietto per tutti gli spettatori minorenni o con più di 60 anni. Si realizzi il diagramma di flusso di un algoritmo che, dati in ingresso i 1000 numeri corrispondenti alle età di tutti gli spettatori presenti, calcola e stampa il numero totale di biglietti a cui applicare lo sconto. 5. L azienda XYZ ha deciso di dotare i propri 250 dipendenti di un telefono cellulare. I dipendenti di livello inferiore (dal I al IV livello) riceveranno un modello base che costa 150, quelli di livello intermedio (V e VI) ne riceveranno uno migliore (costo pari a 200 ), mentre i dipendenti di livello più elevato (VII e VIII) avranno un telefono che costa 300. Scrivere il diagramma di flusso dell algoritmo che riceve la sequenza dei 250 numeri interi che rappresentano il livello di ciascun dipendente e che calcola (e stampa) la spesa complessiva. 6. Si realizzi il diagramma di flusso di un algoritmo che legge i 21 valori di temperature registrati nei capoluoghi di regione italiani e al termine stampa il valore massimo e il valore minimo di temperatura registrati. 12/10/2004 Ingegneria - Informatica - A.A. 2004-05 3 Esercizi /3 7. Dati in ingresso i valori IVA esclusa di un certo numero di fatture, si calcoli e si stampi l importo complessivo di IVA da versare tenendo presente che nello stato di LIUClandia vengono applicate le seguenti aliquote IVA: per ogni fattura di importo fino a 5000 l aliquota applicata è del 10%; per ogni fattura di importo superiore a 5000 l aliquota applicata è del 20%. Si consideri che la sequenza di valori in ingresso termina quando viene inserita una fattura con valore totale pari a zero. 8. Il Comune di Castellanza ha deciso di effettuare una serie di rilevazioni della concentrazione di polveri sottili in "N" giorni successivi, dove il valore N è deciso dal sindaco. Il rilevatore deve innanzitutto leggere il numero N. Durante l analisi, ogni qual volta il valore di concentrazione è maggiore di 50 si deve stampare il messaggio allarme. Alla fine delle rilevazioni, che coincide con la terminazione della analisi, si devono stampare: il valore massimo e il numero che identifica il giorno in cui è stato ottenuto, il valore minimo e il numero che identifica il giorno in cui è stato ottenuto, e la variazione percentuale, cioè: (massimo-minimo)/minimo. 12/10/2004 Ingegneria - Informatica - A.A. 2004-05 4 Ingegneria - Informatica - A.A. 2004-05 2

Università C. Cattaneo Esercizi /4 9. Un negozio di scarpe decide di applicare uno sconto di fine serie per quelle scarpe che normalmente rimangono a magazzino, cioè per le scarpe da uomo il cui numero è minore di 39 e maggiore di 45. In magazzino sono presenti 12 modelli diversi di scarpe per un totale di 350 scatole. Su ogni scatola è presente il numero che indica la misura della scarpa. Si realizzi il diagramma di flusso di un algoritmo che, per ognuno dei 12 modelli: - legge il numero di scatole di tale modello - per ogni scatola legge la misura stampata - calcola e stampa il numero totale di scatole di tale modello a cui applicare lo sconto. 10. L ufficio censimenti vuole aggiornare i dati relativi alla densità di popolazione nei comuni situati nel territorio dei 21 capoluoghi di regione italiani. Si realizzi il diagramma di flusso di un algoritmo che, per ciascuno dei 21 capoluoghi di regione: - legge un valore N corrispondente al numero di comuni presenti nel territorio del capoluogo; - legge l insieme degli N valori corrispondenti al numero di abitanti di ciascuno dei comuni; - calcola e stampa la media di tali N valori. 12/10/2004 Ingegneria - Informatica - A.A. 2004-05 5 Ingegneria - Informatica - A.A. 2004-05 3

Esercizi Svolti di Programmazione Walter Cazzola DICo - Dipartimento di Informatica e Comunicazione Università degli Studi di Milano cazzola@dico.unimi.it Introduzione Di seguito sono riportati alcuni esercizi svolti di programmazione, lo scopo è sia quello di darvi degli esercizi con soluzione, sia quello di farvi vedere cosa è necessario produrre per l esame. A lezione si è introdotto un processo di sviluppo del software composto di quattro passi: analisi del problema, specifica funzionale, outline dell algoritmo (contenitori dei dati e diagramma di flusso) e scrittura del programma. In questo foglio mi limiterò a riportare il diagramma di flusso ed il programma nel linguaggio LP, mentre per l esame dovrete produrre anche un analisi del problema e della soluzione proposta. Nota, siccome è stata presentata a lezione, includo anche il codice C della soluzione. Esercizio: Radici Calcolare le radici di un equazione di secondo grado. Diagramma di Flusso.

Esercizi Svolti di Programmazione 2 Programma LP. Programma C. var a, b, c, delta: int begin read(a); read(b); read(c); delta := b*b-4*a*c; if delta < 0 then write( Nessuna soluzione. ); else if delta = 0 then write( Radici coincidenti =,-b/(2*a)); else write( Radici distinte =, (-b+sqrt(delta))/(2*a), e, (-b-sqrt(delta))/(2*a)); endif endif end. #include <stdio.h> int main() { int a, b, c, delta; printf("a = "); scanf("%d", &a); printf("b = "); scanf("%d", &b); printf("c = "); scanf("%d", &c); delta = b*b-4*a*c; if (delta < 0) { printf("nessuna soluzione.\n"); } else { if (delta == 0) { printf("coincidenti = %lf\n", -b/(2*a)); } else { printf("radici distinte = %lf e %lf\n", (-b+sqrt((double)delta))/(2*a), (-b-sqrt((double)delta))/(2*a)); } } }

3 Walter Cazzola Esercizio: Ricerca del Minimo. Ricerca del minimo tra i K (1 K 50) numeri introdotti come input. Diagramma di Flusso. Programma LP. var K,i,min,x: int, begin read(k); i:=1; read(min); while i<=k do read(x); if x < min then min:=x; endif i :=i+1; write(min); end.

Esercizi Svolti di Programmazione 4 Esercizio: Conversioni Temperature Programma di conversione delle temperature date in input da gradi Celsius a gradi Fahrenheit (t F = 9 5 t C + 32). Il programma si ferma quando si introduce il numero zero. Alla fine stampiamo la somma delle temperature sia Celsius che Fahrenhait calcolate e la loro media. Diagramma di Flusso. Programma LP. var SC,SF,C,F: float, i: int; begin read(c); i:=0; SC:=C; SF:=0; while not(c=0) do F := 9/5*C+32; write(c, C =, F, F ); SC:= SC+C; SF:= SF+F; i:=i+1; read(c); write( Totale, SC, C =, SF, F ); write( Media, SC/i, C =, SF/i, F ); end.

5 Walter Cazzola Esercizio: Moltiplicazione Calcolare la moltiplicazione di due numeri interi dati in input avendo a disposizione solo addizione e sottrazione. Diagramma di Flusso. Programma LP. var mul, a, b: int; begin read(a); read(b); write(a, x, b, = ); mul := 0; while b>0 do mul := mul + a; b := b - 1; write(mul); end.

Esercizi Svolti di Programmazione 6 Esercizio: Ordinamento di un Array Ordinare in ordine crescente e stampare un array di K interi con 1 K 50. Nota nel seguente diagramma sia la lettura che la scrittura di un array sono indicate in modo compatto con leggi A e scrivi A. Diagramma di Flusso. Programma LP. var A: array 1..50 of int, K,i,j,l,min: int; begin read(k); i := 0; while i<k do read(a[i]); i := i+1; i := 0; while i<k do min := A[i]; l := i; j := i+1; while j<k do if A[j] < min then l:=j; min:=a[j]; endif j := j+1; A[l] := A[i]; A[i] := min; i := i +1; i := 0; while i<k do write(a[i]); i := i+1; end.

7 Walter Cazzola Esercizio: Agenda Telefonica. Implementare un agenda telefonica contenente esattamente 100 nominativi. Ogni nominativo è composto da: Nome, Cognome e numero di telefono. L agenda è ordinata lessicograficamente. Scrivere l algoritmo di ordinamento e l algoritmo per ritrovare un numero dato il cognome ed il nome. Sono valide le stesse considerazioni fatte sul diagramma dell esercizio precedente. Diagramma di Flusso: Ordinamento Agenda Diagramma di Flusso: Ricerca in Agenda

Esercizi Svolti di Programmazione 8 Programma LP. const K=100; var agenda: array 1..K of record nome: string; cognome: string; numero: int; end; var i,j,l: int, tmp: record nome: string; cognome: string; numero: int; end; begin i := 0; while i<k do l:=i; j :=i+1; while j<k do if (agenda[j].cognome < agenda[l].cognome) or ((agenda[j].cognome = agenda[l].cognome) and (agenda[j].nome < agenda[l].nome)) then l:=j; endif j := j+1; tmp := agenda[l]; agenda[l] := agenda[i]; agenda[i] := tmp; i := i +1; end. var elem: record nome: string; cognome: string; numero: int; end; min, max, med: int; begin read(elem.nome); read(elem.cognome); read(elem.numero); min := 1; max := K; med := (max-min)/2; while not ((elem.cognome=agenda[med].cognome) and (elem.nome=agenda[med].nome)) and not (med = min) do if (elem.cognome < agenda[med].cognome or ((elem.cognome=agenda[med].cognome) and (elem.nome < agenda[med].nome))) then max := med; else min := med; endif med := min + (max-min)/2; write(med); end.

9 Walter Cazzola Esercizio: Crittografia. Realizzare un sistema crittografico che translittera un testo secondo uno schema (carattere nel testo, carattere con cui sostituirlo) dato in input. Il testo da codificare sarà al più di 5000 caratteri. Nota: supponiamo l esistenza di una funzione ord() che passatogli un carattere restituisce la sua posizione nell alfabeto, es. ord( A ) ritorna 1 e ord( Z ) ritorna 26. Diagramma di Flusso. Programma LP. const card_alfabeto = 26; var schema : array 1..card_alfabeto of char; testo : array 1..5000 of char; i,n: int; begin i := 1; while i <= card_alfabeto do read(schema[i]); i := i+1; read(n); i := 1; while i <= n do read(testo[i]); testo[i] := schema[ord(testo[i])]; i := i +1; i := 1; while i <= n do write(testo[i]); i := i +1; end.