#include <iostream> using namespace std; // int main ( ) { // --- Dichiarazione delle variabili int N ; float A, Pot;

Documenti analoghi
Strutture di iterazione

PROGRAMMAZIONE: Le strutture di controllo

Esercizi di programmazione in linguaggio C - Costrutto iterazione

a.a Codice corso: 21012, HOMEWORKS

Formalismi per la descrizione di algoritmi

Le strutture di controllo in C++

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

Strutture di iterazione

= < < < < < Matematica 1

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Laboratorio di programmazione

ESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli -

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI

Introduzione a Visual Basic Lezione 2 Cicli e anomalie

Laboratorio di programmazione

Problemi, algoritmi e oggetti

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

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 -

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

NUMERO RELATIVO. È caratterizzato da: segno positivo (+) o negativo (-) parte numerica che è detta valore assoluto

PROGRAMMAZIONE IN C E C++ Prof. Enrico Terrone A. S: 2014/15

Istruzioni iterative (o cicliche)

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Esercitazione 4. Comandi iterativi for, while, do-while

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

MAPPA MULTIPLI E DIVISORI

Calcolo letterale. è impossibile (*) x y. per x = -25; impossibile per y= Impossibile. 15 y

PROGRAMMAZIONE IN C E C++

Strutture di Controllo

PROGRAMMAZIONE STRUTTURATA

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Le Funzioni e la Ricorsione

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Richiami di aritmetica (1)

Rappresentazione con i diagrammi di flusso (Flow - chart)

Corso di BASCOM (Capitolo 1 5 ) Corso Teorico/Pratico di programmazione in BASCOM Autore: DAMINO Salvatore. D I S P L A Y L C D (3).

ESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori -

FILIPPO GIOVANOLLA CLASSE IV A MERCURIO PROGRAMMA PASCAL E C++ DISEQUAZIONI DI PRIMO E SECONDO GRADO

1 Esercizi in pseudocodice

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

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

ESERCIZIARIO DI MATEMATICA

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Algoritmi e soluzione di problemi

Le operazioni fondamentali in R

Strutture di controllo in C++

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Fondamenti di Informatica T-1 Modulo 2

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Matematica con Python

Un polinomio è un espressione algebrica data dalla somma di più monomi.

Esercizi per la prova in itinere (con soluzioni)

Esercitazione 3. Espressioni booleane I comandi if-else e while

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Moltiplicazione. Divisione. Multipli e divisori

Programmazione strutturata

Individuazione di sottoproblemi

Esercizi C su array e matrici

LEZIONE 1. del 10 ottobre 2011

Si dice multiplo di un numero a diverso da zero, ogni numero naturale che si ottiene moltiplicando a per ciascun elemento di N.

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori

Dott. Dallavalle Riccardo UNITA DIATTICA nr. 5 Gli argomenti di oggi:

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

1 Multipli di un numero

Primo programma in C Esercizi risolti

L INSIEME DEI NUMERI RELATIVI

Moltiplicazioni e Divisioni. G. Michele Pinna (1)

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

TEOREMA DEL RESTO E REGOLA DI RUFFINI

Linguaggio C++ 8. Matrici

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Algoritmi e basi del C Struttura di un programma

Operazioni in N Le quattro operazioni Definizioni e Proprietà

Transcript:

Dati A e N (A reale >0 e N intero >=0) comunica il valore di A elevato alla N. CL 3 - Es_11.cpp Variabili di Input: N di tipo intero, A di tipo reale Variabili di Output: Pot di tipo reale Variabili di Lavoro: i (contatore) di tipo intero int N ; float A, Pot; // --- Acquisizione del valore A intero positivo do {cout << "CALCOLO di una Potenza \ninserisci il valore della base (>0) : "; cin >> A; while (A<=0); // --- Acquisizione del valore N intero non negativo do {cout << "Inserisci il valore dell'esponente (>=0): "; while (N<0); //--- calcola base elevata a esponente moltiplicando A per N volte Pot = 1; // Inizializza la variabile accumulatore Pot a 1 for(int i = 1; i <= N; i++) // Inizializza il contatore i a 1 e ripete N volte {Pot = Pot * A; // moltiplica per A N volte: 1*A*A*A.*A cout << "\nla potenza: " << A << "^"<<N<<" = " << Pot << "\n";

CL 3 - Es_15.cpp dato N intero positivo comunica la prima potenza di 2 superiore a N. Variabili di Input: N di tipo intero Variabili di Output: Pot di tipo intero, Esponente (contatore) di tipo intero Variabili di Lavoro: nessuna int N, Pot, Esponente; // --- Acquisizione del valore N intero positivo o zero do {cout <<"Inserisci numero intero (>0): "; while (N <=0); // --- Inizializza Pot e Esponente Pot = 1; Esponente = 0; // --- Ciclo che calcola le potenze di 2 while (Pot <= N) {Pot = Pot * 2; // P alla fine conterrà la potenza cercata Esponente++; // fine ciclo while // --- Ha trovato la prima potenza di 2 superiore a N cout << "La prima potenza di 2 superiore a "<< N <<" e' 2^"<< Esponente << "="<<Pot<<endl;

