Saltar para: Posts [1], Pesquisa e Arquivos [2]


Nos comentários deste post, alguém perguntou-me como poderia implementar a arraylist no main. Segue abaixo o exemplo de uma possível implementação, sei que poderia ter feito isto através de return, no entanto e como este artigo é para iniciantes, este vai com o out.println:

 

Passo 1 - Após criar o novo projecto (eu dei o nome ArrayListStr), cria-se uma classe usarArrayList com o seguinte código:

 

package arrayliststr;
import java.util.*;
import static java.lang.System.out;
/**
*
* @author fabiodomingos
*/
public class usarArrayList {
ArrayList<String> professores = new ArrayList<String>();

public void adicionaProfs()
{
professores.add("Jorge");
professores.add("Paulo");
professores.add("Silvio");
}

public void criarNovoProf(String nome)
{
professores.add(nome);
out.println ("Adicionado nome "+nome);
}

public void listarProfessores()
{
out.println("Lista de Professores");
for (String nome : professores)
out.println(nome);
}

public void tamanhoDaLista()
{
int a = professores.size();
out.println("A lista tem "+a+" elementos");
}

public void existe(String nome)
{
int i=0;
for (String profs : professores)
{
if (profs.contains(nome)==true)
{
i++;
}
}
if (i==0)
out.println("Não Existe");
if (i>0)
out.println("Existe "+i+" ocorrencias");
}

public void apagarTudo()
{
professores.clear();
out.println("Todos os registos foram apagados");
}

public void apagaElemento(String nome)
{
professores.remove(nome);
}

public void verificarVazio()
{
if (professores.isEmpty()==true)
out.println("Está Vazio");
else if (professores.isEmpty()==false)
out.println("Não está vazio");
}
}
Passo 2 - No main instanciar a classe e chamar os métodos:
package arrayliststr;
/**
*
* @author fabiodomingos
*/
public class ArrayListStr {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
usarArrayList al = new usarArrayList();
al.adicionaProfs();
al.criarNovoProf("Zé"); //por exemplo
//etc etc
}
}
Se tiverem mais dúvidas ou quiserem dar sugestões/correcções, 
utilizem a caixa 
de comentários deste post. Obrigado!

Autoria e outros dados (tags, etc)

publicado às 13:21


Revista Programar 30

por Fábio Domingos, em 07.08.11

 

Neste mês de Agosto, por muitos aproveitado para férias, a equipa da Revista PROGRAMAR não descansa e traz-lhe uma nova edição. Com esta edição começaremos também a premiar os autores dos três melhores artigos. E os leitores devem dar a sua opinião para que possamos premiar correctamente. Para isso vote emhttp://tiny.cc/ProgramarED30_V 

Por isso nesta edição trazemos até si, como artigo de capa, um artigo sobreIntrodução ao Ruby on Rails para ficar a conhecer as bases da tecnologia "Ruby on Rails" para desenvolvimento de páginas web. Nesta 30ª edição pode ainda encontrar os seguintes artigos:

  • Lua - Linguagem de Programação (Parte 10)
    • A continuação de um excelente artigo sobre LUA, uma linguagem de programação pouco conhecida. Nesta décima parte, saiba como embeber a linguagem LUA em programas escritos em C e C++, bem como pode utilizar co-rotinas.
  • Criar um sistema RSS no Sharepoint através de uma lista de páginas
    • Conheça uma forma simples e eficaz de através de RSS 2.0 fazer um “response” directamente numa página ASPX com um controlo de utilizador
  • Introdução ao Objective-C e à plataforma iOS
    • Um artigo de introdução à linguagem da Apple Objective-C e à plataforma iOS utilizada nos dispositivos iPod Touch, iPhone e iPad.
  • Atributos em C#
    • Saiba como colocar metadados em aplicações C# através de atributos.
  • VISUAL (NOT) BASIC - Tipos Genéricos
    • Conheça estas estruturas que possuem bastantes vantagens sobre os Arrays.

E em colaboração com a comunidade AzurePT, SQLPort, NetPonto e SharePointPTrespectivamente:

  • Windows Azure Traffic Manager
    • Conheça esta funcionalidade que possibilita a resolução de vários problemas relacionados com Cloud Computing.
  • Ferramentas gratuitas de trabalho com SQL Server
    • Conheça algumas ferramentas gratuitas que podem facilitar e acelerar o trabalho com o SQL Server.
  • NHibernate - do Import Package à primeira iteração
    • Como configurar e utilizar o NHibernate com FluentNHibernate para fazer a ponte entre as nossas classes em .NET e as nossas tabelas de bases de dados.
  • Sandboxed Solutions em SharePoint Online 2010
    • Veja como criar Sandbox Solution utilizando os diversos Templates disponibilizados para o Visual Studio 2010.

