Programação em Java – Iniciação II – Por Bruno Rodrigues
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.
Este artigo tem mais de um ano
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. 🙂
Mas realmente esqueci-me de dizer, o tutorial está bem bom. Good job 😀
Muito bom sem dúvida.. Agora vou ter de ir fazer os trabalhos de casa
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
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ã 😛
Corrigido.
A propósito, grande tutorial!
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
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
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!!!
Não era Bruno mas sim o Sr. Hélio Moreira.
Desculpem.
Sou eu (Bruno) que faço os artigos e o Hélio coloca-os no site 😉
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.
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.
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.
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.
Não vi nenhum erro de português…
Isto é porque ele não conseguiu acompanhar a “complexidade” do artigo.
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
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 🙂
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 😀
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.
Claro e percebo. A meu ver é sempre bem vindo tutoriais sobre java.
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. 😉
Claro, gralha minha!! :p mas ficou a ideia. 😀
no 2º caso, estás a incrementar ou decrementar? acho que está mal. o resultado deveria ser 11. Ou estou errada.
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.
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) 😀
O tutorial está excelente mesmo! Foi só pena o exercício mas deixa, agora vamos ver as resoluções.
Abraço
Melhor mesmo era fazer um microMatrix. 😀
microMatrix?
Sim. microMatrix é o projecto final da cadeira de IP este semestre na FCT.
Isso é tudo uma questão de preço 😛
Ja agora. Para quando um tutorial de F# ?
É possivel obter este tutorial em PDF???
Obrigado.
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. 😛
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.
Pois, devia 🙂
Thanks
Oi Bruno,
é sempre de louvar o tempo consagrado aos outros.
Anseio pelo próximo episódio deste excelente tutorial !
Cumps
Muito obrigado pelo feedback 🙂
Excelente trabalho!! Obrigado por partilhar.
Era interessante uma tutorial de java sobre ligação a SQL server, fazia-me muito jeito nesta altura…
Cumprimentos e parabéns pelo tutorial 😉
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.
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?
boa tarde,
Ao tentar exportar para pdf
ocorre o seguinte erro:
TCPDF error: Alpha channel not supported: https://pplware.sapo.pt/wp-content/uploads/2010/01/java2012-300×260.png