CL 3 - Es_12.cpp dati due numeri interi non negativi, calcola il loro prodotto supponendo che l esecutore possa eseguire solo somme e sottrazioni. Variabili di Input: A e B di tipo intero Variabili di Output: P di tipo intero Variabili di Lavoro: k (contatore) di tipo intero int A, B, P ; // --- Acquisizione del valore A intero non negativo do {cout << "Inserisci primo valore(>=0) : "; cin >> A; while (A<0); // --- Acquisizione del valore B intero non negativo do {cout << "Inserisci secondo valore (>=0): "; cin >> B; while (B<0); // --- calcola il prodotto sommando A+A+A+...+A B volte P = 0; // Inizializza la variabile accumulatore P a 0 for (int k = 1; k <= B; k++) // inizializza il contatore k a 1 e ripete per B volte // incrementando k ogni volta (quando k>b termina il ciclo) {P = P + A; // Aggiunge A B volte: 0+A+A+A+...+A // -----------------In alternativa al precedente --------------------------------------------------- // --- calcola il prodotto sommando A+A+A+...+A B volte //P = 0; // Inizializza la variabile accumulatore P a 0 //for (int k = B; k >=1; k--) // inizializza il contatore k a B e ripete per B volte // decrementando k ogni volta (quando k<1 termina il ciclo) // {P = P + A; // Aggiunge A B volte: 0+A+A+A+...+A // // ----------------------------------------------------------------------------------------------------------- cout << "\nil prodotto: " << A << "*"<< B <<" = " << P << "\n";