Nesta edição, fui o autor do artigo "Tipos Genéricos", por isso se quiserem contactar-me, dar uma critica (de preferência construtica) ou dar sugestões, podem utilizar a caixa dos comentários. Obrigado!

Autoria e outros dados (tags, etc)

publicado às 16:21


Revista Programar - 27ª Edição

por Fábio Domingos, em 15.02.11

 

Capa - Edição 27

 

A edição número 27 da revista Programar já foi lançada, nesta edição foram feitos mais uns retoques em termos gráficos e com a entrada de novas comunidades que contribuíram com artigos. Uma edição a não perder!

 

Os conteúdos da revista são os seguintes:

  • Lua - Linguagem de Programação (Parte 7)
  • Flex e Byacc - Parte III
  • Optimização de SQL em Oracle - Índices
  • jQuery - A framework
  • 6 regras para utilizar AJAX
  • Windows Phone 7
  • Core Dump - gcc -Wall myApp.c -linstantaneous -o success
  • Desenvolvimento em SharePoint 2010
  • GuiaTV CoolthingsPT
  • Habilitar external users no SharePoint online - Office365
  • O Futuro da Programação Assíncrona da Plataforma .NET

E ainda uma análise ao livro Silverlight 4.0 - Curso Completo da FCA Editora.

 

Para mais informações e download faça clique aqui .

 

 

Autoria e outros dados (tags, etc)

publicado às 14:17


[VB 2010] Auto-Implemented Properties

por Fábio Domingos, em 14.10.10

Hoje estava a fazer umas experiências com programação por objectos no Visual Studio 2010, quando reparei que este já não me completava as properties. Achei estranho, e pensando que era um bug, fui pesquisar, e eis que encontro a razão deste acontecimento, que é a implementação das Auto-Implemented Properties.

Como funcionam então as Auto-Implemented Properties? É simples, no momento de declaração dos atributos da classe, declaram-se logo as properties, exemplo:

 

Em vez de

 

Private m_Nome As String

Private m_Morada As String

 

faz-se

 

Public Property Nome As String

Public Property Morada As String

 

E no momento de declaração da variável, são também automaticamente elaborados os getter's e os setter's.

Como vê, muito simples, e muito trabalho poupado.

Autoria e outros dados (tags, etc)

publicado às 01:31


Fundamentos de Programação em C: Subprogramas

por Fábio Domingos, em 16.02.09

 Perguntam-me muitas vezes como se faz um subprograma, há pessoas que até fazem disso um monstro, na verdade, não é assim tão difícil, até é bem fácil comparado com certas coisas, por isso decidi criar este FAQ, para esclarecer algumas das dúvidas que me têm perguntado sobre este assunto:

 

1) O que é um subprograma?

Um subprograma, é um programa dentro de outro programa, através deles, podemos organizar melhor o nosso código, entre outras vantagens.

 

2) É necessário declarar o subprograma?

Sim e não. É necessário caso escreva os mesmos depois da função main(), e não é necessário caso os escreva antes da função main() . Pessoalmente, prefiro escrevê-los depois da função main().

 

3) O que são aquelas palavras que estão entre os () dos subprogramas?

São os argumentos que o subprograma vai receber, por exemplo queremos um programa que faça a soma de dois algarismos contidos em duas variáveis do tipo inteiro, o subprograma deverá então receber essas duas variáveis, é ente os () que vamos indicar isso, neste caso vai ficar algo do tipo:

 

void somalgarismos(int numero1, int numero2)

 

4) Como faço uma chamada a um subprograma?

Tal como chama uma pessoa, ou seja através do nome da mesma, ex:

nomedosubprograma()

ou caso queira enviar argumentos:

nomedosubprograma(argumento1,argumento2)

 

5) Estou a escrever os subprogramas depois da função main, onde os devo declarar?

Antes da função main.

 

6)O que é aquela coisa que vem antes do nome do subprograma? 

É o tipo de retorno, quando um subprograma é terminado, ele poderá retornar algo, por exemplo, no caso do subprograma anterior, podemos querer que ele retorne a soma dos dois algarismos, neste caso adicionamos ao nome do subprograma a palavra "int", para que o valor a retornar seja um número inteiro, e no final pedimos que ele faça retorno ao resultado através da palavra chave return e o que quer retornar.

