Mostrando postagens com marcador programação. Mostrar todas as postagens
Mostrando postagens com marcador programação. Mostrar todas as postagens

quarta-feira, 9 de junho de 2010

Progress - Uma oportunidade de carreira

Progress é uma linguagem de programação que foi desenvolvida pela empresa Progress Software Corporation em 1984, e que permanece até hoje sendo uma linguagem estável, de fácil entendimento e desenvolvimento.

A Progress Corporation tem sua sede em Bedford, Massachusetts USA, com filiais em diversos países. No Brasil sua representante é a Progress do Brasil/SP.

Uma das maiores atrativos do Progress é sua portabilidade e independência de plataforma. Ele funciona em praticamente todos os sistemas operacionais existentes como DOS, Windows, UNIX, OS/2, Novell, VMS, Motif, Xenix, CTOS entre diversos outros, isso utilizando o mesmo código fonte.

Seu Banco de Dados Relacional é de altíssima performance e extrema segurança, igual ou até mesmo superior ao bancos mais populares do mercado como Oracle, DB/2 IBM, Sybase, MS-SQL Server, entre outros.

A perfeita integração entre linguagem e banco de dados fazem do Progress uma excelente ferramenta para construção de qualquer aplicação comercial. Isso porque

as camadas de desenvolvimento - regras de negócios, dados e interface estão totalmente interligadas, o que evita qualquer redundância ou retrabalho em qualquer camada da aplicação.

A atualização e distribuição dos aplicativos em Progress também é bastante simplificada. Um sistema pode ser totalmente centralizado para acesso de vários

clientes simultâneos e atualizado a qualquer tempo, parcialmente ou completamente sem gerar qualquer erro ou necessitar de uma parada momentânea do sistema.

O funcionamento do Progress é bastante simples. A configuração típica e mais comum é a instalação e armazenamento centralizado do Progress servidor e cliente, bancos de dados e aplicações em um servidor disponível para acesso de diversos clientes em rede.

Há também diversas outras configurações possíveis para uma aplicação Progress: múltiplos servidores, bancos de dados distribuídos entre servidores e/ou plataformas

distintas, como será visto no capítulo Arquiteturas de aplicação. A figura a seguir exemplifica melhor uma configuração mais simples.

O mercado de trabalho oferece várias oportunidades, um exemplo de sistema que usa essa linguagem é o EMS da antiga Datasul, hoje Totvs, este é um sistema ERP completo e estável, usado por diversas empresas, em todas as regiões brasileiras.

Sendo uma linguagem proprietária, não é tão fácil encontrar informações na internet, mas caso tenha interesse, recomendo o fórum 4EACH, onde é possível encontrar várias dicas sobre a linguagem e sobre sistemas que a usam, também há uma versão em espanhol, o 4EACH Foro, onde proporciona conhecer outros sistemas relacionados.



Fonte: Dominando o Progress – de Márcio Brener

domingo, 4 de abril de 2010

Linguagem de Programação - Java - Aula 5

Olá olá olá galera, revendo as aulas de java, eu esqueci de postar uma delas, a referente a laços de repetição, portanto vou apresentar em resumo nesta aqui.

Nesse link postado acima, na wikipédia, há uma explicação detalhada a respeito do assunto, vale a pena conferir.

Em java, os loops são feitos da seguinte forma:

While: Enquanto i, que é uma variável inteira, for menor ou igual a 20, deve-se imprimir em tela o valor de i. O “i++” é usado para incrementar o valor, ou seja, cada vez que passar aí, fará i = i + 1;


while ( i <= 20)

{

System.out.println(i);

i++;

}

Linguagem de Programação - Java - Aula 5

For: Para i que começa valendo 1 até i ser menor ou igual a 20 deve fazer também imprimir em tela o valor de i. Note que na própria estrutura da condição, já definimos que o i deve ser incrementado.

for(i = 1; i <= 20; i++)

{

System.out.println(i);

}


