Nota: Si consideri il valore di pi greco.

Documenti analoghi
a.a Codice corso: 21012

IL COSTRUTTO SEQUENZA

Stesura informale dell algoritmo: (lasciata come esercizio)

cout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;

a.a Codice corso: 21012

6SC Informatica 9/12/2015

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

Algoritmo di ordinamento per sostituzione. Esempio : dato l array :

INFORMATICA. Strutture condizionali

Corso di Fondamenti di Informatica Tipi strutturati: Stringhe

Programmazione modulare

L AMBIENTE CODE BLOCKS E L IO

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

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

Fattorizzazione e curve ellittiche polinomi di II, II e IV grado

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

#include<iostream > #include<cstdlib> #include<iomanip> // per setfill(...),setw(...),setprecision(...)

Elementi di Informatica A. A. 2016/2017

ciclo di vita della soluzione (informatica) di un problema

La Programmazione. Cos è la programmazione? Concetti preliminari

Ho raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero

Matematica - SMID : Programmazione 20 Febbraio 2007 FOGLIO RISPOSTE

Qualsiasi programma in C++ segue lo schema:

Prova Scritta del 20/09/10

L AMBIENTE CODE BLOCKS E L IO

Pr1: determinare il maggiore di n numeri interi n. Fondamenti di Informatica Prof. Vittoria de Nitto Personè

PROGRAMMAZIONE: Le strutture di controllo

Algoritmi di Ordinamento Corso di Informatica Laurea in Fisica. prof. ing. Corrado Santoro

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Laboratorio di programmazione

a.a Codice corso: 21012, HOMEWORKS

Laboratorio di programmazione

IEIM Esercitazione 1 Primi passi con la programmazione" Alessandro A. Nacci -

Fondamenti di Informatica T-1 Modulo 2

La funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre

Programmazione Procedurale in Linguaggio C++

Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

Passare argomenti al programma

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012

Concetto di stream. c i a o \0. c i a o \0. c i a o \0

INTRODUZIONE AL C++ CLASSIFICAZIONE

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

2 Operatori matematici e costrutto if

Esercizio 1" input tre numeri interi e stampi a video la loro somma e la media. n Realizzare un programma che legga da. Lab03 2

Istruzioni semplici e strutturate

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Lab 04 Programmazione Strutturata"

Addendum alle chiamate di sistema per la gestione processi. E Mumolo

Introduzione alla programmazione in C++

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

Fondamenti di Informatica T-1 Modulo 2

Informatica! Appunti della lezione 8!

Struttura di un programma C++

Programmazione Procedurale in Linguaggio C++

Informatica! Appunti dal laboratorio 1!

Algoritmo di ordinamento per scambio (a bolle o bubble sort)

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1

Preprocessore, linker e libreria standard

Laboratorio di programmazione

Switch. Unità 3. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Tipi strutturati - struct

INTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C

INTRODUZIONE ALLA PROGRAMMAZIONE IN C++ PRIMA LEZIONE

del Linguaggio C Istruzioni di iterazione

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

STRUTTURA DI UN ALGORITMO 1) LIBRERIE. 2) EVENTUALI COMMENTI // testo

CL 3 - Es_01.cpp. #include <iostream> using namespace std;

Nuovi tipi di dato e. Alessandra Giordani Lunedì 26 marzo

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

Per implementare l Algoritmo si devono usare 2 coppie di indici :

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Standard Input e Standard Output

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

La Standard Template Library Heap, algoritmi e funtori

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde

Esercizio 1. Esercizio 2

Ricerca binaria (o dicotomica) di un elemento in un vettore

Dichiarazioni e tipi predefiniti nel linguaggio C

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Algoritmi e basi del C

Università degli Studi di Ferrara

Fondamenti di Informatica T-1 Modulo 2

Funzioni di libreria. Richiedono tutte. #include <math.h> fabs(x) sqrt(x) pow(x,a) exp(x) log(x)

Informatica (A-K) 14. Linguaggio C -4

Università degli Studi di Ferrara

Matematica - SMID : Programmazione Gennaio 2009 FOGLIO RISPOSTE

Struttura dei programmi e Variabili

Transcript:

