questo sito utilizza cookie per profilazione e per mantenere gli accessi al forum.
scorrendo questa pagina o cliccando su questi link ne accetterai automaticamente l'utilizzo.


blog|informatica, storia, novelle ecc



lezione di programmazione: i cicli nidificati

cicli nidificati


cicli nidificati





il ciclo nidificato è un secondo ciclo che viene eseguito all’interno del primo ciclo.

il secondo ciclo funziona come il primo, ma bisogna seguire queste regole altrimenti potrebbe non funzionare.

  • 1. le operazioni del ciclo interno vanno eseguite nel ciclo esterno: nel primo mentre o while bisogna eseguire le operazioni iniziali dell’altro ciclo, azzeramento dei contatori ecc per non avere problemi.
  • 2. le operazioni finali del ciclo devono essere eseguite sempre all’interno del primo mentre, altrimenti i valori delle variabili se viene rieseguito il ciclo si perdono.

i due cicli come avrete capito si chiamano:

  • 1. ciclo esterno: il ciclo che viene eseguito per primo e che esegue le operazioni iniziali e finali del ciclo interno.
  • 2. ciclo interno: il ciclo che viene eseguito all’interno del ciclo esterno

concetto di max e min





questi concetti non sono utili per eseguire l’esercizio, ma è utile saperli per utilizzi futuri.

max o massimo: si confronta un valore di una variabile con il valore di max o massimo, se la variabile è > massimo allora in massimo si inserisce il nome della variabile, altrimenti si passa avanti.
max deve essere azzerata prima del ciclo con il numero 0.

min o minimo: si confronta il valore della variabile min o minimo, se la variabile è < minimo in minimo si inserisce il nome della variabile altrimenti si passa avanti.

minimo deve essere azzerato con un numero più alto possibile, come 100000.




prospetti





nei cicli nidificati si utilizzano anche i prospetti, dei sistemi per creare dei tabulati con i risultati dati dai vari cicli che terminano.

il tabulato è una tabella che asseconda del linguaggio si inserisce in un’oggetto, nel visual basic che prendiamo noi come riferimento si utilizza una list box.