Do while: O programa passará pelo menos uma vez pela estrutura e continuará até que a condição se torne falsa.


do{

System.out.println(i);

i++;

}while(i <= 20);


As estruturas de repetição são muito usados, segue um exemplo de uma tabuada feita usando o for, e é possível fazer usando qualquer tipo de loop, fica aí o desafio para tentarem de outras formas.


int valor = 0;

for (int i = 1; i <= 10; i++)

{

valor = 7 * i;

System.out.println("7 x " + i + " = " + valor);

}


Agora sim a aula 5ª aula. Nesta aula, começaremos a trabalhar realmente com o conceito de classes, atributos e métodos, usando como exemplo um cadastro. Se houver dúvidas no conceito de cada coisa, vale a pena recordar a 1ª aula onde explica claramente o que é cada detalhe.

Vamos então definir duas classe, uma classe Pessoa e a outra ExemploPessoa, na classe Pessoa vamos mostrar ao java o que é uma pessoa, que dados serão requeridos. Toda pessoa tem nome, endereço e telefone, portanto, esses serão nossos atributos. Segue então como ficará a classe Pessoa, onde o que está em itálico são os comentários de cada parte do código.

Abaixo do código, segue as imagens possibilitando um melhor entendimento e visualização da identação.

/*Essa classe não terá o método main pq a classe principal que executa e inicia o programa é que tem o main

*

* Lembrando que uma classe precisa ter atributos e métodos

*

* Atributos: nome, endereço, telefone = são privados e podem ser acessados dentro da classe

*

* Metodos: Pessoa() e Pessoa(String, String, String) = são públicos, são a forma de comunicação entre as classes */

public class Pessoa {

private String nome;

private String endereco;

private String telefone;

public Pessoa() //Métodos que possuem o mesmo nome da classe são chamados detodos construtores, sua função é definir como um objeto será criado, ele somente pode ser usado na criação de um objeto, pq a função é falar como o obj deve ser criado - instância)

{ //esse método cria um objeto vazio, pq o usuario vai digitar depois os dados,

//ainda não há valor definido, mas o objeto ja existe

}

public Pessoa(String _nome, String _endereco, String _telefone) //segundo metodo construtor

//nesse construtor é criado um objeto e ja sabe os dados do objeto, por isso foi passado com parâmetros, usar o anderline na frente (_nome) é convenção para identificar melhor e facilitar a manutenção

{

nome = _nome; //recebe os valores dos parâmetros e passa para os atributos

endereco = _endereco;

telefone = _telefone;

}

public void DefinirNome(String _nome) //o objetivo desse metodo: permite alterar o valor do atributo nome

{

nome = _nome;

}

public void DefinirEnd(String _endereco) //o objetivo desse metodo: permite alterar o valor do atributo endereco

{

endereco = _endereco;

}

public void DefinirTel(String _telefone) //o objetivo desse metodo: permite alterar o valor do atributo telefone

{

telefone = _telefone; //ele não retorna valor (void), apenas pega o parametro e atribui ao atributo

}

public String ObterNome() //metodos que retornam precisam mostrar o tipo de dado que retorna, no caso uma String

{

return (nome);

}

public String ObterEnd()

{

return (endereco);

}

public String ObterTel()

{

return (telefone);

}

// Demais métodos ...

}



A classe ExemploPessoa é a que realmente executará o programa, nela contém o método main, e é nela que colocaremos os dados das pessoas. Segue abaixo como ela deve ficar.


/*A classe principal, aqui é que pode usar as outras classes*/

