Quantcast

Programação em Java – Iniciação II – Por Bruno Rodrigues

44 Comentários

Trabalho de Casa

Agora que já sabem os básicos da linguagem, está na hora de utilizar os vossos conhecimentos. No âmbito de todas as coisas que vos mostrei sintam-se à vontade para explorar mais sobre os assuntos apresentados. As sugestões de “trabalho de casa” que vos apresentarei, como qualquer programa informático tem N soluções distintas. O que vos peço é que, por agora – e isto para aqueles que já têm mais experiência –, não utilizem técnicas muito avançadas, limitem-se a utilizar ou, pelo menos não fugir mais do que o essencial, aos conhecimentos por mim apresentados nestes dois primeiros tutoriais. Seria interessante apresentarem as vossas soluções, para tal sugiro ziparem o vosso projecto, colocarem-no num qualquer free file server (aceito sugestões acerca de qual) e postem o link aqui. A minha sugestão de resolução, irei postar no próximo tutorial, ou seja, daqui a duas semanas.

Loja

A loja “Vendemos Tudo Baratinho – Pplware Shop” é a mais recente Loja da mundialmente conhecida multinacional “Vendemos Tudo Baratinho“.

Esta tem diversos funcionários. Estes funcionários são divididos por funções: caixa, armazém, limpeza, repositores, contabilidade, segurança, Team-Leader, Manager da Loja – cada secção tem no mínimo 2 e no máximo 3 funcionários e cabe-lhe a si contrata-los.

Cada uma dessas funções, corresponde a uma secção e cada secção tem um Team-Leader específico e único a essa secção – também caberá a si contratar os Team-Leaders, aplicando-se o mesmo ao Manager da loja.

A Loja tem a liberdade de escolher que produtos vender mas, tem de vender um mínimo de 15 produtos, de pelo menos 3 categorias diferentes: tecnologia, comida e vestuário – cabe-lhe a si definir com que produtos irá abastecer a loja.

Todos os produtos têm um stock mínimo de 5 unidades e máximo de 10 unidades, podendo este valor ser alterado. Quando se vender um produto, se este baixar do stock mínimo deverá ser automaticamente encomendado uma quantidade que faça com que o stock atinja o valor mínimo + 1.

A loja tem uma lista de clientes com os dados destes.

As vendas contêm a informação do produto, do vendedor e do cliente e são guardadas para consulta futura. Deve ser possível consultar as vendas por mês, por ano, por dia e entre duas datas, mostrando os produtos vendidos, quem os vendeu, quem os comprou e o total de euros conseguido.

As compras poderão ser feitas na loja ou online, caso sejam feitas online é necessário uma fila de espera em que só se procederá ao despacho da 2ª encomenda que chegou depois de despachar a 1ª, a 3ª depois de despachar a 2ª, etc.. ou seja, first in, first out (isto faz parte da política da empresa).

Bem, o exercício foi inventado por mim e nunca fiz nada do género que não sou professor mas, penso que dá para utilizar todos os conhecimentos adquiridos até agora. Poderá ainda ser útil o seguinte recurso: http://java.sun.com/javase/6/docs/api/java/util/GregorianCalendar.html.

Notas finais

Espero que tenham gostado deste segundo tutorial. Só vai haver mais um de iniciação, depois passarei a outros aspectos da programação em Java. O tempo para este tutorial não foi muito devido à época natalícia, ter uma família nesta altura não é fácil J ainda assim espero que corresponda ás expectativas de todos.

Partilhar:
Tags:

Comentários