il tabulato è composto da 3 parti:

  • 1. righe di intestazione: in queste righe si inseriscono le scritte statiche o le scritte dinamiche che devono essere inserite una sola volta.

    esiste anche l’intestazione della riga dettaglio che contiene le intestazioni di tutti i valori dinamici che devono essere inseriti.

    esempio:
    scrivi “rubrica telefonica”
    scrivi “nome, cognome, indirizzo, e-mail, numero di telefono, sito web, contatto social”
    questa è l’intestazione della riga dettaglio che per ogni ciclo che va avanti, dopo questa riga il programma inserisce i dati nome, cognome, indirizzo, e-mail, numero di telefono, sito web, contatto social che noi gli scriviamo da tastiera.
    1. righe dettaglio: contengono, come detto sopra, i valori contemplati dalla riga di intestazione, che noi gli scriviamo da tastiera o che provengono da elaborazioni successive del programma.
    2. righe finali: queste righe contengono i risultati finali del programma, una volta che tutti i cicli si sono conclusi con successo.


    programma



    nota: le righe che vanno da * a * si eseguono all’interno del ciclo interno

    si vuole effettuare una statistica sul fatturato della alfa spa.a tale scopo per ogni fattura si inserisca il numero della fatt e il cliente, e per ogni prodotto fatturaato la descrizione del prodotto, il prezzo fatturato, la quantita.
    stampare il seguente fatturato:
    statistica fatturato alfa spa
    • fattura numero
      cliente
      prodotto, prezzo unitario, quantità , importo
    totale di tutti gli importi
    iva 22 %
    *totale più iva
    totale di tutte le fatture



    pseudo codifica


    inizio inizio operazioni ciclo esterno totalefatture=0
    scrivi “statistiche fatture alfa spa”
    scrivi “numero fattura, cliente” scrivi “inserisci numero fattura, invio per terminare”
    leggi fattura
    fine operazioni iniziali ciclo esterno mentre fattura<>””
    scrivi “nome cliente”
    leggi cliente
    scrivi cliente & fattura
    inizio operazioni iniziali ciclo interno scrivi “inserisci descrizione prodotto, invio per terminare”
    leggi prodotto
    totaleimporti=0
    scrivi “prodotto, quantità, prezzo unitario, importo”
    fine operazioni ciclo interno mentre prodotto<>””
    scrivi “prezzo unitario”
    leggi prezzo
    scrivi “quantità acquistate”
    leggi quantita
    prezzototale=prezzo*quantita
    totaleimporti=totaleimporti+prezzototale
    scrivi prodotto&quantita&prezzo&prezzototale
    scrivi “inserisci descrizione prodotto, invio per terminare”
    leggi prodotto fine mentre
    inizio operazioni finali ciclo interno prezzoiva=prezzototale*22/100
    fine operazioni finali ciclo interno scrivi “totale di tutti gli importi dei prodotti fatturati ” & totaleimporti
    scrivi “iva al 22 % ” & prezzoiva
    totalefatture=totalefatture+totaleimporti+prezzoiva
    scrivi “inserisci numero fattura, invio per terminare”
    leggi fattura
    fine mentre
    scrivi “totale di tutte le fatture” & totalefatture



    visual basic



    in visual basic create un nuovo progetto e dalla casella degli strumenti inserite un bottone e una list box.

    cambiate la proprietà text al bottone e chiamatelo avvia, esegui o come vi pare.

    cambiate la proprietà name (non text ma name) alla list box e chiamatela l1.


    codice visual basic



    dim cliente as string
    dim prezzototale as single dim prezzo as single
    dim totaleimporti as single
    dim quantita as single dim prodotto as string
    dim fattura as single
    dim prezzoiva as single
    dim totalefatture as single
    totalefatture=0
    l1.items.add(“”statistiche fatture alfa spa”)
    l1.items.add(“cliente, numero fattura”)
    messagebox.show(“inserisci numero fattura, invio per terminare”)
    fattura=inputbox(” “)
    while fattura<>”” messagebox.show(“inserisci cliente”)
    cliente=inputbox(” “)
    l1.items.add(cliente & fattura)messagebox.show(“inserisci prodotto, invio per terminare”)
    prodotto=inputbox(” “)
    totaleimporti=0
    while prodotto<>””
    messagebox.show(“inserisci prezzo unitario”)
    prezzo=inputbox(” “)
    messagebox.show(“inserisci quantità acquistata”)
    quantita=inputbox(” “)
    prezzototale=prezzoquantita totaleimporti=totaleimporti+prezzototale l1.itemms.add(prodotto&quantita&prezzo&prezzototale) messagebox.show(“inserisci prodotto, invio per terminare”) prodotto=inputbox(” “) end while prezzoiva=prezzototale22/100 l1.items.add(“totale di tutti gli importi dei prodotti fatturati ” & totaleimporti)
    l1.items.add(“iva al 22 % ” & prezzoiva)
    totalefatture=totalefatture+totaleimporti+prezzoiva messagebox.show(“inserisci numero fattura, invio per terminare”)
    fattura=inputbox(” “) end while
    l1.items.add(“totale di tutte le fatture” & totalefatture







il ciclo nidificato è un secondo ciclo che viene eseguito all’interno del primo ciclo.

il secondo ciclo funziona come il primo, ma bisogna seguire queste regole altrimenti potrebbe non funzionare.

  • 1. le operazioni del ciclo interno vanno eseguite nel ciclo esterno: nel primo mentre o while bisogna eseguire le operazioni iniziali dell’altro ciclo, azzeramento dei contatori ecc per non avere problemi.
  • 2. le operazioni finali del ciclo devono essere eseguite sempre all’interno del primo mentre, altrimenti i valori delle variabili se viene rieseguito il ciclo si perdono.

i due cicli come avrete capito si chiamano:

  • 1. ciclo esterno: il ciclo che viene eseguito per primo e che esegue le operazioni iniziali e finali del ciclo interno.
  • 2. ciclo interno: il ciclo che viene eseguito all’interno del ciclo esterno

concetto di max e min





questi concetti non sono utili per eseguire l’esercizio, ma è utile saperli per utilizzi futuri.

max o massimo: si confronta un valore di una variabile con il valore di max o massimo, se la variabile è > massimo allora in massimo si inserisce il nome della variabile, altrimenti si passa avanti.
max deve essere azzerata prima del ciclo con il numero 0.

min o minimo: si confronta il valore della variabile min o minimo, se la variabile è < minimo in minimo si inserisce il nome della variabile altrimenti si passa avanti.

minimo deve essere azzerato con un numero più alto possibile, come 100000.




lezione di programmazione: i cicliprospetti





nei cicli nidificati si utilizzano anche i prospetti, dei sistemi per creare dei tabulati con i risultati dati dai vari cicli che terminano.

il tabulato è una tabella che asseconda del linguaggio si inserisce in un’oggetto, nel visual basic che prendiamo noi come riferimento si utilizza una list box.



il tabulato è composto da 3 parti:

  • 1. righe di intestazione: in queste righe si inseriscono le scritte statiche o le scritte dinamiche che devono essere inserite una sola volta.

    esiste anche l’intestazione della riga dettaglio che contiene le intestazioni di tutti i valori dinamici che devono essere inseriti.

    esempio:
    scrivi “rubrica telefonica”
    scrivi “nome, cognome, indirizzo, e-mail, numero di telefono, sito web, contatto social”
    questa è l’intestazione della riga dettaglio che per ogni ciclo che va avanti, dopo questa riga il programma inserisce i dati nome, cognome, indirizzo, e-mail, numero di telefono, sito web, contatto social che noi gli scriviamo da tastiera.
    1. righe dettaglio: contengono, come detto sopra, i valori contemplati dalla riga di intestazione, che noi gli scriviamo da tastiera o che provengono da elaborazioni successive del programma.
    2. righe finali: queste righe contengono i risultati finali del programma, una volta che tutti i cicli si sono conclusi con successo.


    programma



    nota: le righe che vanno da * a * si eseguono all’interno del ciclo interno

    si vuole effettuare una statistica sul fatturato della alfa spa.a tale scopo per ogni fattura si inserisca il numero della fatt e il cliente, e per ogni prodotto fatturaato la descrizione del prodotto, il prezzo fatturato, la quantita.
    stampare il seguente fatturato:
    statistica fatturato alfa spa
    • fattura numero
      cliente
      prodotto, prezzo unitario, quantità , importo
    totale di tutti gli importi
    iva 22 %
    *totale più iva
    totale di tutte le fatture



    pseudo codifica


    inizio inizio operazioni ciclo esterno totalefatture=0
    scrivi “statistiche fatture alfa spa”
    scrivi “numero fattura, cliente” scrivi “inserisci numero fattura, invio per terminare”
    leggi fattura
    fine operazioni iniziali ciclo esterno mentre fattura<>””
    scrivi “nome cliente”
    leggi cliente
    scrivi cliente & fattura
    inizio operazioni iniziali ciclo interno scrivi “inserisci descrizione prodotto, invio per terminare”
    leggi prodotto
    totaleimporti=0
    scrivi “prodotto, quantità, prezzo unitario, importo”
    fine operazioni ciclo interno mentre prodotto<>””
    scrivi “prezzo unitario”
    leggi prezzo
    scrivi “quantità acquistate”
    leggi quantita
    prezzototale=prezzo*quantita
    totaleimporti=totaleimporti+prezzototale
    scrivi prodotto&quantita&prezzo&prezzototale
    scrivi “inserisci descrizione prodotto, invio per terminare”
    leggi prodotto fine mentre
    inizio operazioni finali ciclo interno prezzoiva=prezzototale*22/100
    fine operazioni finali ciclo interno scrivi “totale di tutti gli importi dei prodotti fatturati ” & totaleimporti
    scrivi “iva al 22 % ” & prezzoiva
    totalefatture=totalefatture+totaleimporti+prezzoiva
    scrivi “inserisci numero fattura, invio per terminare”
    leggi fattura
    fine mentre
    scrivi “totale di tutte le fatture” & totalefatture



    visual basic



    in visual basic create un nuovo progetto e dalla casella degli strumenti inserite un bottone e una list box.

    cambiate la proprietà text al bottone e chiamatelo avvia, esegui o come vi pare.

    cambiate la proprietà name (non text ma name) alla list box e chiamatela l1.


    codice visual basic



    dim cliente as string
    dim prezzototale as single dim prezzo as single
    dim totaleimporti as single
    dim quantita as single dim prodotto as string
    dim fattura as single
    dim prezzoiva as single
    dim totalefatture as single
    totalefatture=0
    l1.items.add(“”statistiche fatture alfa spa”)
    l1.items.add(“cliente, numero fattura”)
    messagebox.show(“inserisci numero fattura, invio per terminare”)
    fattura=inputbox(” “)
    while fattura<>”” messagebox.show(“inserisci cliente”)
    cliente=inputbox(” “)
    l1.items.add(cliente & fattura)messagebox.show(“inserisci prodotto, invio per terminare”)
    prodotto=inputbox(” “)
    totaleimporti=0
    while prodotto<>””
    messagebox.show(“inserisci prezzo unitario”)
    prezzo=inputbox(” “)
    messagebox.show(“inserisci quantità acquistata”)
    quantita=inputbox(” “)
    prezzototale=prezzoquantita totaleimporti=totaleimporti+prezzototale l1.itemms.add(prodotto&quantita&prezzo&prezzototale) messagebox.show(“inserisci prodotto, invio per terminare”) prodotto=inputbox(” “) end while prezzoiva=prezzototale22/100 l1.items.add(“totale di tutti gli importi dei prodotti fatturati ” & totaleimporti)
    l1.items.add(“iva al 22 % ” & prezzoiva)
    totalefatture=totalefatture+totaleimporti+prezzoiva messagebox.show(“inserisci numero fattura, invio per terminare”)
    fattura=inputbox(” “) end while
    l1.items.add(“totale di tutte le fatture” & totalefatture




lezione di programmazione: i cicli

i cicli



i cicli sono dei pezzi di codice che vengono eseguiti fino a che una condizione viene rispettata.
esistono 2 tipi di condizioni da rispettare:

  • 1. condizione numerica: questo tipo di condizione viene utilizzata quando si sa quante volte devve essere eseguita una certa porzione di codice.
    per utilizzare questa condizione si utilizzano i contatori che devono essere:
    • 1. azzerati prima del ciclo.
    • 2. incrementati dopo il ciclo
    • 3. eventualmente utilizzati dopo il ciclo.
    per azzerare un contatore si fa come segue:
    pseudo codifica:
    contatore=1 nota: quando si utilizza come condizione un contatore il contatore è consigliabile azzerarlo con il numero 1, così che si possa fare: mentre contatore<=20 scrivi “nonsaprei” contatore=contatore+1 fine mentre altrimenti se si azzera con il numero 0 toccherebbe fare per farlo tornare:
    mentre contatore<20 scrivi “nonsaprei” fine mentre questo perchè il contatore parte dal numero 0 e non dal numero 1 e se gli si fa verificare la condizione fino al venti(con il <=20 ) si ottiene l’esecuzione 21 volte.
  • 2. con richiesta di continuazione: questa è più semplice: si inserisce un dato da richiedere per continuare l’esecuzione del ciclo, se non viene inserito il ciclo termina.

per l’esercizio che svolgerò quì sotto utilizzerò un ciclo con richiesta di continuazione, più utile, tralasciando quello con i contatori che però avete già visto quì sopra durante la spiegazione.
inoltre sempre per l’esercizio che svolgeremo utilizzeremo degli accumulatori che funzionano come i contatori, solamente vanno azzerati con il numero 0.


programma d’esempio

f fare un programma che inseriti da tastiera nome, numero fattura, tipo prodotto, descrizione, importo della fattura, calcoli quanto è stato il ricavo di un’azienda in una giornata.

pseudo codifica

inizio inizio operazioni iniziali del ciclo totale=0 scrivi “inserisci nome cliente, invio per terminare” leggi cliente fine operazioni iniziali del ciclo inizio del ciclo mentre cliente<>”” se la condizione è vera esegue queste istruzioni scrivi “tipo prodotto” leggi prodotto scrivi “descrizione” leggi descrizione scrivi “numero fattura” leggi fattura scrivi “importo della fattura” leggi importo totale=totale+importo fine operazioni interne al ciclo richiesta di inserire un altro nome cliente, altrimenti il ciclo finisce scrivi “inserisci nome cliente, invio per terminare” leggi cliente fine del ciclo fine mentre operazioni finali del ciclo scrivi “l’azienda ha guadagnato ” & totale fine

visual basic

in visual basic bisogna creare un nuovo progetto, nel form inserire un bottone e poi nella proprietà text inserire quello che si vuole.
cliccare sul bottone e inserire trà private sub e end sub questo codice per il programma quì sopra:
dim cliente as string dim numerofattura as string dim prodotto as string dim descrizione as string dim importo as string dim totale as string messagebox.show(“inserire nome cliente,invio per terminare” cliente=inputbox(” “) while cliente<>”” messagebox.show(“tipo prodotto” prodotto=inputbox(” “) messagebox.show(“descrizione prodotto”) descrizione=inputbox(” “) messagebox.show(“numero fattura” numerofattura=inputbox(” “) messagebox.show(“importo fattura”) importo=inputbox(” “) totale=totale+importo messagebox.show(“inserisci nome cliente,invio per terminare”) cliente=inputbox(” “) end while messagebox.show(“l’azienda in questa giornata ha ricavato ” & totale & ” €”)