public class ExemploPessoa {

public static void main(String[] args) throws IOException

{

BufferedReader teclado = new BufferedReader(

new InputStreamReader(System.in)); //cria o objeto teclado

Pessoa p1 = new Pessoa(); // A classe Pessoa será um modelo para mostrar o que será uma pessoa para o programa, o p1 é um objeto, o new é o operador de instancia (a partir de uma classe cria-se um objeto) e o Pessoa() é o método construtor, ele sempre vai aparecer com o new

//esse metodo é vazio, isso seria necessário pq por exemplo, num banco de dados como ele vai retornar um valor se não leu ainda o banco? Então com o metodo construtor vazio ele faz a leitura e depois ele usa um metodo

construtor para atribuir valor

System.out.println("Informe o nome: "); //obtendo valores para p1

p1.DefinirNome(teclado.readLine());

System.out.println("Informe o endereço: ");

p1.DefinirEnd(teclado.readLine());


System.out.println("Informe o telefone: ");

p1.DefinirTel(teclado.readLine());

Pessoa p2 = new Pessoa("Ana", "Rua das Flores, 100", "4532-2322"); //uma classe pode dar origem a vários objetos, cria o objeto (new) e usa o segundo construtor com os devidos parâmetros

/*Polimorfismo = uma classe pode ter vários métodos com o mesmo nome, porém, com parâmetros diferentes*/

System.out.println("Pessoa 1"); //Imprimindo os valores de p1

System.out.println("Nome: " + p1.ObterNome()); //está buscando os valores armazenados dentro do p1

System.out.println("Endereço: " + p1.ObterEnd());

System.out.println("Telefone: " + p1.ObterTel() + "\n");

System.out.println("Pessoa 2"); //Imprimindo os valores de p2

System.out.println("Nome: " + p2.ObterNome());

System.out.println("Endereço: " + p2.ObterEnd());

System.out.println("Telefone: " + p2.ObterTel());

}

}

Todos os créditos dessas aulas para o professor Claudio Luís V. Oliveira, que com muita paciência e persistência tem nos ensinado de uma forma agradável e eficiente.

Linguagem de Programação – Java – Aula 1

Linguagem de Programação – Java – Aula 2 e 3
Linguagem de Programação - Java - Vetores - Aula 4




sexta-feira, 2 de abril de 2010

Linguagem de Programação - Java - Vetores - Aula 4

Olá galera, um pouco atrasada nos posts das aulas de java, mas vamos lá, o tema de hoje é sobre vetores, também conhecidos como arrays.

Um vetor mantém uma série de elementos de dados, do mesmo tipo, cada um numa posição pré definida. Então, por exemplo, ao cadastrar 5 nomes, poderíamos usar:

  • 5 variáveis = String nome1, nome2, nome3, nome4, nome5; ou

  • 1 vetor = nome[i] , onde o meu “ i ” será incrementado determinando 5 posições distintas para cada nome


Traduzindo para java. Declaramos um vetor da seguinte forma:


String nome[] = new String[5]; = no caso de um vetor de String ou

int i[] = new int[10]; = no caso de um vetor de inteiros, o número entre colchetes [10] é onde definimos o tamanho do vetor, isso quer dizer que ele terá 10 posições.


Os elementos de um vetor podem ser inseridos no momento da criação do mesmo conforme mostrado abaixo:


int i[] = {64, 87, 32, 07, 86};


char linguagem[] = { 'J', 'a', 'v', 'a' };


e assim por diante, colocando o tipo de dado que desejar usar.


Segue abaixo exemplos de como trabalhar com vetores. Tem o código colado aqui, com os devidos comentários em itálico , também abaixo, coloquei as imagem para que entendam melhor o código e toda a identação.

Exemplo 1:

int i[] = new int[5]; //declarando vetor com o nome i sendo inteiro
i[0] = 45; //atribuindo valor as posições do vetor, ele sempre começa do zero
i[1] = 2;
i[2] = 18;
i[3] = 61;
i[4] = 94;

//exibir o elemento que está no índice 3
System.out.println("O valor da posição 3 é " + i[3]);

//exibir o tamanho do vetor
System.out.println("Tamanho: " + i.length);