Exemplos de tipos de retorno: void - sem qualquer retorno

int - um valor inteiro

float - um valor de virgula flutuante

char - um caracter

 

Note-se que em C não existem tipos booleanos.

 

7)Posso criar variáveis dentro dos subprogramas?

Pode, chamam-se variáveis locais.

 

Se tiver mais dúvidas, críticas ou sugestões, por favor utilize os comentários.

Autoria e outros dados (tags, etc)

publicado às 01:25


Armazem: O BubbleSort

por fd, em 23.09.08
Está disponível no Armazém, um projecto em BlueJ que permite a criação de um vector de 80 casas, atribuição automática de valores e implementação do algoritmo Bubble Sort para a ordenação do mesmo.

Em breve, irei explicar o funcionamento do algoritmo.

Autoria e outros dados (tags, etc)

publicado às 18:58

O ArrayList, que faz parte do Java Collections Framework (JCF), é uma função bastante útil que nos permite criar Arrays dinâmicos, e ainda oferece-nos muitos métodos bastante úteis para manipular o conteúdo do mesmo.

Com este artigo, irei demonstrar como se cria um ArrayList para guardar Strings, neste exemplo, iremos guardar o nome de professores.

Passemos à acção:

Primeiro, temos de importar o pacote que contém as ArrayLists:

import java.util.*;

Se desejar, poderá também importar o seguinte pacote:

import static java.lang.System.out;

Desta forma, irá evitar estar sempre a escrever o palavrão "System.out.println", bastando apenas escrever out.println , por exemplo.

Agora, dentro da classe, iremos declarar a ArrayList:

//Declaração da ArrayList
ArrayList<String> professores = new ArrayList<String>();

Aí está, uma ArrayList do tipo String com o nome professores, de tamanho infinito (podiamos limitar o tamanho escrevendo entre os () o número máximo de registos que a ArrayList pode conter no máximo).

Agora, vamos criar um método que adiciona 3 registos:

public void adicionaProfs()
{
professores.add("Jorge");
professores.add("Paulo");
professores.add("Silvio");
}


Como pode ver, é bastante simples adicionar um elemento à ArrayList, bastando para isso usar o método add().

Mais exemplos de operações numa arrayList:


  • Adicionar um novo professor com nome a ser introduzido pelo utilizador:


public void criarNovoProf(String nome)
{
professores.add(nome);
out.println ("Foi adicionado um professor com o nome "+nome);
}



  • Listar o nome de todos os professores:

  • public void listarProfessores()
    {
    out.println("Lista de Professores");
    for (String nome : professores)
    out.println(nome);
    out.println("========================================");
    }



  • Escrever no ecrã, o número total de registos:


public void tamanhoDaLista()
{
int a = professores.size();
out.println("A lista tem "+a+" elementos");
out.println("==========================");
}



  • Verifica, se um nome introduzido pelo utilizador, existe na ArrayList:

  • public void existe(String nome)
    {
    int i=0;
    for (String profs : professores)
    {
    if (profs.contains(nome)==true)
    {
    i++;
    }
    }
    if (i==0)
    out.println("Não Existe");
    if (i>0)
    out.println("Foram encontradas "+i+" ocorrencias do nome "+nome);
    out.println("=================================================");
    }



  • Apaga todos os registos da ArrayList


