Loading
Note di Apprendimento
Study Reminders
Support
Text Version

Applicazione terminale - Programma Java & Block Diagram

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Ciao a tutti, benvenuti nella prima sessione della seconda settimana dell'introduzione al moderno corso di sviluppo delle applicazioni. Cominciamo dalla revisione delle considerazioni sul design per un'applicazione di riga di comandoche abbiamo visto in precedenza. Si tratterà di una revisione più intensa,e dopo che andremo avanti per esaminare l'implementazione dell'effettiva soluzione di comando - line.Questo ovviamente sarà un esempio illustrativo; è un'implementazione che si intende illustrarecome deve funzionare la riga di comando.
(Riferimento Slide Time: 00.54)
Cominciamo con una domanda, quando pensi che sia adatto, per un'applicazione di riga di comando, ad utilizzare uno stile interattivo oppure, quando è adatto ad utilizzare uno stile non interattivo?Abbiamo visto cosa si intende con un approccio interattivo contro un approccio non interattivo per una riga di comando. Per recap, un approccio interattivo è quello in cui le informazioni richieste peril programma è reso disponibile dopo che il programma inizia a funzionare.In contrasto in un'applicazione non interattiva tutte le informazioni richieste per l'esecuzionedevono essere fornite prima che il programma inizi l'esecuzione. Dovresti scrivere le tue listedi punti sui vantaggi e gli svantaggi, o qualunque cosa pensi sullo stile interattivoversus stile non interattivo. Inoltre vi incoraggiamo a discutere di questo sui forum per questo corso. Ecco un altro compito per voi: tracciare l'evoluzione dell'idea di un programma di esecuzionedai suoi primi inizi.Macchine informatiche sono salite da circa 1945, ma in quei giorni programmare un computersignificava connettere i fili e gli interruttori. Quindi, l'idea di un programma di esecuzione eraabbastanza diversa in quei giorni. Nel corso dei decenni l'idea si è evoluta fino ai giorni nostri. Noivi incoraggiamo a cercare questa idea, rintracciatelo, magari potreste dividere l'intero periodo indecenni, diciamo 1945 - 55, 1955-65, 1965 - 75 e così via fino ai giorni nostri.
Questa sarebbe un'idea interessante di per sé e ci darà qualche fondamento per capire il modo in cui questo corso è stato progettato.(Fare Slide Time: 03.42)
Professore Sano ha usato un approccio non interattivo quando ha illustrato il problema della giustashare. Ricordiamo che ci sono 3 modalità in cui ci aspettiamo che l'applicazione di fair share venga eseguita. Suil tuo schermo vedi le slide che avevamo usato prima.
• Una delle modalità è la modalità di registrazione in cui tutti i coinquilini registrano i propri nomiall'applicazione. Questo permette all'applicazione di riconoscere i coinquilini corretti nel futuro. Avevamo visto che la fase di registrazione sarebbe stata semplicemente un loop in esecuzione su tuttii nomi indicati sulla riga di comando.
• Il principale cavallo di lavoro dell'applicazione di corso è la fase di registrazione delle spese inche registra le spese per un evento da parte dei coinquilini. La fase delle spese sarebbesemplicemente calcolando la quota per capo quota data per ogni coinquilino.
• Infine, la generazione di report comporterebbe semplicemente l'accettazione del nome del coinquilinoil cui report deve essere generato. Ricordati che questa è una decisione di design per noi, abbiamodeciso che avremmo generato report per uno e un solo coinquilino. Ci sonoaltre scelte che avevamo già visto prima ma scegliamo di non usare nessuno di loro.
(Riferimento Slide Time: 05.57)
Ecco il diagramma di blocco della nostra applicazione di riga di comando proposta. Lo schema rosso racchiudela funzionalità della nostra applicazione. L'input proviene da un terminale, per noi è la tastiera.L'output è sul monitor video. I diagrammi di blocco rappresentano la funzionalità che noici aspettiamo di richiedere nell'applicazione. Avevamo visto che una fase sarebbe stata quella di convertire tuttil'input a tipi di dati appropriati all'interno del linguaggio di programmazione e memorizzarlo adeguatamente.Una volta questi sono disponibili come tipi di dati adatti nel nostro programma, allora possiamo eseguire ulteriorielaborazioni. Avevamo anche visto la lavorazione che avrebbe richiesto i calcoli di base l'ideaè stata abbastanza semplice. Anzi, l'abbiamo anche illustrato usando un foglio di calcolo. Potrestiprovarlo anche solo usando la matita e la carta. La semplicità della soluzione ci ha permesso anche di pensarealla correttezza.
Il nostro ragionamento ci dice che il nostro approccio funzionerà qualunque sia il numero di coinquilini, almeno in linea di principio, è garantito al lavoro. In pratica avremo dei limitia causa dell'implementazione e di molte altre restrizioni, ma il nostro approccio algoritmico è corretto.Infine, le informazioni che sono state calcolate o qualunque sia l'informazione necessaria devono esserevisualizzate sul dispositivo di output, che richiederebbero anche la conversione dal modulo internoall'interno della lingua e ciò che è richiesto per il dispositivo di output.Ricordiamo che avevamo suggerito che per l'input così come le parti di conversione in uscita noidovremmo cercare di utilizzare le strutture che ci vengono offerte dal linguaggio di programmazione, nel nostro caso it
è Java. Quindi, utilizzeremmo le strutture per le conversioni di input e di output che Java fornisce.Finalmente, c'è un altro blocco qui sopra, la memoria dati sulla memoria secondaria, noiarriveremo a quel poco più tardi.
(Riferimento Slide Time: 08.57)
Questa slide ci aiuta a ricordare le idee dietro l'approccio della linea di comando. Andiamo avanti eguarda davvero un'interazione terminale su questo.
(Riferimento Slide Time: 09.18)
Ecco un terminale Windows standard il cui prompt abbiamo impostato come dollaro e il cursore èlampeggiante per mostrarci che è pronto a prendere un comando – il cursore lampeggia al prompt. Il modoper costruire questo programma è quello di utilizzare il compilatore Java e compilare questo programma Java in un file di classe. Normalmente il javac, il comando del compilatore Java sarebbe disponibile come semplice comando&ld'javac javac perché sarebbe nel tuo percorso (lo impostiamo utilizzando le variabilidell'ambiente). Ma abbiamo scelto di illustrare l'intera linea di comando per la vostra chiarezza. Se la compilazioneha esito positivo allora tutto ciò che accade è che arriviamo al prompt.Nel caso ci siano errori allora il compilatore stampa quegli errori prima di darci il prossimo promptper il comando successivo. Una volta che il programma compila correttamente, possiamo ovviamente eseguirlo, ma noidobbiamo eseguirlo sulla Java Virtual Machine (JVM). Ciò avviene utilizzando il comando java.
Nella lezione abbiamo visto un errore che ci mostra che il comando che abbiamo scritto per l'applicazione condividicondividi non era del tutto completo. Inoltre, dà un errore all'utente finale. Infatti un benprogramma scritto non dovrebbe mostrare un tale errore invece dovrebbe dire all'utente e offrire un breve messaggio di aiuto, informare l'utente sul modo corretto di utilizzare questo programma ... ecc.Registriamo pochi coinquilini. Userò i nomi dei miei colleghi del persistente computingInstitute. Stiamo registrando 5 amici, ed ecco cosa ci racconta il nostro programma, ha registrato 5coinquilini.
Ora possiamo aggiungere le spese per vari eventi che tutte queste persone indulgono. Supponiamo che Aamod sia il primo a pagare dire 100 rupie per qualche evento che si è verificato chetutti i 5 di loro hanno condiviso, lo regiviamo usando il comando:$java fairShare scapito Aamod 100Il comando ci dice che c'è qualche database in un file chiamato fair - share.dat. Ci raccontache questo file esiste, quanti byte sta consumando finora, il numero di eventi trovati è 0,il numero di coinquilini trovati è 5.
Finalmente ci dice che è stato aggiunto anche l'evento con le spese 100 di Aamod. Aggiungetealtre spese di altri membri di questo gruppo. Suppliamoci nel secondo evento che trascorro Rs.100 e contribui a Rs. 100 per l'intero gruppo di coinquilini. Simile al display sopra il nostroprogramma di nuovo ci racconta il nome del file del database, che esista o meno, ma notateche il numero la taglia – il numero di byte nel file è cambiato.Questo perché nuove informazioni sono state aggiunte in questa esecuzione del programma. È importante perrendersi conto che l'esecuzione del programma per l'aggiornamento delle spese di Aamod der è diverso e completamentedisconnesso dalla corsa in cui sono state registrate le mie spese. Si tratta di due diverseesecuzioni dello stesso programma. Andiamo avanti e aggiungete le spese degli altri. Diciamo che Anuradhaspende 100 rupie di nuovo e il nostro programma memorizza che le informazioni utilizzando il comando:$java fairShare scapito Anuradha 100
Poi Rustom paga; abbiamo poche interazioni con il programma che ha registrato le spese. Seosservi il numero di eventi trovati vi renderete conto che le informazioni contatein realtà iniziano da 0, ed è per questo che quando le prime spese sono state numerate 0. Un programma ben scrittodovrebbe davvero informare che questo il primo evento sarebbe stato 1 non 0. La maggior parte dei programmatorisono confortanti a partire da 0 ma gli utenti tipici sarebbero molto confusi seil tuo programma dicesse che il numero degli eventi è 0.Saranno molto confusi perché stanno usando questa applicazione per dire che il primo eventoquando il nostro 100 più pagato va registrato e questo programma lo dice è il 0. Solo dopo che un paio didi corre da realizzare che il nostro programma è stato scritto tale che gli eventi sono numerati da0 e non 1. Verificateci bene che abbiamo Shekhar contribuire di nuovo a 100 rupie, questo è il
quinto evento perché in realtà abbiamo avuto contributi a 100 rupie per 5 eventi da parte di ognisingolo membro di persistente Istituto di calcolo.L'output sul terminale mostra che il numero di eventi è mostrato pari a 4, mentre il numerodei coinquilini viene visualizzato correttamente come 5. Dovremmo davvero scrivere programmi in modo che i nostri utenticomprendano i risultati e le informazioni che vengono visualizzate. Quello che abbiamo fatto finoraè di aggiungere 5 eventi in cui 5 membri del gruppo hanno ugualmente contribuito questo significa chedopo 5 eventi nessuno deve davvero nulla agli altri. Controlliamo se il nostro programma riporta davveroesattamente quel caso.Nota: Esegui il programma (o vedi slide) per controllare che il programma effettivamente restituisce i risultaticitati qui.
Quindi, se per esempio chiedo al nostro programma di dirmi qual è l'importo finale che devo dice 0,che è corretto. Se invece io invece di me se chiedo di dirlo di nuovo equivale a 0. Se chiedoAnuradha, allora anche questo è il 0. Ma ora supponiamo di avere il sesto evento in cui Shekharspende 200 rupie per il gruppo. Chiediamoci di nuovo quanto costa Abhijat – dovrebbeessere 40 rupie. Fantastico, la risposta che viene mostrata è esattamente 40.Ma di nuovo, se ci si accorge con molta attenzione c'è un lieve problema, proprio come gli eventi che eranonumerati da 0 sarebbero confusi all'utente, un numero come -40 si confonde in particolarequando il commento prima che il numero dell'uomo dica l'importo dovuto agli altri è – 40. Let meillustrare il problema guardando al report di Shaker. Shaker ha contribuito di più quindi dovrebbeeffettivamente ricevere dagli altri.Nota il modo in cui il programma risponde che dice che l'importo da ricevere dagli altri è di 160 rupie questoha senso all'utente finale. Tuttavia, se l'utente finale vede che l'importo dovuto ad altri è -40, allora questo può essere confuso. Quello che stiamo parlando qui è che dobbiamo visualizzare le informazioniin forma coerente per l'utente finale. Ricordiamo il motivo per cui è meno quaranta èperché nel nostro programma all'interno di – all'interno del programma abbiamo scelto di rappresentare l'importo chedeve essere pagato da numeri negativi e cifra che deve essere ricevuto da numeri positivi.Ma questa è davvero una vicenda interna, qualcosa che è intervallo per il programma. Questo ideale dovrebbenon avere nulla a che fare con l'utente, o dovremmo informare l'utente che il negativo
numeri significano che devi soldi e numeri positivi significa che riceverai denaro.Dovremmo informare l'utente su questa convenzione prima ancora di visualizzare così, oppure dovremmoconvertire i numeri negativi in numeri positivi e poi possiamo dire che l'importo dovuto alaltri è di 40 rupie. Per la convenienza dell'utente, dovremmo in realtà visualizzare il risultato coninformazioni corrette su come il risultato dovrebbe essere interpretato. C'è un certo elemento didesign il modo in cui l'output del programma dovrebbe interagire con l'utente anche se si tratta di un programmanon interattivo.Bene questo illustra il modo in cui corre il nostro programma. Invece di guardare le slide wescelse di mostrarvi come sarebbe stata realizzata esattamente l'applicazione – è un semplice comando checombina un programma Java al suo corrispondente formato eseguibile chiamato come file di classe. Mostriamoeseguendo esplicitamente il programma che il programma di esecuzione accetta alcuni dati da elaborare eproduce il risultato.illustra anche le idee reali nelle precedenti sessioni in cui abbiamo parlato del fatto che perqualsiasi programma qualche input sarebbe richiesto, e ci sono molti meccanismi per accettare l'input. Allo stesso modo, un programma genererebbe qualche output e ci sarebbero un numero dimeccanismi per la visualizzazione dell'output. Qui, per la versione della riga di comando, abbiamo scelto che il dispositivo di inputfosse la tastiera, ovvero quello che abbiamo fatto digitando i comandi sula tastiera. E il dispositivo di output era un terminale a base di testo il video del tuo monitor videoin realtà nel nostro caso si trattava di un'applicazione terminale Windows. È possibile guardare in alto cheapplication up ricercando il prompt dei comandi sul proprio sistema Windows.
(Riferimento Slide Time: 25:12)
Questa slide sintetizza ciò che abbiamo visto finora. Ora andremo avanti e guardiamo il programma Java effettivoe cercheremo di collegarlo con i vari diagrammi di blocco che avevamo già visto prima.(Fare Slide Time: 25:28)
Cerchiamo di guardare la prima parte della storia, registrando i coinquilini. Abbiamo visto cheregistrarsi ai coinquilini sta semplicemente eseguendo un loop fino a quando tutti i coinquilini sono registrati, questoera l'idea che avevamo pensato. Analizziamo il codice sorgente del comando che avevamoappena visto.
(Riferimento Slide Time: 25:54)
Invece di utilizzare il terminale potrebbe essere una buona idea introdurre un editor per questo scopo.Ecco il nostro codice sorgente Java del programma. Come un tipico programma Java, inizia facendoalcune importazioni di funzionalità Java di cui avremmo bisogno, poi c'è una singola classe, la class faircondividi e l'intero programma è contenuto all'interno di questa classe. Come ben noto, un programma Javainizia con un main – statico di un metodo pubblico, metodo statico chiamato main che è qui inquesto. È dichiarato come: vuoto statico pubblico principale (String [] args).
In questo hanno solo due parti il setup e il comando - line di processo. Andiamo a elaborare la riga di comando. Come si può vedere nelle slide che il processo della funzione di riga di comando è abbastanzapiccolo, infatti l'unica cosa che fa è che guarda se la variabile di colore &ldolo ha il valoreregister o reg, oppure ha il costo o l'exp, oppure ha il valore report o rep, (ignorando i casi), e a seconda del valore che richiama il metodo corrispondente.Se il valore &ldL 'argento' è registro o reg (ignorare il caso) allora richiama il metodo adoRegistration. Se si tratta di spese o di exp allora richiama doExSpese, se si segnala allora sichiama doReport. La funzione di elaborazione della riga di comando è semplicemente fondamentalmente un dispatchera seconda di ciò che c'è sulla riga di comando, dispera il metodo corrispondente. Comeottiene l'accesso alla riga di comando? Ottiene l'accesso alla riga di comando tramite questa variabilequesto è un parametro che rappresenta la riga di comando che digitiamo sul nostro terminale.
Come arriva questa informazione di riga di comando per questo metodo di riga di comando benche arriva attraverso il principale. Notate che il principale stesso prende il parametro &ldO args, questo è statodefinito per rappresentare gli argomenti della riga di comando per un programma Java; questo è uno standard Java.Quindi, qualunque sia digita sulla riga di comando all'interno del proprio programma è disponibile a questa funzioneprincipale come parametro. E all'interno del nostro programma vediamo che tutto quel che principale fa è passa il parametro&ld'args si allinea alla funzione di riga di comando del processo per un'ulteriore elaborazione.Per il momento ignoreremo questa funzione doSetup, alla fine saremo a un certo puntoin quello che fa. Concentriamoci sulla linea di comando dei processi e andiamo avanti. Avendo visto come le informazionidalla riga di comando arrivano alla funzione di riga dei comandi di processo, vediamo chela funzione di riga dei comandi di processo sta solo andando a guardare il primo valore dell'array degli argomenti,lo memorizzano in modalità e lo utilizzano. Se la stringa di modalità è la stessa del registro allora spedire questo metodo.
Si nota inoltre che gli argini, gli argomenti della riga di comando, vengono passati a questo metodo. Se la modalità,che è la prima stringa sulla riga di comando è spesa quindi spedisce il metodo doExSpesee passa anche l'intera riga di comando corrente al metodo do spese anche, proprio come principalel'ha passata a processCommandLine (), questa funzione supera ulteriormente la variabile &ld'args indietroa doRegistration (), doExSpese () o doReport () come il caso potrebbe essereosservare.
Questa riga di comando di processo agisce più come un dispatcher osservando qual è l'operazioneil comando utente che è stato richiesto. Se il comando utente viene registrato quindi eseguire l'operazione di registrazione. Se il comando utente viene a scapito quindi eseguire la registrazione delle spese. Seil comando utente è report genera quindi il report per l'utente che è stato specificato.
(Riferimento Slide Time: 32:50)
Vediamo di doRegistration (). Il metodo doRegistration calcola per la prima volta il numero dicoinquilini. Il numero di coinquilini è semplicemente il numero di argomenti della riga di comando menouno. La riga di comando ha specificato gli utenti per la registrazione come segue:$java fairShare register Aamod Abhijit Anuradha Rustom Shekher
Quindi, se saltiamo la prima parola chiave registro poi i prossimi 5 sono i nomi dei coinquilini così seil numero di parole sulla riga di comando è X allora X -1 è il numero dei coinquilini, se laprima parola è registrata.
Ecco cosa è così che il programma calcola per la prima volta un certo numero di coinquilini. Una volta fatto il numerodei coinquilini, crea semplicemente un database e li registra. Arriveremo alla creazionedel database un po' dopo. Nel frattempo cerchiamo di guardare al registro nuovicoinquilini, ricordando che quando una registrazione avviene è un inizio fresco non ci sono dati non ci sono eventinon ci sono spese fatte finora e l'unica cosa che è fatta è che le informazionisu chi sono i coinquilini sono raccolte.
Vediamo di rappresentare questa informazione come riga di intestazione nel nostro database così il metodo del coinquilino registratocrea solo una tale intestazione e lo scrive nel file, questo è tutto quello che registra il coinquilino. Torneremo sui dettagli di questo database e file e così via in un po' dimentre. Qui abbiamo voluto solo illustrare il funzionamento del metodo del doRegister.
(Riferimento Slide Time: 35:41)
Ora andiamo avanti e guardiamo la parte successiva che è doExpense (). Ricordati che la riga di comandodoExpense coinvolge la parola chiave delle spese, il nome del coinquilino che haspeso i soldi, e la quantità di denaro che viene speso, tutte queste informazioni sono disponibilisulla riga di comando e quindi il metodo delle spese è programmato per accettare la riga di comando. E abbiamo già visto che la riga di comando viene passata da main to processriga di comando e linea di comando di processo per fare spese.Il primo argomento della riga di comando è il nome della persona che ha trascorso e il secondo argomentoè l'importo speso. Il metodo delle spese di lavoro è il primo punto in cui ora abbiamo bisogno diconvertire qualcosa che sia in forma stringa a qualcosa che in una forma interna per il nostro programma.La quantità di denaro che viene pagata da questo particolare coinquilino è una stringa di caratteri sulla riga di comando. Così, quando Aamod spenta 100 rupie quello che hai digitato come 100 è in realtà solo un mucchiodi caratteri 100.
Questa stringa di caratteri deve essere convertita al valore numerico 100, questa è la fase diconversione dall'input a un modulo che viene utilizzato all'interno di un linguaggio di programmazione che avevamo vistoprima. In questo caso sembra essere solo una dichiarazione quindi tutto ciò che fa è che la rappresentazione di stringa èconvertita al doppio valore e memorizzata in una variabile E. Ora il metodo do scapito richiamaun altro metodo addEvent () che a breve vedremo.
Proprio come il metodo doRegistration () ha creato un record di intestazione, il metodo doExpense ()crea un record di spesa e lo scrive nuovamente nella banca dati. Il metododoRegistration () elimina qualsiasi database precedente e crea un nuovo database fresco,mentre il metodo doExpense () deve sempre aggiungere al database corrente.
Vediamo cosa aggiunge l'evento, il metodo addEvent () ottiene per primo l'indice del coinquilino, questo è un altro esempio di conversione ma è leggermente sottile. Il nome del coinquilinoche ha pagato è arrivato come parametro &ld'ultimo per il metodo add add. Il nome è una stringae dobbiamo utilizzare la funzione getIndex per ottenere l'indice del dato nome inla schiera dei coinquilini.Il metodo getIndex prende il nome del coinquilino e restituisce l'indice del coinquilinonella matrice degli ID. A questo punto vorrei ricordare che poche sessioni fa abbiamo parlato dila differenza tra input-output e parametri di passaggio e di ritorno.Ecco un esempio di metodo di ottenimento dell'indice, o funzione se lo si desidera, che accetta il parametro namename e restituisce l'indice come valore di ritorno. Una volta ottenuto l'indice di fila del particolare coinquilinoallora ora desideriamo calcolare chi ha speso quanto e qual è ilper capo condividi. Questo è fatto in modalità addEvent del programma: eseguiamo un loop su tutti i coinquilini della stanzae se l'indice ith è lo stesso che ha pagato allora aggiortiamol'importo a quel determinato indice, oppure è il 0.Così, abbiamo una schiera che ha come numero di coinquilini e per tutti i coinquilinitranne colui che ha pagato il contenuto sono 0, per il coinquilino che ha pagato il contenutosono l'importo dei soldi pagati. Il metodo di aggiunta degli eventi poi passa acalcola la fair share.Ora, qual è il metodo di calcolo della fair share di metodo? Ebbene, questo è il punto in cui dividiamo l'importoche è stato pagato ugualmente tra tutti gli altri. Questo metodo è stato illustrato in precedenza,vediamo come è stato implementato. La fair share compatta calcola semplicemente la per testapoi aggiorna la schiera di share head per ogni coinquilino. Come è fatto quell' aggiornamento? Se l'attuale coinquilinoè lo stesso che ha pagato allora il valore è la cifra che
Il coinquilino ha pagato meno la sua o la sua per capo condividi, se si tratta di qualsiasi altro coinquilino allora semplicementela quota per capo.Una piccola digressione, speriamo che tu capisca questa sintassi.Considera la seguente istruzione:int x = (y == 0)? 1: 0Questo è chiamato come operatore ternario e il modo in cui opera è che se il booleano (y == 0) èvero allora si imposta x per essere uguale a 1 e se il booleano è falso imposta il suo valore a 0. Questo èdiverso da un comunicato condizionale che normalmente è quello che vediamo come le if statement nei nostri linguaggi di programmazione.Nel codice abbiamo usato la dichiarazione:thePerHeadShare [ i] - = (i == roommateIndex)? (amt – phs): phs;
È facile vedere che questo sta solo impostando il valore nella schiera thePerHeadShare il modo richiesto.C'è un altro modo di fare gli stessi calcoli:thePerHeadShare [ i] = theMoneySpent [ i] – phs;Perché l'importo era già registrato nella matrice theMoneySpent; il denaro speso è0 o è l'importo che è stato speso. E dai singoli soldi spesi per il valore di, possiamo semplicemente dedurre la quota per capo per ottenere i numeri richiesti nella schiera. Ancheosservare che la fair share compatta calcola l'invariante del programma.Nelle slide possiamo vedere cosa ha fatto il metodo doExpense: abbiamo visto che il addEventha effettivamente registrato i soldi spesi e poi ha calcolato la quota per capo. Averefatto che un record è stato creato e scritto al database; è tutto ciò che fa il metodo doExpense.
(Riferimento Slide Time: 45:46)
Vediamo di doReport. La segnalazione si limiterebbe semplicemente a prendere il nome della persona il cui rapportoè richiesto. Anche in questo caso viene dalla riga di comando che digitiamo che èpassato automaticamente all'argomento &ld'args archi del metodo principale. Il principale passa da &ldO args alla riga di comando del processo, la riga di comando di processo dispera il metodo corrispondente epassa anche &ldO gli args fino a quel metodo. Ecco come gli argomenti della riga di comando &ld'args si arriva arrivaalla doReport.
Per quanto riguarda la rendicontazione per un singolo individuo si tratta concettualmente, si tratta di un'ideamolto semplice. Se usiamo l'immagine del foglio di calcolo dove gli eventi sono righe e singoli o colonneallora la segnalazione per un individuo l'importo finale sta semplicemente aggiungendo i contributi o i debitiper quell' individuo in tutti gli eventi. Per ogni evento qualunque cosa questo individuo abbiacontribuito, o non contribuito, che sia da aggiungere e il numero finale è quello che deve essereriportato.Così, inizia con l'inizializzazione di theImporto da segnalare entro il 0 e basta aggiungere il per capocondividi su tutti gli eventi di quel particolare coinquilino. Infine, possiamo semplicemente restituire questo valore.
(Riferimento Slide Time: 48:29)
Questo è tutto quello che c'è al programma questa è stata una sessione abbastanza intensiva e questo è un buon momentoin pausa. Continueremo nella prossima sessione con cosa significherebbe ricordareinformazioni. Avevamo, in questa sessione, saltato le idee sulla creazione di un database, aggiornandolo,etc., ne avevamo appena parlato. Nella prossima sessione ci concentreremo su questi aspetti del nostro programma.