Preparati per il compito in classe Modulo 5 Hai i dati relativi a una serie di N (con N < 20) cinema, per ogni cinema si conoscono il nome e l incasso. Scrivi un programma che, presi in input tali dati, stampi i nomi dei cinema il cui incasso è superiore a una data cifra fornita in input. 2 Dati N numeri (con N < 50) stampa la media dei numeri maggiori di una data cifra fornita in input e quanti sono i numeri negativi. 3 Per ciascuno dei concorrenti di una squadra sono forniti il nome e i tempi registrati in 0 gare; stampa il nome e la media dei tempi di ciascun concorrente e il totale dei tempi di tutta la squadra (i tempi sono espressi in secondi). Esercizio Analisi. Dopo aver preso in input il numero dei cinematografi (n) controllan che non siano maggiori di 20 e la soglia dell incasso (soglia) che determina i cinematografi da visualizzare, facciamo un ciclo che va fino a n, all interno del ciclo leggiamo il nome del cinema (nome) e il suo incasso (inc), se tale incasso è maggiore della soglia salviamo il nome del cinema in una stinga (listacinema); quindi incrementiamo il contatore (i) del ciclo. Ad ogni ciclo, se l incasso è maggiore della soglia, viene appeso alla lista il nome del nuovo cinema selezionato. All uscita del ciclo visualizziamo la stringa che contiene i nomi dei cinema con incasso maggiore della soglia. variabili n tipo utilizzo descrizione n intero input numero cinematografi soglia intero input soglia di incasso per selezionare i cinema nome stringa input nome cinema inc intero input incasso cinema i intero lavoro contatore del ciclo sui cinema listacinema stringa output nomi cinema con incasso > soglia Algoritmo INIZIO N Soglia I = 0 Nome Incasso Incasso > soglia ListaCinema = ListaCinema + Nome I = I + I = N ListaCinema INE
Codifica in C++ #include <iostream> #include <string> using namespace std; int main () string nome; string listacinema; int n; int inc; int soglia; int i; i= 00; cout<< Inserire il numero dei cinematografi\t ; cin>>n; while (n > 20); i = 0; cout<< Inserire la soglia di incasso\t ; cin>>soglia; cout<< inserire il nome del cinematografo\t ; cin>>nome; cout<< inserire l incasso del cinematografo\t ; cin>>inc; if (inc > soglia) listacinema = listacinema + nome +, ; i++; while(i < n); cout<< Cinema con incasso maggiore della soglia <<listacinema<<endl; system ( pause ); Codifica in B.NET Interfaccia TxtNome TxtIncasso TxtRis btnins Public Class frmcinema Dim n As Integer Dim nome As String Dim inc As Integer Dim soglia As Integer Dim i As Integer Numero di cinema Nome Cinema Incasso cinema Soglia incasso Contatore del ciclo Private Sub orm_load(byal sender As System.Object, Byal e As System.EventArgs) Handles MyBase.Load n = 0 Do Until n <= 20 And n > 0
n = InputBox( Inserire il numero dei cinematografi ) Loop soglia = InputBox( Inserire la soglia di incasso ) i = 0 TxtNome.ocus() Private Sub BtnIns_Click(Byal sender As System.Object, Byal e As System.EventArgs) Handles BtnIns.Click nome = TxtNome.Text inc = TxtIncasso.Text If inc > soglia Then TxtRis.AppendText(nome & Chr(3) & Chr(0)) i = i + TxtNome.Clear() TxtIncasso.Clear() TxtNome.ocus() If (i >= n) Then BtnIns.Enabled = alse TxtNome.Enabled = alse TxtIncasso.Enabled = alse TxtRis.isible = True End Class Esercizio 2 Analisi. Innanzitutto si legge in input il numero dei valori da considerare (num) controllan che non siano maggiori di 50 e si legge in input il valore che determina il calcolo della media (media). Si esegue un ciclo che va fino a num, all interno del ciclo leggiamo il valore (valore), se è negativo si incrementa un contatore di numeri negativi (contneg). Se il valore letto è maggiore della cifra che determina il calcolo della media, allora si somma il valore a un accumulatore (media) e si incrementa un contatore con cui, al termine del ciclo, calcolare la media (contmed); quindi incrementiamo il contatore (i) del ciclo. All uscita del ciclo calcoliamo la media e visualizziamo i numeri negativi letti e il valore calcolato della media. variabili N tipo utilizzo descrizione num intero input numero cifre cifra intero input numero che determina i valori da considerare per il calcolo della media valore intero input valore contneg intero output contatore numeri negativi contmed intero lavoro contatore numeri per calcolare la media i intero lavoro contatore del ciclo media reale output valore finale della media calcolata
Algoritmo INIZIO Num Cifra I = 0; contneg = 0, ContMed = 0, media = 0 Num Num < 0 contneg ++ Num > cifra contmed ++ media = media + num I = I + I = N media = media/contmed media, contneg INE Codifica in C++ #include <iostream> using namespace std; int main () string nome; string listacinema; int num; int contneg; int contmed; int valore; int cifra; float media; int i; i= 00;
cout<< Inserire il numero di valori da considerare\t ; cin>>num; while (num > 50); i = 0; contneg = 0; contmed = 0; media=0; cout<< Inserire il valore al di sopra del quale calcolare la media\t ; cin>>cifra; cout<< inserire il valore\t ; cin>>valore; if (valore <0) contneg ++; if (valore >cifra) media = media + valore; contmed++; i++; while(i < num); media = media/contmed; cout<< alore finale media: <<media<<endl; cout<< Totale numeri negativi: <<contneg<<endl; system ( pause ); Codifica in B.NET Interfaccia txtal txtmedia txtnegativi btnmedia Public Class frmmedia Dim num As Integer Dim valore As Integer Dim media As Single Dim numneg As Integer Dim cifra As Integer Dim contneg As Integer Dim contmed As Integer Dim i As Integer Numero di valori input alore di ogni numero input Media Totale numeri nagativi Cifra input che determina il calcolo della media Contatore numeri negativi Contatore numeri oltre il valore per calcolare la media Contatore del ciclo Private Sub frmmedia_load(byal sender As System.Object, Byal e As System.EventArgs) Handles MyBase.Load num = 0 Do Until num <= 50 And num > 0 num = InputBox( Inserire il numero di valori da considerare ) Loop
cifra = InputBox( Inserire il valore al disopra del quale calcolare la media ) i = 0 contneg = 0 contmed = 0 txtal.ocus() Private Sub btnmedia_click(byal sender As System.Object, Byal e As System.EventArgs) Handles btnmedia.click valore = al(txtal.text) If valore < 0 Then contneg = contneg + i = i + If valore > cifra Then media = media + valore contmed = contmed + txtal.clear() txtal.ocus() If (i = num) Then btnmedia.enabled = alse txtal.enabled = alse media = media / contmed txtmedia.text = media txtnegativi.text = contneg Label2.isible = True Label3.isible = True txtmedia.isible = True txtnegativi.isible = True End Class Esercizio 3 Analisi. Leggo in input il numero di concorrenti della squadra (num). accio un primo ciclo esterno sul numero dei concorrenti, a ogni ciclo inserisco il nome del concorrente (nome) e uno più interno per inserire i tempi (tempo) delle 0 gare. Dopo ogni tempo inserito accumulo la media (media) dei tempi di ogni gara e il totale squadra (totsquadra). Al termine dell inserimento dei tempi delle gare calcolo la media del concorrente (media/0) e visualizzo il nome del concorrente e la media calcolata. Al termine del ciclo più esterno, sul numero dei concorrenti, visualizzo il tempo totale della squadra. variabili N tipo utilizzo descrizione num intero input numero concorrenti nome stringa input nome del concorrente tempo intero input tempo in secondi di ogni gara media reale output media tempi gara di ogni concorrente totsquadra intero output totale tempi squadra i intero lavoro contatore del ciclo sui 0 tempi gara conc intero lavoro contatore del ciclo sul numero concorrenti
Algoritmo INIZIO Num Nome media = 0 Tempo media = media + tempo totsquadra = totsquadra + tempo I = I + I > = 0 media = media/0 nome, media conc = conc+ conc > = num totsquadra INE Codifica in C++ #include <iostream> using namespace std; int main () string nome; int num; int conc; int tempo; int TotSquadra; float media; int i; cout<< Inserire il numero di concorrenti\t ; cin>>num; conc = 0; TotSquadra = 0; i = 0; cout<< inserire il nome del concorrente\t ;
cin>>nome; media = 0; cout<< inserire il tempo( <<i+<< )\t ; cin>>tempo; media = media + tempo; TotSquadra= TotSquadra + tempo; i++; while(i < 0); media = media/0; conc++; cout<< Concorrente: <<nome<<endl; cout<< Media tempi: <<media<<endl; while(conc < num); cout<< Totale tempi squadra: <<TotSquadra<<endl; system ( pause ); Codifica in B.NET Interfaccia txtnome txttempi txtnomic txtmediac btncalcola txtsquadra Public Class orm Dim Media As Single Dim Nome As String Dim i As Integer Dim num As Integer Dim conc As Integer Dim TotSquadra As Integer Private Sub orm_load(byal sender As System.Object, Byal e As System.EventArgs) Handles MyBase.Load i = 0 conc = 0 TotSquadra = 0 num = InputBox( Inserire il numero di concorrenti ) txtnome.ocus() Private Sub btncalcola_click(byal sender As System.Object, Byal e As System.EventArgs) Handles btncalcola.click Media = 0 or i = 0 To 9 Media = Media + al((txttempi.lines(i))) TotSquadra = TotSquadra + al((txttempi.lines(i))) Next Media = Media / 0 txtnomic.appendtext(txtnome.text & Chr(3) & Chr(0)) txtmediac.appendtext(media & Chr(3) & Chr(0)) conc = conc +
txtnome.clear() txttempi.clear() If conc = num Then btncalcola.enabled = alse txtnome.enabled = alse txttempi.enabled = alse txtsquadra.text = TotSquadra End Class