public void apagarTudo()
{
professores.clear();
out.println("Todos os registos foram apagados");
}



  • Apaga um elemento cujo nome é introduzido pelo utilizador

  • public void apagaElemento(String nome)
    {
    professores.remove(nome);
    }



  • Verifica se a ArrayList está vazia:

  • public void verificarVazio()
    {
    if (professores.isEmpty()==true)
    out.println("Está Vazio");
    else if (professores.isEmpty()==false)
    out.println("Não está vazio");
    }


    Pode encontrar muitos mais métodos para usar nas ArrayLists neste site:

    http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html

    Se quiser o código pronto a testar no Bluej, está aqui disponivel para copy paste:

    /**
    * Programa que usa uma ArrayList para guardar os nomes
    * dos professores.
    * Permite a utilização de vários métodos nessa
    * ArrayList.
    *
    * @author Fábio Domingos
    * @version 1.0
    */
    import java.util.*;
    import static java.lang.System.out; 


    public class List
    {
    //Declaração da ArrayList
    ArrayList<String> professores = new ArrayList<String>();
    //Adiciona 3 professores à lista
    public void adicionaProfs()
    {
    professores.add("Jorge");
    professores.add("Paulo");
    professores.add("Silvio");
    out.println("Foram adicionados automaticamente 3 professores");
    out.println("==============================================");
    }
    //Adiciona à lista um professor com nome definido pelo utilizador
    public void criarNovoProf(String nome)
    {
    professores.add(nome);
    out.println ("Foi adicionado um professor com o nome "+nome);
    out.println ("===========================================");
    }
    public void listarProfessores()
    {
    out.println("Lista de Professores");
    for (String nome : professores)
    out.println(nome);
    out.println("========================================");
    }
    public void tamanhoDaLista()
    {
    int a = professores.size();
    out.println("A lista tem "+a+" elementos");
    out.println("==========================");
    }
    public void existe(String nome)
    {
    int i=0;
    for (String profs : professores)
    {
    if (profs.contains(nome)==true)
    {
    i++;
    }
    }
    if (i==0)
    out.println("Não Existe");
    if (i>0)
    out.println("Foram encontradas "+i+" ocorrencias do nome "+nome);
    out.println("=================================================");
    }
    public void apagarTudo()
    {
    professores.clear();
    out.println("Todos os registos foram apagados");
    }
    public void apagaElemento(String nome)
    {
    professores.remove(nome);
    }
    public void verificarVazio()
    {
    if (professores.isEmpty()==true)
    out.println("Está Vazio");
    else if (professores.isEmpty()==false)
    out.println("Não está vazio");
    }
    }


Bom, espero que tenham gostado, dúvidas e questões nos comentários. Obrigado.

Autoria e outros dados (tags, etc)

publicado às 19:27
editado por Fábio Domingos em 18/8/10 às 02:49

Um objecto, representa uma entidade do mundo real, ou seja, um objecto pode ser qualquer coisa (uma pessoa, um automóvel, etc).

Todos os objectos, contêm atributos, esses atributos podem ser por exemplo o nome no caso de ser uma pessoa, a marca caso seja um automóvel, etc.

Para criar um objecto, usamos um construtor, um construtor é um método (explicarei num dos próximos capítulos), que tem como funcionalidade construír objectos.

exemplo de um construtor (Pseudocódigo):

Construtor Carro(String Matricula,String Marca, String Km)

{

this.Matricula = Matricula;

this.Marca= Marca;

this.Km=Km;

}

Agora, para compreenderem melhor o que é um objecto, eis um objecto criado a partir do construtor Carro;

Objecto: Carro1
50-ZZ-97
Renault
5000

 

E aí têm um exemplo do que é um objecto.

No próximo capítulo, irei explicar como criar um objecto através da Linguagem Java.

Dúvidas e Correcções nos comentários.

Autoria e outros dados (tags, etc)

publicado às 00:57
editado por Fábio Domingos em 16/2/09 às 12:43


Portugol

por fd, em 29.06.08
Nunca tinha ouvido falar nesta linguagem, mas achei-a bastante interessante para os iniciantes em programação, uma vez que é bastante parecida com pseudocódigo.

Mais informações em: http://orion.ipt.pt/~manso/Portugol/

Autoria e outros dados (tags, etc)

publicado às 18:18


Mais sobre mim


Pesquisar

Pesquisar no Blog

Arquivo

  1. 2013
  2. J
  3. F
  4. M
  5. A
  6. M
  7. J
  8. J
  9. A
  10. S
  11. O
  12. N
  13. D
  14. 2012
  15. J
  16. F
  17. M
  18. A
  19. M
  20. J
  21. J
  22. A
  23. S
  24. O
  25. N
  26. D
  27. 2011
  28. J
  29. F
  30. M
  31. A
  32. M
  33. J
  34. J
  35. A
  36. S
  37. O
  38. N
  39. D
  40. 2010
  41. J
  42. F
  43. M
  44. A
  45. M
  46. J
  47. J
  48. A
  49. S
  50. O
  51. N
  52. D
  53. 2009
  54. J
  55. F
  56. M
  57. A
  58. M
  59. J
  60. J
  61. A
  62. S
  63. O
  64. N
  65. D
  66. 2008
  67. J
  68. F
  69. M
  70. A
  71. M
  72. J
  73. J
  74. A
  75. S
  76. O
  77. N
  78. D
  79. 2007
  80. J
  81. F
  82. M
  83. A
  84. M
  85. J
  86. J
  87. A
  88. S
  89. O
  90. N
  91. D