//exibir tds os elementos do vetor
for(int a = 0; a < style="font-style: italic;"> //exibir tds os elementos do vetor de forma invertida
for(int b = i.length - 1; b >= 0; b--) //coloca length - 1 pq o vetor tem tamanho 5
//mas o último elemento está na posição i[4]
{
System.out.println("O valor na posição " + b + " de forma invertida é " + i[b]);
}

//exibir o maior elemento do vetor
int maior = i[0];
for(int c = 0;c <> maior)
maior = i[c];
}
System.out.println("O maior valor é " + maior);

//exibir o menor elemento do vetor
int menor = i[0];
for(int c = 0;c < menor =" i[c];" style="font-style: italic;"> //exibir a soma dos elementos do vetor
int soma = 0;
for(int d = 0;d < soma =" soma" style="font-style: italic;"> //exibir o valor da média dos elementos
int tam = i.length;
int media = soma / tam;
System.out.println("A média é " + media);

//exibir os elementos do vetor que são maiores ou iguais a média
for(int e = 0;e <>= media)
System.out.println("O valor maior ou igual a média que é " + media + " são " + i[e]);

}

Para aumentar é só clicar na imagem.


Exemplo 2 - Manipulação de Strings:

String saudacao = "Boa noite para todos";
System.out.println("Tamanho: " + saudacao.length());

//Convertendo td para Maiúsculo
System.out.println("Maiúsculas: " + saudacao.toUpperCase());

//Convertendo td para Minúsculo
System.out.println("Minúsculas: " + saudacao.toLowerCase());

//Mostrar apenas um caractere, coloca entre parenteses a posição do caractere, ex --> 5
System.out.println("Um caractere --> " + saudacao.charAt(5));

//Mostrar uma parte da String, mostrando a posição, exemplo de 4 a 9,
//ele entende que deve parar na posição 9
System.out.println("Uma parte da String --> " + saudacao.substring(4,9));

//Mostrar uma parte da String, mostrando a posição, exemplo de 10 a 14,
//ele entende que deve parar na posição 14
System.out.println("Uma parte da String --> " + saudacao.substring(10,14));


//Usando charAt exibir apenas as vogais da String
System.out.print("Apenas vogais: ");
for (int i = 0;i < letra =" saudacao.charAt(i);" letra ="=" letra ="=" letra ="=" letra ="=" letra ="=">


E a imagem:



É isso aí, espero que seja de ajuda, caso tenham alguma dúvida, deixe aqui nos comentários ou me mande por e-mail, auxilio no que for possível.


Desejo aproveitar e dar todos os créditos dessas aulas para o professor Claudio Luís V. Oliveira, que com muita paciência e persistência tem nos ensinado de uma forma agradável e eficiente.


Linguagem de Programação – Java – Aula 1

Linguagem de Programação – Java – Aula 2 e 3


Bons estudos ;-)


sábado, 13 de fevereiro de 2010

Linguagem de Programação – Java – Aula 1

Olá galera, esse semestre será um pouco puxado, terei que aprender pelo menos 4 linguagens ao mesmo tempo, Progress e Delphi para o emprego, C++ e Java para faculdade, embora o que queira mesmo estudar seja Python. Mas enfim, aproveitando todas essas horas de estudo que terei que dedicar, vou compartilhando aqui o conteúdo que for absorvendo, repassando minhas aulas, exercícios :-D se mais alguém se interessar em compartilhar seu conhecimento, será bem vindo, muito mais legal do que aprender sozinha.


Essa semana tive minha primeira aula de Java, lembro de já ter visto essa matéria no curso técnico, mas as coisas ficaram um pouco confusas para mim, mas agora eu engreno hein ;-)


Um paradigma referente a programação, define o modo de se realizar alguma atividade. Na questão de desenvolvimento de sistemas, há duas opções, a construção de forma Estruturada e a Orientação a Objetos.



No caso do Java, usamos Orientação a Objetos. Na verdade, o Java não é apenas uma linguagem, e sim um conjunto de aplicações e componentes. Ele pode ser usado para o desenvolvimento em console, gráficos, dispositivos móveis e para web.