44
  1. Avatar de HikariKyubi
    HikariKyubi

    Recomendo que o próximo tutorial tenha uma pequena secção a explicar algumas das excepções mais comuns em Java. Normalmente costuma ser onde os iniciados tem mais chatices. 🙂

    1. Avatar de HikariKyubi
      HikariKyubi

      Mas realmente esqueci-me de dizer, o tutorial está bem bom. Good job 😀

  2. Avatar de MM
    MM

    Muito bom sem dúvida.. Agora vou ter de ir fazer os trabalhos de casa

  3. Avatar de Pedro Silva
    Pedro Silva

    Está muito bom este tutorial, mas, se me permites, tenho aqui alguns reparos a fazer.

    “…recorrendo a uma LP dum paradigma funcional (como a linguagem C).”

    Esta afirmação, na minha opinião, está errada. A linguagem C enquadra-se no paradigma imperativo e não funcional. Paradigma funcional implica algo que não tem sequência e é digamos “intemporal”. Ora, um programa C implica uma sequência de instruções que são executadas ao longo do tempo e , por isso, enquadra-se no paradigma imperativo.
    Um exemplo do paradigma funcional é o Haskell.

    Os operados bitwise que referes como pertencentes aos operadores lógicos, na minha opinião não estão bem enquadrados. Esses operadores não retornam um “booleano”. São operações sobre bits e aí referes bem o “bitwise”.

    De resto, está muito bom e quero dar aqui os meus parabéns.
    Espero que consideres esta crítica como algumas reflexões sobre o que li.

    cumps

    1. Avatar de leitorassiduo
      leitorassiduo

      Olá,

      Sim, tens toda a razão, deveria ser “imperativo” e não “funcional”. Funcional é o bom do Haskell, LISP,etc.. 🙂

      Obrigado pelo reparo, é o que dá fazer as coisas às tantas da manhã 😛

      1. Avatar de Ana Narciso

        Corrigido.

        A propósito, grande tutorial!

  4. Avatar de Lycanthrope
    Lycanthrope

    Bom dia. Não sou da área de informática mas os posts estão bons e apelativos a uma breve incursão de exploração :)… Parabéns. Só iria sugerir a disponibilização das duas “aulas” em pdf para uma consulta mais fácil e offline ;).

    Desde já o muito obrigado.

    Cumps

  5. Avatar de Hélio Moreira
    Hélio Moreira

    Muito bom tutorial. É uma linguagem que nunca usei (por não saber), mas agora tenho tudo para me tornar um Master 🙂

    Parabén Bruno pelo excelente tutorial.

    Cumps

  6. Avatar de Oscar ins
    Oscar ins

    Exclente este post. Eu acabei a pouco o curso de programador e o java sem duvidas e a linguagem de eleição.
    Mas como disse estou a começar e este post deveria ter aparecido a 3 anos atras!!!

    Bruno por favor continua sim!!!

    1. Avatar de Oscar ins
      Oscar ins

      Não era Bruno mas sim o Sr. Hélio Moreira.

      Desculpem.

      1. Avatar de leitorassiduo
        leitorassiduo

        Sou eu (Bruno) que faço os artigos e o Hélio coloca-os no site 😉

        1. Avatar de Óscar Matins
          Óscar Matins

          Bem então muito obrigado aos dois!!!
          Uma sugestão ou um pedido…para quando um tutorial para SERVLET???Ligação á base de dados???
          Um abraço.

  7. Avatar de Nuno
    Nuno

    Sinceramente acho que está um tutorial algo para o complexo e nota-se muitos erros de português, devias ter revisto melhor o artigo. De resto até está bastante completo.

    1. Avatar de leitorassiduo
      leitorassiduo

      Erros de português?!

      É possível mas assim à primeira não identifico nenhum. Quando assim fôr diz onde estão para que possa ser corrigido. Obrigado pelo reparo 🙂

      Quanto ao tutorial estar complexo isto é iniciação para quem já tem noções de programação e não para leigos na matéria como já foi dito por alguém no meu anterior artigo.

      1. Avatar de Só detectei 1
        Só detectei 1

        Só detectei 1 erro de Português, na parte das “Palavras Reservadas”.

        Onde está:
        “…nos nossos programas, à que ter em atenção as …”

        Deveria estar:
        “…nos nossos programas, há que ter em atenção as…”

        Tutorial muito bom, no meu entender.

        Gostaria de dar os parabéns ao autor do tutorial e às pessoas que tornam possível a sua publicação.

    2. Avatar de Bónus

      Não vi nenhum erro de português…

      1. Avatar de Stênio
        Stênio

        Isto é porque ele não conseguiu acompanhar a “complexidade” do artigo.

  8. Avatar de Tagus
    Tagus

    Excelente post Bruno, no entanto tenho um reparo a fazer… qdo dizes “Ex.: se a variável ‘int i = 10’ e fizermos ‘i++’, i ficará com o valor 11.” isto é verdade no entanto tb existe o ++i e aqui existe diferenças onde o i++ devolve i só dps é q incrementa enqto o ++i, primeiro incrementa só dps é q devolve.
    Ex.:
    int i = 10;
    int j = 11;
    System.out.println(++i);
    Devolve -> 11
    System.out.println(j++);
    Devolve -> 10

    Eu digo isto pq existe mta gente boa que não sabe a diferença.
    Cumps e continua o excelente trabalho

    1. Avatar de leitorassiduo
      leitorassiduo

      Tens toda a razão, como já disse este tutorial foi feito com pouco tempo e sempre às tantas da noite, tentei que não escapasse nada mas nem sempre se consegue.

      Thanks pelo feedback 🙂

      1. Avatar de Vítor M.

        Os leitores também andam por cá para ajudar. Uma das formas é eventualmente corrigir o que pretensamente possa estar incompleto.

        Há que dar utilidade a este magnifico auditório 😀

        1. Avatar de Tagus
          Tagus

          Vitor, agora só falta dar a conhecer aqui aos leitores do pplware um pco do java para web.
          Com as famosas frameworks do Java como Java server faces (jsf), Richfaces,Facelets, Spring, Acegi …
          Ai sim, um pessoal iria ficar maravilhado com esse mundo que é “recente” e visto não existir mts tutoriais sobre isto pela net.
          A meu ver é uma excelente linguagem para web que é segura, rápida, intuitiva e bastante robusta.

      2. Avatar de Tagus
        Tagus

        Claro e percebo. A meu ver é sempre bem vindo tutoriais sobre java.

    2. Avatar de Melech
      Melech

      Reparo importante:

      int j = 11;
      System.out.println(++i);
      Devolve -> 11
      System.out.println(j++);
      Devolve -> 10

      Sendo j = 11, “System.out.println(j++);” devolverá 11, e não 10, como colocaste. 😉

      1. Avatar de Tagus
        Tagus

        Claro, gralha minha!! :p mas ficou a ideia. 😀

    3. Avatar de Julia
      Julia

      no 2º caso, estás a incrementar ou decrementar? acho que está mal. o resultado deveria ser 11. Ou estou errada.

  9. Avatar de Mário Carvalho
    Mário Carvalho

    Excelente post!

    Tenho apenas um comentário a fazer. Penso que este exercício não é adequado a uma iniciação em programação. Pelo menos, os primeiros exercícios que eu fiz quando estava nas aulas de IP da FCT não eram assim. Acho que fazer um contactBook e depois uma bankAccount eram as melhores soluções para depois fazer este exercício.

    1. Avatar de leitorassiduo
      leitorassiduo

      Olá,

      Como referi não tenho a mínima experiência a fazer exercicios, nunca fui professor por isso, fiz o melhor que soube (apesar de ter noção que não deve estar grande coisa) 😀

      1. Avatar de Mário Carvalho
        Mário Carvalho

        O tutorial está excelente mesmo! Foi só pena o exercício mas deixa, agora vamos ver as resoluções.

        Abraço

    2. Avatar de Anfanger
      Anfanger

      Melhor mesmo era fazer um microMatrix. 😀

      1. Avatar de Mário Carvalho
        Mário Carvalho

        microMatrix?

        1. Avatar de Anfanger
          Anfanger

          Sim. microMatrix é o projecto final da cadeira de IP este semestre na FCT.

          1. Avatar de leitorassiduo
            leitorassiduo

            Isso é tudo uma questão de preço 😛

  10. Avatar de NunoMGF
    NunoMGF

    Ja agora. Para quando um tutorial de F# ?

  11. Avatar de Oscar Martins
    Oscar Martins

    É possivel obter este tutorial em PDF???

    Obrigado.

  12. Avatar de Filipe Lourenço

    Muito bom. Parabéns pelo esforço. Lido com Java há muitos anos e foi agradável recordar o início quando aprendi.

    Na altura foi a minha primeira linguagem de programação, quando entrei no curso (Engª Informática @FCTUC) e senti grande dificuldade em entender o “ciclo for”. Hoje em dia programo com a facilidade com que falo. É engraçado estas coisas. 😛

  13. Avatar de Pek
    Pek

    Reparo:

    · Operadores de Comparação:

    o Maior do que: >

    o Menor do que: >

    — não deveria ser —

    · Operadores de Comparação:

    o Maior do que: >

    o Menor do que: <

    Bom Post. Parabéns. Continua.

    1. Avatar de leitorassiduo
      leitorassiduo

      Pois, devia 🙂

      Thanks

  14. Avatar de stereobroo
    stereobroo

    Oi Bruno,

    é sempre de louvar o tempo consagrado aos outros.

    Anseio pelo próximo episódio deste excelente tutorial !

    Cumps

    1. Avatar de leitorassiduo
      leitorassiduo

      Muito obrigado pelo feedback 🙂

  15. Avatar de A.F.
    A.F.

    Excelente trabalho!! Obrigado por partilhar.

  16. Avatar de unknowc
    unknowc

    Era interessante uma tutorial de java sobre ligação a SQL server, fazia-me muito jeito nesta altura…

    Cumprimentos e parabéns pelo tutorial 😉

  17. Avatar de Cristiano Alves
    Cristiano Alves

    Tenho pena que não tenham existido mais topicos de Java. Há alguma tempo que procuro ajuda sobre a elaboração de um programa em Java para criação de um fluxograma. Tenho grande parte do código que posso disponibilizar, se alguém poder ajudar, fico muito agradecido.

  18. Avatar de Dario Rosario

    Parabens, grande tutorial.
    No entanto, quando tento aceder a pagina 2 ou 3 recebo este erro:
    Error 503 Service Unavailable

    Service Unavailable

    Guru Meditation:

    XID: 790840455

    Varnish cache server

    Mais alguem com o mesmo erro?

  19. Avatar de andre.flores
    andre.flores

    boa tarde,

    Ao tentar exportar para pdf
    ocorre o seguinte erro:
    TCPDF error: Alpha channel not supported: http://pplware.sapo.pt/wp-content/uploads/2010/01/java2012-300×260.png

Deixe um comentário