Esercitazione 6 – Esercizio 1 Autore: Riccardo Bianco I Corso.

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

Calcolo di valori approssimati delle radici
LINGUAGGIO DI PROGRAMMAZIONE C
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
Uso avanzato di C.
Lezione 8 Anno accademico Titolare corso: Prof. Costanza Torricelli
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Ricorsione Procedure e funzioni ricorsive. Definizioni Un oggetto si dice ricorsivo se è definito totalmente o parzialmente in termini di sé stesso La.
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
Programmazione Procedurale in Linguaggio C++
Esercitazioni su circuiti combinatori
FUNZIONI DI BIBLIOTECA
1 HTML - I Frame Laboratorio di Applicazioni Informatiche II mod. A.
Algoritmi Politecnico di Milano
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: funzione di output a video Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Esercitazione 2 (3 dicembre 2008)
1 Corso di Informatica (Programmazione) Esercitazione 3 (5 dicembre 2008)
dal particolare al generale
Algoritmi e Strutture Dati (Mod. B)
APPUNTI SUL LINGUAGGIO C
APPUNTI SUL LINGUAGGIO C
Esercizi su alberi binari
Primi programmi in Java
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Strutture di controllo nel C
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Le funzioni.
Calcolo del Massimo Comun Divisore
Equazione di secondo grado.
PROGRAMMAZIONE: linguaggi
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
OGGETTI BELLI CON IPLOZERO
Sistemi e Tecnologie Informatiche Requisiti per la realizzazione di un buon programma.
Riepilogo Foglio elettronico Excel - Base Premessa al Modulo AM4.
Foglio elettronico Excel Livello avanzato
Esercizi su File.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Soluzioni e commenti esercizi 1 e 2
Excel prima lezione.
Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 1 Cicli ed asserzioni Corso di Informatica 2 a.a. 2003/04 Lezione 1.
Algoritmo per la generazione dei primi 20 numeri dispari Autore: Francesco Russo matr
Corso di Matematica (6 CFU) (4 CFU Lezioni +2 CFU Esercitazioni)
Daniela Valenti, Treccani Scuola
Dato un vettore di reali di dimensione DIM, si inseriscano N elementi presi da tastiera, si utilizzi 0 per terminare l’inserimento. Ordinare gli elementi.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Creazione quadrato magico 5 x 5 inserimento guidato
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
Ripasso su Java. Introduzione Per risolvere problemi complessi, i linguaggi di programmazione forniscono costrutti per realizzare nuove funzioni che trasformino.
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Esercizi.
Il triangolo di Tartaglia
Fondamenti di informatica T-A Esercitazione 2 : Linguaggio Java, basi e controllo del flusso AA 2012/2013 Tutor : Domenico Di Carlo.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
CALCOLO DEL DETERMINANTE DELLA MATRICE TRE PER TRE
Dipartimento di Economia, Management e Istituzioni APPLICAZIONI AZIENDALI MEDIANTE FOGLIO ELETTRONICO 1° modulo: Percentuali, indici, tassi, rapporti Calcolo.
Transcript della presentazione:

Esercitazione 6 – Esercizio 1 Autore: Riccardo Bianco I Corso

Testo dellesercizio Stampare su video una figura come la seguente, inserendo in input da tastiera laltezza (n. righe). Tale figura devessere centrata rispetto allo schermo. ***** **** *** ** * ** *** **** ***** (nellesempio: altezza = 9)

Risoluzione Il problema della centratura è secondario. Il problema principale è la creazione della figura. – Studio del problema nel suo dominio specifico – La figura ricorda la funzione modulo y = |x|

***** **** *** ** * ** *** **** ***** **** *** ** * ** *** **** ***** f(x) = |x| La corrispondenza con f(x) sarebbe perfetta, non considerando gli * sullasse. 90° x y 0

Spiegazione del metodo usato Esempio altezza = 9 asterischi = altezza / 2 Ad ogni riga mi chiedo: – Ho stampato altezza righe? stampo abs(asterischi) *+ * – lasterisco in più serve a disegnare gli * sullasse decremento asterischi

Spiegazione del metodo usato In questo modo, quando asterischi = 0 – Stampo un solo asterisco – Decremento asterischi ( = -1) – Al passo successivo valuto asterischi in valore assoluto e quindi stampo 1 + |-1| = 2 asterischi – Decremento asterischi ( = - 2) – e così via…

Vantaggi Evito di valutare con costrutti if se incrementare o decrementare la variabile asterischi – Minor tempo nellesecuzione Adopero un algoritmo che si fonda su basi geometrico - matematiche – Procedimento più sistematico

Problema della centratura Dopo aver ottenuto la figura come richiesto dallesercizio, occorre centrarla rispetto allo schermo. Sappiamo che il numero di colonne della schermata relativa al prompt è pari a 80. Quindi: – altezza 0) altezze maggiori sfaserebbero la figura nella schermata – altezza numero dispari (specifica dellesercizio)

Problema della centratura Concentriamoci sulla prima riga: se ho a disposizione 80 caratteri e devo stampare 5 asterischi, devo avere: 37 + ***** (+ 37 ) Generalizzando, per ogni riga: 1.Stampo n spazi bianchi n = (colonne – asterischi – 1) / 2. 2.Stampo gli * desiderati. 3.Vado a capo (evitando di stampare altri n spazi).

Esecuzione altezza = 9r = riga stampatana = numero asterischi Allinizio di ogni riga vi sono (80 – 4 – 1) / 2 = 37 spazi bianchi **** r = 1na = 4 r = 2na = 3 *** r = 3na = 2 ** * * * * * * * * * * * ** *** **** r = 4na = 1 r = 5na = 0 r = 6na = -1 r = 7na = -2 r = 8na = -3 r = 9na = -4

disegna #include #define COLONNE 80 void disegna(int altezza) { int spazi, asterischi, i = 0, j = 0; asterischi = (altezza / 2); spazi = (COLONNE – asterischi - 1) / 2; while (i<altezza) { for (j=0; j<spazi; j++) printf(" "); for (j=0; j<abs(asterischi) + 1; j++) printf("*"); i++; asterischi--; printf("\n"); } return; }

main main() { int n; printf("Inserisci n dispari (1 -> 79): "); scanf("%d", &n); while ((n%2 == 0) || (n COLONNE - 1)) { printf("\nNon hai inserito un numero dispari o non è compreso fra 1 e 79!\n"); printf("Inserisci n dispari (1 -> 79): "); scanf("%d", &n); } disegna(n); system("PAUSE"); return 0; }