Dentre algumas vantagens apresentadas em aula foi:

  • Multiplataforma;

  • Multithread : lançar canais para que várias aplicações trabalhem juntas;

  • Distribuição gratuíta;

O Java funciona da seguinte forma: Temos o arquivo com extensão .java, depois de compilado ele gera bytecodes (com extenção .class), e através da Máquina Virtual – JVM – qualquer lugar em que a tenha instalado (a máquina virtual), é possível executar o bytecode, independente da plataforma. A linguagem .NET da Microsoft também foi pensada e criada com esse conceito, mas como não é interessante que outras plataformas além do windows sejam usadas, não temos essa liberdade que o Java oferece.



Orientação a Objeto


A Orientação a Objeto tem alguns conceitos essenciais para o seu entendimento, pode ter uma melhor explicação aqui, aqui no blog darei uma rápida visão do que a engloba:


  • Classe : é a representação de algo que existe no mundo real. Uma classe é composta por:

  • Atributos : características dos objetos;

  • Métodos : ações realizadas ou sofridas pelos objetos;

  • Objeto : Sempre pertence a uma classe, representa algo que existe no mundo real. O objeto é uma instancia de uma classe.


Ahhh uma coisa importante são os comentários, existem três tipos de comentários em Java:

// Este é um comentário de uma só linha
/* Este é um comentário de uma ou mais linhas */
/** Este é um comentário de documentação */

Por isso, durante o exemplo, colocarei vários comentários explicando o que faz cada coisa ok.

Exemplo: Vamos tentar relacionar a vida cotidiana com o Java.


Temos uma Casa (classe) com 5 cômodos (5 objetos) – 2 quartos, banheiro, cozinha e sala. Todos eles tem Lâmpadas (classe), e a possibilidade de seu estado estar acesa ou apagada. Alguns cômodos estão com a lâmpada acesa (quarto 2 e banheiro) e os outro a lâmpada está apagada (quarto 1, cozinha e sala) . Então a representação ficaria assim:


Transformando isso tudo em código:


Classe Lâmpada:


public class Lampada /*começamos definindo a classe, por convenção a primeira letra do nome da classe é maiúscula*/


{ /* A delimitação de um bloco é sempre usando a chave, então para começar, abre a chave, e para terminar, fecha a chave*/


private String estado; /*definimos o atributo, veja que ele é do tipo String, e esse tipo na verdade não é um tipo primitivo, é uma classe da linguagem, e por isso está com a primeira letra maiúscula, e lembre-se que atributos terminam com “ ; ” . Os atributos podem ser : public = disponível para todas as classes; private = visível apenas dentro da classe e protected = que eu tbm só conhecerei mais pra frente. Segundo a boa programação, os atributos devem ser private em sua maioria*/



public void acender() /*aqui definimos o método acender, ele é void porque não produz retorno da aplicação, apenas definirá a ação do atributo estado*/


{


estado = “ACESO”;


}


public void apagar() /*aqui definimos o método apagar, ele tbm é void porque não produz retorno da aplicação, apenas definirá a ação do atributo estado*/


{


estado = “APAGADO”;


}


public String mostrar() /*aqui definimos o método mostrar, ele não é void, porque retornará a ação do atributo estado, como o atributo foi declarado como String, o método tbm deve retornar uma String*/


{


return estado;


}


} // fecha classe



Agora a Classe Casa, porque a classe Lampada sozinha não fará nada:



public class Casa


{


public static void main ( ) /* aqui é onde inicia o programação*/


{


Lampada lsala = new Lampada(); /*instanciando a classe Lampada com o objeto lampada da sala = lsala*/

lsala.apagar(); (método que vem da classe Lampada)



Lampada lcoz = new Lampada();

lcoz.apagar();



Lampada lban = new Lampada();

lban.acender();



Lampada lquarto1 = new Lampada();

lquarto1.apagar();



Lampada lquarto2 = new Lampada();

lcoz.acender();



System.out.println(“A lampada da sala está” + lsala.mostrar() + “A lampada do quarto2 está” + lquarto2.mostrar()); /*aqui é onde mostramos a informação na tela, posso imprimir o estado de todos os comodos*/

}


} //fecha classe Casa