ESERCIZIO 1 (Costrutti condizionali + Casting delle variabili) Realizzare un programma che, dato in ingresso un angolo specificato in gradi come un numero intero, fornisca la relativa conversione in radianti. L'angolo deve essere compreso tra 0 e 360 gradi, altrimenti il programma stampa un messaggio di errore e termina. Nota: Si consideri 3.14159265 il valore di pi greco. #include <iostream> #include <cstdlib> #define PIGRECO 3.14159265 // uso la direttiva #define per la costante PIGRECO // alternativamente si poteva fare: // const double PIGRECO = 3.14159265 // Quali sono le differenze? int main(int argc, char *argv[]) int gradi; float rad; cout << "\ninserire un angolo compreso tra 0 e 360 gradi: "; cin >> gradi; if (gradi < 0 gradi > 360) // numero fuori range cout << "\nerrore: inserito un angolo fuori range [0,360]"; else rad = ((float) gradi) / 180.0 * PIGRECO; // NB.1: casting esplicito (poteva anche essere omesso) /* NB.2: per poter usare l operatore / tra numero NON interi e necessario che almeno uno dei due operandio sia una variabile di tipo float o double. */ cout << "\n\nl'angolo inserito di " << gradi; cout << " gradi corrisponde a " << rad <<" radianti"; cout << "\n\nfine ELABORAZIONE -------------------\n"; // end main Pagina 1 di 5

ESERCIZIO 2 (Costrutti condizionali + Algoritmi) Scrivere un programma che risolva il seguente problema. Letti tre numeri interi a, b, c dallo standard input, stampare a terminale la sequenza dei tre numeri in ordine non decrescente. Esempio: a = 10, b = 7, c = 9 deve dare in uscita 7 9 10. 1 soluzione Stesura informale dell algoritmo: Si può sicuramente condurre un analisi per casi e, in base a quello individuato, scrivere le tre variabili in ordine non decrescente. a < b a, b a > b b, c b, c b < c b > c b < c b > c a, b, c a, c a, c c, b, a a < c a > c a < c a > c a, c, b c, a, b b, a, c b, c, a Pagina 2 di 5

#include <iostream> // inclusione della libreria standard #include <cstdlib> // per la funzione system(...) int main(int argc, char *argv[]) int a,b,c; // dichiarazione delle variabili // legge tre interi a,b,c dallo standard input cout << "\n Inserisci il numero a: "; cin >> a; cout << "\n Inserisci il numero b: "; cin >> b; cout << "\n Inserisci il numero c: "; cin >> c; if (a < b) if (b < c) cout << a << " " << b << " " << c; else if (a < c) cout << a << " " << c << " " << b; else cout << c << " " << a << " " << b; else if (b > c) cout << c << " " << b << " " << a; else if (c > a) cout << b << " " << a << " " << c; else cout << b << " " << c << " " << a; cout << "\n\n FINE ELABORAZIONE...\n"; Pagina 3 di 5

2 soluzione Una seconda strategia di soluzione facilmente generalizzabile consiste nello scambiare ordinatamente le tre variabili finché i loro contenuti non risultino ordinati. A tal fine quindi sarà necessaria sicuramente almeno un altra variabile intera strumentale allo scambio tra due variabili. Stesura informale dell algoritmo: 1. Inizio del programma 2. Leggi i tre numeri a, b, c 3. confronta i valori di a e b, se non sono ordinati si effettua lo scambio 4. confronta i valori di a e c, se non sono ordinati si effettua lo scambio 5. confronta i valori di b e c, se non sono ordinati si effettua lo scambio 6. Stampa a video delle tre variabili a, b, c Nota: i punti 3, 4, 5 risolvono ciascuno lo stesso tipo di sottoproblema che è quello di ordinare i valori di due variabili. La seconda soluzione pur essendo più semplice della soluzione 1, dal punto di vista della struttura e quindi anche della leggibilità, è meno efficiente: effettua sempre tre confronti diversamente dalla prima soluzione che ne effettua due in due casi su sei. A ben vedere quindi la soluzione 1 risulta essere la soluzione ottima: non è possibile trovarne una che effettui un numero inferiore di confronti. Pagina 4 di 5

#include <iostream> // inclusione della libreria standard #include <cstdlib> // per la funzione system(...) int main(int argc, char *argv[]) int a,b,c,t; // dichiarazione delle variabili // legge tre interi a,b,c dallo standard input cout << "\n Inserisci il numero a: "; cin >> a; cout << "\n Inserisci il numero b: "; cin >> b; cout << "\n Inserisci il numero c: "; cin >> c; // ordinamento dei valori delle variabili a,b if (a > b) // Scambio dei valori delle due variabili a,b t = a; a = b; b = t; // ordinamento dei valori delle variabili a,c if (a > c) // Scambio dei valori delle due variabili a,c t = a; a = c; c = t; // la variabile a contiene ora sicuramente il // valore più piccolo tra quelli inseriti. // ordinamento dei valori delle variabili b,c if (b > c) // Scambio dei valori delle due variabili b,c t = b; b = c; c = t; cout << a << " " << b << " " << c; cout << "\n\nfine ELABORAZIONE\n"; // end main Pagina 5 di 5