calcola il prodotto di una serie di numeri interi positivi inseriti da tastiera, la somma di quelli dispari e la media di quelli pari. L'inserimento di 0 indica che la serie è terminata. CL 3 - Es_13.cpp Variabili di Input: N di tipo intero Variabili di Output: P di tipo intero, SommaDisp (totalizzatore) di tipo intero, MediaPari di tipo reale Variabili di Lavoro: SommaPari (totalizzatore) di tipo intero, ContaPari (contatore) di tipo intero int N, P=1, SommaDisp=0, SommaPari=0, ContaPari=0; float MediaPari; // --- Acquisizione del valore N intero positivo o zero do {cout <<"Inserisci numero intero (>=0, 0=Fine): "; while (N <0); //--- Inizio Ciclo while per chiedere valori interi positivi fino a quando non si inserisce 0 while (N!= 0) { P = P * N; // P alla fine conterrà il prodotto di tutti i numeri inseriti //--- controlla se il numero è dispari if (N%2 == 1) {SommaDisp = SommaDisp + N; // Somma i numeri dispari else {SommaPari = SommaPari + N; // Somma i numeri pari per poi fare la media ContaPari++; // Incrementa il contatore dei numeri pari // --- Si deve ripetere l'acquisizione del valore N prima di tornare su al while do {cout <<"Inserisci numero intero (>=0, 0=Fine): "; while (N <0); // fine ciclo while // --- Comunica il prodotto di tutti i numeri e la somma dei numeri dispari cout << "\nil prodotto dei valori inseriti e' : "<< P << endl; cout << "\nla somma dei valori dispari e' : "<< SommaDisp << endl; // --- Calcola la media dei pari dividendo la SommaPari per il numero ContaPari, // ma prima di fare la divisione dobbiamo controllare che siano stati inseriti numeri pari // (dobbiamo evitare di dividere per 0) if (ContaPari > 0) { MediaPari = (float) SommaPari / ContaPari; cout << "\nla media dei valori pari e' : "<< MediaPari << endl; else { cout << "\nnon e' stato inserito nessun valore pari" << endl;

CL 3 - Es_14.cpp Chiede ripetutamente valori interi positivi fino a quando il loro prodotto non è maggiore di 1000. Comunicare quindi il prodotto finale, il numero di valori inseriti e la media dei numeri divisibili per 5. Variabili di Input: N di tipo intero Variabili di Output: P di tipo intero, Cont (contatore) di tipo intero, MediaDiv5 di tipo reale Variabili di Lavoro: SommaDiv5 (totalizzatore) di tipo intero, ContaDiv5 (contatore) di tipo intero int N, P=1, Cont=0, SommaDiv5=0, ContaDiv5=0; float MediaDiv5; //--- Inizio Ciclo while per chiedere valori interi positivi // fino a quando il prodotto non supera 1000 while (P <= 1000) { //--- Acquisizione del valore N intero positivo do { cout <<"Inserisci numero intero: "; while(n <= 0); Cont++; // Incrementa il contatore dei valori inseriti P = P * N; // Moltiplica P per il nuovo valore N acquisito //--- Controlla se il numero è divisibile per 5 if (N%5 == 0) { SommaDiv5 = SommaDiv5 + N; ContaDiv5++; //--- Fine ciclo while // --- Comunica il prodotto e quanti numeri sono stati inseriti cout << "\nla prodotto dei valori inseriti e' : "<< P << endl; cout << "\nil numero di valori inseriti e' : "<< Cont << endl; // --- Calcola la media dei numeri divisibili per 5 dividendo la somma per il numero di valori // ma prima di fare la divisione dobbiamo controllare che siano stati inseriti numeri divisibili per 5 // (dobbiamo evitare di dividere per 0) if (ContaDiv5 > 0) { MediaDiv5 = (float) SommaDiv5 / ContaDiv5; cout << "\nla media dei valori divisibili per 5 e' : "<< MediaDiv5 << endl; else { cout << "\nnon e' stato inserito nessun valore divisibile per 5" << endl;

CL 3 - Es_16.cpp dati due numeri interi A e B (A>=0 e B>0), calcolare il quoziente e il resto della divisione intera tra il primo e il secondo, supponendo che l esecutore possa eseguire solo somme e sottrazioni. Variabili di Input: A e B di tipo intero Variabili di Output: Quoz di tipo intero, Resto di tipo intero Variabili di Lavoro: nessuna int A, B, Quoz, Resto ; // --- Acquisizione del valore A intero non negativo do {cout << "Inserisci primo valore(>=0) : "; cin >> A; while (A<0); // --- Acquisizione del valore B intero positivo do {cout << "Inserisci secondo valore (>0): "; cin >> B; while (B<=0); //--- Si pone il quoziente = 0 e il resto = A Quoz = 0; Resto = A; //--- poi, inizio ciclo while finché il Resto >= B while (Resto >= B) { Resto = Resto B ; // si sottrae il valore B Quoz++; // e si incrementa di 1 il Quoziente // fine ciclo while // --- Comunica il quoziente e il resto cout << "\nil Quoziente di: " << A << "/"<< B <<" = " << Quoz <<" con Resto = "<<Resto<< endl;

CL 3 - Es_17.cpp Programma che risolve il seguente problema: "Un'associazione raccoglie delle offerte da destinare per l' 85% ad aiuti umanitari e il rimanente per le spese di gestione dell'associazione stessa. Vengono inseriti gli importi delle singole offerte e per convenzione l'inserimento di 0 indica che le offerte sono terminate. A fine inserimento devono essere comunicati: l'importo totale delle offerte, l'importo da destinare agli aiuti umanitari e il numero di offerte ricevute. " Variabili di Input: ImportoOff di tipo reale Variabili di Output: ImpTot di tipo reale, ImpAiuti di tipo reale, NumOff (contatore) di tipo intero Variabili di Lavoro: nessuna int NumOff = 0; float ImportoOff, ImpTot=0, ImpAiuti ; // --- Acquisizione del valore della prima offerta o zero do {cout <<"Inserisci Importo offerta (0=Fine): "; cin >> ImportoOff; while (ImportoOff <0); // --- Inizio ciclo while per chiedere i valori degli importi // delle offerte fino a quando non si inserisce 0 while (ImportoOff!= 0) { // Somma all'importo totale l'importo dell'offerta ImpTot = ImpTot + ImportoOff; // Incrementa il contatore del numero delle offerte ricevute NumOff++ ; // --- Si deve ripetere l'acquisizione dell'importo // della nuova offerta prima di tornare su al while do {cout <<"Inserisci Importo offerta (0=Fine): "; cin >> ImportoOff; while (ImportoOff <0); // fine ciclo while // --- Calcola l'importo destinato agli aiuti umanitari ImpAiuti= ImpTot * 0.85 ; // --- Comunica i dati finali cout << "\nl'importo totale delle offerte ricevute e' : "<< ImpTot << endl; cout << "La somma da destinare agli aiuti umanitari e' : "<< ImpAiuti << endl; cout << "Il numero delle offerte ricevute e' : "<< NumOff << endl;

Dato il diagramma a blocchi a lato: a) Scrivere il corrispondente programma completo in linguaggio C++. b) Creare la tabella di traccia per N = 9, indicando, poi, il risultato che viene visualizzato alla fine. c) Scrivere il testo del problema risolto dal diagramma a blocchi CL 3 - Es_18.cpp INIZIO P = 0 Acquisisci N a) Variabili di Input: N di tipo intero Variabili di Output: P (totalizzatore) di tipo intero Variabili di Lavoro: K di tipo intero V K = 1 V N 0 F N%2=1 F K = 0 int N, K, P=0; K N V P = P + K F Comunica P // --- Acquisizione del valore N intero positivo o zero do {cout <<"Inserisci numero intero (>0): "; while (N <=0); K = K + 2 FINE // Conrolla se N è dispari o pari if (N%2 == 1) b) { K = 1; // inizializza K a 1 else { K = 0; // inizializza K a 0 // --- Ciclo while finché K è <=N while (K <= N) { P = P + K; // P contiene la somma dei numeri K = K + 2 ; // prossimo numero dispari o pari // a seconda del valore iniziale di K // fine ciclo while // --- In alternativa al ciclo while // for ( ; K <= N ; K = K+2 ) // { P = P + K; // // fine ciclo for // --- Comunica la somma dei numeri cout << "\np = "<< P << endl; Viene visualizzato: P = 25 c) Testo del problema dato N intero positivo - se N è dispari comunica la somma di tutti i numeri dispari da 1 a N - se N è pari comunica la somma di tutti i numeri pari da 2 a N