Uma coisa extremamente útil, é a indentação do código, mas aqui no blogger não foi possível fazer isso.


Agora um exercício que ficou pendente para a próxima aula e quem quiser também fique a vontade para fazer: Escrever uma classe chamada Matematica que realize as 4 operações básicas(+ - * /) sobre 2 números float.


Utilizando a classe Matematica, escreva uma classe chamada programa que realize as seguintes operações: 5.3 + 4.7. É possível construir esse programa? Por que?


Bem, vou deixar vocês curiosos quanto a isso também, e na próxima aula volto com a resposta ok. Bons estudos para nós ;-)



domingo, 17 de janeiro de 2010

Apache2, MySQL5 e PHP5 no GNU/Linux

Uma das vantagens de se usar um sistema operacional livre, é a oportunidade de se chegar a um mesmo resultando usando vários caminhos diferentes. Embora ja tenha aqui no blog uma dica de como "Instalar o apache2, o php5 e o mysql5 no ubuntu", vou apresentar uma outra forma de fazer isso, bem simples também, dica do Cacá, que estava com preguiça de postar aqui no blog mas liberou um passo a passo para disponibilizar a todos. Essa instalação serve não apenas para o Ubuntu, mas qualquer distribuição derivada do Debian.

Começando por todos aqueles requisitos que o Joandson ja colocou, como abrir um terminal e blá blá blá, sempre é bom dar um sudo apt-get update antes de começar, mas vamos direto ao que interessa:

Para todos os comandos é importante estar como usuário root, para isso:

$sudo su

e colocar a senha, caso não esteja e não queira ficar, basta acrescentar o sudo antes de cada comando, exemplo:

$sudo apt-get install apache2



Apache


#apt-get install apache2


Módulo do php pra se integrar com o Apache:


#apt-get install php5 libapache2-mod-php5


Reiniciando o Apache:


/etc/init.d/apache2 restart



Pronto, simples né, vamos agora para a instalação do MySQL:


Mysql


#apt-get install mysql-server mysql-client


Ele vai mandar configurar a senha, pode deixar em branco mesmo, atenção, ele vai pedir a senha várias vezes, mas é só deixar em branco e continuar, não há problema nisso.


Modulo do php pra se integrar com o mysql:


#apt-get install php5-mysql



Agora partimos para o PHPmyAdmin


PHPmyAdmin


#apt-get install phpmyadmin


Esse é mais chato de configurar, ele vai perguntar se você quer instalar o banco do PMA, diga que sim e se quer por uma senha para ele, diga que não.


Sobre a parte dos módulos, talvez o apt já instale, portanto, se você digitar os comandos, e aparecer pacote já instalado, já sabe.


Depois de tudo instalado tem mais algumas coisas só para verificar se está tudo ok:


#apt-get install php5 libapache2-mod-php5

#apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin



Agora é só testar:


Cria um arquivo pelo terminal:


#gedit /var/www/teste.php


Cola isso dentro dele (mas tire o espaço entre o < ? e o ? >):

< ? php phpinfo(); ? >


Salve como teste.php e acesse:


http://localhost/teste.php


Nessa página vai aparecer a tela do phpinfo e pronto, só começar a trabalhar ;-)




Dicas:

1-)Há várias opções de editores para o php, um deles é o gPHPEdit, para instalar é só colocar no terminal:

$sudo apt-get install gphpedit


2-)É bom também dar permissão de escrita global pra pasta /var/www, se não você só poderá usar como root, mas isso fica a critério de cada um, para isso coloque no terminal:


$sudo nautilus


quando abrir o gerenciador de arquivos, vai em /var/www clica com o botão direito -> propriedades -> permissões e da permissão de escrita aos grupos que aparecerem.