Loading
Nota de Estudos
Study Reminders
Support
Text Version

Terminal Application-Java Program & 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

    +

Olá a todos, bem-vindos à primeira sessão da segunda semana da introdução ao moderno curso de desenvolvimento de aplicações. Comecemos por revisar as considerações sobre o design para um aplicativo de linha de comandosque vimos anteriormente. Esta será uma revisão mais intensa,e depois disso vamos analisar a implementação da solução real da linha de comando.Este curso será um exemplo ilustrativo; é uma implementação que é feita para ilustrarcomo a linha de comando deve funcionar.
(Consulte O Tempo De Deslizamento: 00:54)
Vamos começar com uma pergunta, quando você acha que é adequado, para uma aplicação de linha de comando, usar um estilo interativo ou, quando é adequado usar um estilo não interativo?Temos visto o que se entende por uma abordagem interativa versus uma abordagem não interativa para uma linha de comando. Para recapitear, uma abordagem interativa é aquela quando as informações necessárias parao programa é disponibilado após o início do programa.Em contraste em um aplicativo não interativo todas as informações necessárias para a execuçãodevem ser fornecidas antes de o programa iniciar a execução. Você deve anotar as suas próprias listasde pontos sobre as vantagens e desvantagens, ou o que você pensar sobre estilo interativoversus estilo não interativo. Mais adiante incentivamos você a discutir isso nos fóruns para este curso. Aqui está outra tarefa para você: trace a evolução da ideia de um programa de execuçãoa partir de seus primóricos.Máquinas de computação surgem desde cerca de 1945, mas nesses dias programar um computadorsignificava conectar os fios e interruptores. Então, a ideia de um programa de execução erabem diferente naqueles dias. Ao longo das décadas a ideia evoluiu até os dias atuais. Nósencorajamos você a olhar para cima dessa ideia, traço-la, talvez você pudesse dividir o período inteiro emdécadas, digamos, 1945-55, 1955-65, 1965-75 e assim por diante até os dias atuais.
Esta seria uma ideia interessante em si mesma e nos dará alguma base para entender a formacomo este curso foi projetado.(Consulte o Tempo de Slide: 03:42)
O professor Sane usou uma abordagem não interativa quando ilustrou o problema da justashare. Lembre-se de que existem 3 modos em que esperamos que o aplicativo de compartilhamento justo seja executado. Emsua tela você vê os slides que tínhamos usado antes.
• Um dos modos é o modo de registro no qual todos os colegas de quarto registram seus nomespara o aplicativo. Isso permite que o aplicativo reconheça os colegas de quarto corretos no futuro. Tínhamos visto que a fase de registro seria simplesmente um loop rodando sobre todos osos nomes dados na linha de comando.
• O principal cavalo de trabalho da aplicação do curso é a fase de gravação de despesas emque registramos as despesas para um evento por colegas de quarto. A fase de despesas seriasimplesmente calculando o compartilhamento de cabeça dada quantidade de para cada colega de quarto.
• Finalmente, a geração de relatórios simplesmente envolveria a aceitação do nome do colega de quartocujo relatório deve ser gerado. Lembre-se de que esta é uma decisão de design para nós, nós temosdecidido que nós estaremos gerando relatório para um e apenas um colega de quarto. Háoutras escolhas que tínhamos visto antes mas optamos por não usar nenhuma delas.
(Consulte O Tempo De Deslizamento: 05:57)
Aqui está o diagrama de blocos do nosso aplicativo de linhas de comando proposto. O esboço vermelho enfechaa funcionalidade de nossa aplicação. A entrada vem de um terminal, para nós é o teclado.A saída está no monitor de vídeo. Os diagramas de blocos representam a funcionalidade que nósesperamos que exigimos no aplicativo. Tínhamos visto que uma fase seria converter todas asa entrada para tipos de dados adequados dentro da linguagem de programação e armazená-los adequadamente.Uma vez que estes estejam disponíveis como tipos de dados adequados em nosso programa, então poderemos realizar mais um processamento. Nós também tínhamos visto o processamento que seria necessário os cálculos básicos a ideiatem sido bastante simples. Na verdade, nós também o Ilustramos usando uma planilha. Você poderiatambém experienciá-lo apenas usando lápis e papel. A simplicidade da solução também permitiu que pensássemossobre a correção.
Nosso raciocínio nos diz que nossa abordagem funcionará qualquer que seja o número de colegas de quarto, emmenos em princípio, é garantido o trabalho. Na prática do curso teremos limitaçõespor causa da implementação e muitas outras restrições, mas nossa abordagem algorítmica está correta.Finalmente, as informações que foram calculadas ou quaisquer que sejam as informações necessárias tem que serexibidas no dispositivo de saída, isso também exigiria conversão da forma internadentro do idioma e o que é necessário para o dispositivo de saída.Lembre-se de que tínhamos sugerido que para entrada assim como as partes de conversão de saída nósdevemos tentar utilizar as instalações que nos são oferecidas pela linguagem de programação, em nossa caso ele
é Java. Então, nós estaremos usando as instalações para conversões de entrada e saída que o Java fornece.Finalmente, há mais um bloco por aqui, o armazenamento de dados em memória secundária, vamoschegar a isso um pouco mais tarde.
(Consulte O Tempo De Deslizamento: 08:57)
Este slide ajuda-nos a relembrar as ideias por trás da abordagem da linha de comando. Vamos em frente erealmente olhar para uma interação terminal sobre isso.
(Consulte O Tempo De Deslizamento: 09:18)
Aqui há um terminal padrão do Windows cujo prompt temos configurado como dólar e o cursor épiscando para mostrar-nos que ele está pronto para levar um comando – o cursor pisca no prompt. A maneirade construir este programa é usar o compilador Java e compilar este programa Java para um arquivode classe. Normalmente o javac, o comando compilador Java estaria disponível como simplesmente como o comando‘ javac ’ porque ele estaria em seu caminho (configuramos ele usando o ambientevariáveis). Mas optamos por ilustrar toda a linha de comando para a sua clareza. Se a compilaçãofor bem-sucedida então tudo o que acontece é que chegamos de volta no prompt.Caso haja erros então o compilador imprime esses erros antes de nos dar o próximo promptpara o próximo comando. Uma vez que o programa compila com sucesso, podemos é claro executá-lo, mas nósprecisamos executá-lo na Java Virtual Machine (JVM). Isso é feito usando o comando java.
Na palestra vimos um erro que nos mostra que o comando que nós escrevemos para o aplicativo justoshare não estava totalmente completo. Além disso, dá um erro para o usuário final. Na verdade, um bemprograma escrito não deve mostrar tal erro em vez disso deve dizer ao usuário e oferecer uma breve mensagem de ajuda, informar guia ao usuário sobre a maneira correta de usar este programa ... etc.Deixe-nos registrar poucos colegas de quarto. Utilizarei os nomes dos meus colegas em computação persistenteInstituto. Estamos registrando 5 amigos, e aqui está o que nosso programa nos diz, ele registrou 5colegas de quarto.
Podemos agora adicionar as despesas para vários eventos que todas essas pessoas entregam. Vamos supor que Aamod é o primeiro a pagar digamos 100 rúpias para algum evento que tenha ocorrido quetodos os 5 deles tenham compartilhado, registramos isto usando o comando:$java fairShare despesa Aamod 100O comando nos diz que há algum banco de dados em um arquivo chamado fair-share.dat. Ele informanós que este arquivo existe, quantos bytes ele está consumindo até agora, o número de eventos encontrados é 0,o número de colegas de quarto encontrados é 5.
Por fim, conta-nos que o evento com despesa 100 por Aamod também foi adicionado. Acrescentemosoutras despesas de outros membros deste grupo. Suponhamos que no segundo evento eu gaste Rs.100 e contribua com Rs. 100 para todo o grupo de colegas de quarto. Semelhante ao display acima do nosso programanovamente nos informa o nome do arquivo do banco de dados, seja ele exista ou não, mas percebaque o número do tamanho – o número de bytes no arquivo foi alterado.Isso porque novas informações foram adicionadas nessa execução do programa. É importanteperceber que a execução do programa para atualização do gasto do Aamod ’ é diferente e completamentedesconectada da execução em que minhas despesas foram registradas. São duas diferentes execuções dedo mesmo programa. Vamos em frente e somemos as despesas por outros. Digamos que o Anuradhagasta 100 rúpias novamente e nosso programa armazena essas informações usando o comando:$java fairShare despesa Anuradha 100
Então Rustom paga; nós temos algumas interações com o programa que registrou despesas. Se vocêobservar o número de eventos encontrados você vai perceber que as informações que são contadasrealmente começam a partir de 0, e é por isso que quando a primeira despesa foi numerada 0. Um programabem escrito deve realmente estar informando que este que o primeiro evento seria 1 não 0. A maioria dos programadoressão confortáveis com início a partir de 0 mas os usuários típicos seriam muito confusos seseu programa dissesse que o número de eventos é 0.Eles estariam muito confusos porque estão usando este aplicativo para dizer que o primeiro eventoquando o nosso mais pago 100 deve ser gravado e este programa está dizendo que é 0. Só depois de um casalde corre para ser realizado que o nosso programa foi escrito tal que os eventos são numerados de0 e não 1. Vamos verificar isso, deixe-nos ter Shekhar contribuir com 100 rúpias novamente, este é o
quinto evento porque na verdade tivemos contribuições de 100 rúpias para 5 eventos por cadamembro individual do persistente Instituto de Computação.A saída no terminal mostra que o número de eventos é mostrado como 4, enquanto o númerode colegas de quarto é corretamente exibido como 5. Devemos realmente estar escrevendo programas de tal forma que nossosusuários entendam os resultados e as informações que estão sendo exibidas. O que fizemos de tãolonge é somar 5 eventos em que 5 membros do grupo tenham contribuído igualmente para isso significa queapós 5 eventos ninguém realmente deve nada aos outros. Vamos verificar se o nosso programa realmente relataexatamente esse caso.Nota: Executar o programa (ou veja slides) para verificar se o programa de fato retorna os resultadosmencionados aqui.
Então, se por exemplo eu peço ao nosso programa para me dizer qual é a quantia final que eu devo a ele diz 0,o que é correto. Se eu ao invés de mim se eu perguntar sobre dizer montante novamente que é 0. Se eu pedir oAnuradha, então que é 0 também. Mas vamos supor agora que temos o VI evento onde Shekhargasta 200 rúpias para o grupo. Deixe-nos agora novamente perguntar quanto deve o Abhijat deve – deveser 40 rúpias. Incrível, a resposta que é mostrada é exatamente 40.Mas, novamente, se você notar com muito cuidado há um pequeno problema, assim como os eventos que foramnumerados a partir de 0 seriam confusos para o usuário, um número como -40 é confuso particularmentequando o comentário anterior aquele número do homem diz que a quantidade devida aos outros é – 40. Deixe-meilustrar o problema olhando para o relatório do Shaker ’. Shaker tem contribuído mais para que elerealmente esteja recebendo dos outros.Observe a forma como o programa responde diz que quantia a ser recebida de outros é de 160 rúpias estefaz sentido para o usuário final. No entanto, se o usuário final vê que a quantidade devida a outros é-40, então isso pode ser confuso. O que estamos falando aqui é que precisamos estar exibindoinformações de forma consistente para o usuário final. Lembre-se a razão pela qual é menos quarenta éporque em nosso programa dentro do – dentro do programa optamos por representar a quantia quedeve ser paga por números negativos e quantidade a ser recebida por números positivos.Mas este é realmente um assunto interno, algo que é intervalo para o programa. Este ideal deverianão ter nada a ver com o usuário, ou devemos informar ao usuário que o negativo
números significam que você deve dinheiro e números positivos significa que você receberá dinheiro.Devemos informar ao usuário sobre esta convenção antes mesmo de mostrarmos assim, ou devemosconverter os números negativos para números positivos e então podemos dizer que a quantidade devida aooutros é de 40 rúpias. Para a conveniência do usuário, devemos realmente exibir o resultado cominformações adequadas sobre como o resultado deve ser interpretado. Há um certo elemento deprojetar a maneira como a saída do programa deve interagir com o usuário mesmo que seja um programanão interativo.Bem isto ilustra a maneira como o nosso programa é executado. Em vez de olhar para os slides nósoptamos por mostrar como exatamente o aplicativo seria construído – é um comando simples quecombina um programa Java ao seu formato executável correspondente chamado como arquivo de classe. Mostramosao executar explicitamente o programa que o programa executando aceita alguns dados para processar eproduz o resultado.Ele também ilustra as ideias reais nas sessões anteriores em que falamos sobre o fato de que paraqualquer programa alguma entrada seria necessária, e há muitos mecanismos para aceitação da entrada. Da mesma forma, um programa geraria alguma saída e haveria um número de mecanismospara exibir a saída. Aqui, para a versão de linha de comando, escolhemos que o dispositivo de entradaseria o teclado, que é o que fizemos ao realmente digitar os comandos emo teclado. E o dispositivo de saída era um terminal baseado em texto o vídeo seu monitor de vídeona verdade no nosso caso era um aplicativo de terminal do Windows. Você pode olhar para cima olhar queaplicativo em busca de prompt de comando em seu sistema Windows.
(Consulte O Tempo De Deslizamento: 25:12)
Este slide resume o que vimos até agora. Vamos agora seguir em frente e olhar para o programa Java reale tentar conectá-lo com os vários diagramas de blocos que tínhamos visto antes.(Consulte o Tempo do slide: 25:28)
Vamos tentar olhar para a primeira parte da história, registrando os colegas de quarto. Vimos queregistrando os colegas de quarto está simplesmente executando um loop até que todos os colegas de quarto estejam registrados, estefoi a ideia que nós tínhamos pensado. Olhemos para o código-fonte do comando que tínhamosacabado de ver.
(Consulte O Tempo De Deslizamento: 25:54)
Em vez de usar o terminal pode ser uma boa ideia introduzir um editor para esta finalidade.Aqui está o nosso código-fonte Java do programa. Como um programa típico do Java, ele começa fazendoalgumas importações de funcionalidades Java que precisaríamos, então existe uma única classe, feira de classecompartilhar e todo o programa está contido dentro desta classe. Como você muito bem sabe, um programa Javacomeça com um main – um método public, método estático chamado main que está aqui emeste. Ele é declarado como: public static void main (String [] args).
Nesse tem apenas duas partes fazem o setup e o processo de comando-line. Vamos para o processamento da linha de comando. Como você pode ver nos slides que o processo de função de linha de comando é bempequeno, na verdade a única coisa que ele faz é observar se a variável ‘ args ’ tem o valorregister ou reg, ou tem o valor gasto ou exp, ou tem o relatório de valor ou rep, (enquanto ignoram os casos), e dependendo do valor que ele chama o método correspondente.Se o valor ‘ args ’ for register ou reg (ignorar case) então ele chama o método paradoRegistration. Se for gasto ou exp então ele chama doExpenses, se for relatório então elechama doReport. A função de processamento da linha de comando é apenas basicamente um despachantedependendo do que está lá na linha de comando, ele despacha o método correspondente. Comoele consegue acesso à linha de comando? Ele obtém acesso à linha de comando através desta variáveleste é um parâmetro que representa a linha de comando que digitamos em nosso terminal.
Como essa informação de linha de comando chega para este método de linha de comando de processo bemque chega através do main. Percebesse que o próprio principal leva parâmetro ‘ args ’, isto foidefinido para representar os argumentos da linha de comandos para um programa Java; este é um padrão Java.Então, qualquer que você digite na linha de comando dentro do seu programa ele está disponível para esta funçãoprincipal como parâmetro. E dentro do nosso programa vemos que tudo o que o principal faz é passar o parâmetro‘ args ’ para a função de linha de comando do processo para posterior processamento.Para o momento que ignoraremos esta função doSetup, eventualmente em algum ponto olharemosno que ele faz. Vamos nos concentrar na linha de comando do processo e ir em frente. Tendo visto como asinformações da linha de comandos chegam à função de linha de comandos do processo vemos quea função de linha de comandos do processo é apenas ir olhar o primeiro valor da matriz de argumentos,armazená-la no modo e usar isso. Se a string do modo é o mesmo que registrar então despacho este método.
Também observe que os args, os argumentos da linha de comandos, são transmitidos para este método. Se o modo,que é a primeira string na linha de comando é despesa então despachar o método doExpensese também passar a linha de comando inteira atual para o método do gasto também, assim como mainpassou-a para processCommandLine (), esta função passa ainda mais a variável ‘ args ’ adiantepara doRegistration (), doExpenses () ou doReports () como o caso pode serobservar.
Esta então linha de comando do processo age mais como um despachante olhando para o que é a operaçãoo comando do usuário que foi solicitado. Se o comando do usuário for registrado então execute a operação de registro. Se o comando user é despesa então realizar a gravação de despesa. Seo comando user for report então gere o relatório para o usuário que foi especificado.
(Consulte O Tempo De Deslizamento: 32:50)
Deixe-nos olhar para doRegistration (). O método de doRegistration calcula primeiramente o número decolegas de quarto. O número de colegas de quarto é simplesmente o número de argumentos da linha de comandos menosum. A linha de comandos especificou os usuários para registro da seguinte forma:$java fairShare register Aamod Abhijit Anuradha Rustom Shekher
Então, se pularmos a primeira palavra chave registra então os próximos 5 são os nomes dos colegas de quarto então seo número de palavras na linha de comando for X então X -1 é o número de roommates, se a primeira palavraé cadastro.
É isso que é assim que o programa primeiro calcula um número de colegas de quarto. Uma vez que o númerode roommates é feito, ele simplesmente cria um banco de dados e registra-os. Chegaremos à criaçãodo banco de dados um pouco mais tarde. No entretanto deixe-nos olhar para o registro novoscolegas de quarto, lembre-se que quando um registro ocorre é um recomeço não há dados não há eventosnão há despesa feita até agora e a única coisa que é feita é que as informaçõessobre quem são os colegas de quarto são coletados.
Vamos representar essas informações como uma linha de cabeçalho em nosso banco de dados para que o método de roommate registradoapenas crie tal cabeçalho e o grava no arquivo, ou seja, tudo o que registrar colega de quartofaz. Nós vamos voltar aos detalhes deste banco de dados e arquivos e assim por diante em um poucoenquanto. Aqui nós só queríamos ilustrar o funcionamento do método doRegister.
(Consulte O Tempo De Deslizamento: 35:41)
Deixe-nos agora ir em frente e olhar para a próxima parte que é doExpense (). Lembre-se que a linha de comandosdoExpense envolve a palavra-chave de despesas, o nome do roommate que temgastou o dinheiro, e quantidade de dinheiro que está sendo gasto, todas essas informações estão disponíveisna linha de comando e, portanto, o método do gasto é programado para aceitar a linha de comando. E já vimos que a linha de comando é passada de main para processarlinha de comando, e linha de comando do processo para fazer despesa.O primeiro argumento da linha de comando é o nome da pessoa que gastou e o segundo argumentoé o valor gasto. O método de despesa é o primeiro ponto em que agora precisamos deconverter algo que seja em forma string para algo que em um formulário interno para o nosso programa.A quantidade de dinheiro que é paga por este colega de quarto em particular é uma sequência de caracteres na linha de comandos. Por isso, quando Aamod cuspe 100 rúpias o que você digitou como 100 é na verdade apenas umbando de personagens 100.
Essa sequência de caracteres tem que ser convertida para o valor numérico 100, esta é a fase deconversão de entrada para um formulário que é usado dentro de uma linguagem de programação que tínhamos vistoanteriormente. Neste caso parece ser apenas uma instrução de modo que tudo o que faz é a representação string éconvertida para o valor duplo e armazenada em uma variável E. Agora o método de despesa do faça chamaoutro método addEvent () que veremos em breve.
Assim como o método doRegistration () criou um registro de cabeçalho, o método doExpense ()cria um registro de gastos e, em seguida, novamente o grava no banco de dados. O métododoRegistration () exclui qualquer banco de dados anterior e cria um novo banco de dados novo,considerando que o método doExpense () deve sempre adicionar ao banco de dados atual.
Deixe-nos olhar para o que adicionar evento faz, o método addEvent () primeiro obtém o índice do roommate, este é outro exemplo de conversão mas é ligeiramente sutil. O nome do colega de quarto deque pagou chegou como parâmetro ‘ por ’ para o evento add. O nome é uma string, e precisamos usar a função getIndex para obter o índice do nome dado ema matriz dos colegas de quarto.O método getIndex leva o nome do roommate e retorna o índice do roommatena matriz ID ’. Neste ponto eu gostaria que você relembrasse que algumas sessões atrás falamos dea diferença entre input-output e parâmetro de passagem e valores de retorno.Aqui é um exemplo do método get index, ou função se você irá, que aceita o parâmetro de nome stringe retorna o índice como valor de retorno. Uma vez que obtemos o índice de linha doparticular de roommate então desejamos agora calcular quem gastou o quanto e qual é opor ação de cabeça. Isso é feito em método addEvent do programa: executamos um loop sobre todos os companheiros de quarto do quartoe se o i-ésimo índice é o mesmo que o roommate que pagou então atualizamosa quantidade naquele índice específico, ou é 0.Então, temos uma matriz que tem como muitos elementos o número de colegas de quarto e para todos os colegas de quarto, exceto aquele que pagou o conteúdo são 0, para o roommate que pagou os conteúdossão a quantia do dinheiro que foi pago. O método add event então passa acomputar a parcela justa.Agora, qual é o método de cálculo do método de cálculo fazendo? Bem, este é o ponto em que dividimos o valorque foi pago igualmente entre todos os outros. Este método foi ilustrado antes,deixe-nos ver como ele foi implementado. O compartilhamento de feira de cálculo simplesmente calcula o por cabeçaentão ele atualiza o array de compartilhamento de cabeça para cada colega de quarto. Como essa atualização é feita? Se o roommate de correnteé o mesmo que quem pagou então o valor é a quantia que isso
roommate pagou menos o seu ou seu por cabeça compartilhe, se for qualquer outro colega de quarto então ele simplesmenteo por cabeça compartilhe.Uma pequena digressão, esperamos que você entenda esta sintaxe.Considerar a seguinte instrução:int x = (y == 0)? 1: 0Este é chamado como operador ternário e a forma como ele opera é que se o boolean (y == 0) fortrue então ele configura x para ser igual a 1, e se o boolean for falso configura então seu valor para 0. Isto édiferente de uma instrução condicional que normalmente é o que vemos como a instrução if em nossaslinguagens de programação.No código nós utilizamos a instrução:thePerHeadShare [i]-= (i == roommateIndex)? (amt – phs): phs;
É fácil perceber que isso é apenas configurar o valor na matriz thePerHeadShare o modo necessário.Há uma outra maneira de fazer os mesmos cálculos:thePerHeadShare [i] = theMoneySpent [i] – phs;Porque a quantidade já estava registrada no array theMoneySpent; o dinheiro gasto é0 ou é a quantidade que foi gasto. E do dinheiro individual de todos gastovalor, podemos simplesmente deduzir o compartilhamento de cabeça por cabeça para obter os números necessários na matriz. Tambémobserve que o compartilhamento de feira de cálculo calcula o invariante do programa.Nos slides podemos ver o que o método doExpense fez: vimos que o addEventna verdade apenas gravou o dinheiro que foi gasto e depois computou o compartilhamento de cabeça por cabeça. Terfeito que um registro foi criado e gravado no banco de dados; que é tudo o que o método doExpensefaz.
(Consulte O Tempo De Deslizamento: 45:46)
Deixe-nos olhar para o doReport. Reportagens simplesmente levariam em primeiro lugar o nome da pessoa cujo relatórioé necessário. Novamente, isso vem da linha de comando que digitamos que éautomaticamente passada para o argumento ‘ args ’ do método main. A linha principal passa ‘ args ’ toprocess command line, a linha de comandos do processo despacha o método correspondente etambém passa ‘ args ’ para esse método. É assim que os argumentos da linha de comando ‘ args ’ vem chegaa doReport.
No que diz respeito à reportagem para um único indivíduo está preocupado conceitualmente, é uma ideiamuito simples. Se utilizarmos a imagem da planilha em que os eventos são linhas e indivíduos ou colunasentão o relato para um indivíduo a quantia final é simplesmente adicionar as contribuições ou dívidaspara aquele indivíduo em todos os eventos. Para cada evento qualquer que esse indivíduo tenhacontribuiu, ou não contribuiu, ou seja, o número final é o que deve serinformado.Então, ele começa com a inicializao theAmount a reportar por 0 e apenas vai na adição do por cabeçacompartilhe em todos os eventos daquele colega de quarto em particular. Por fim, podemos simplesmente devolver este valor.
(Consulte O Tempo De Deslizamento: 48:29)
Isto é tudo o que há para o programa esta tem sido uma sessão bastante intensiva e este é um bom momentopara pausar. Continuaremos na próxima sessão com o que significaria lembrarinformações. Tivemos, nesta sessão, pulando as ideias sobre a criação de um banco de dados, atualizando-o,etc., tivemos apenas uma espécie de mencioná-lo. Na próxima sessão focaremos nesses aspectos do nosso programa.