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 ;-)


terça-feira, 30 de março de 2010

Mulheres também presentes no mundo da tecnologia

Nesse mês de Março, foi comemorado o dia internacional das mulheres, com muitos movimentos em prol da defesa dos seus direitos e igualdade, principalmente se tratando do mercado de trabalho. Mesmo com o grande avanço na conquista por seu espaço, as mulheres ainda “trabalham mais e ganham menos”, ainda que tenham mais ou o mesmo grau de formação profissional que os homens.
Ao longo da história, muitas mulheres fizeram à diferença no progresso da tecnologia, mesmo que tenham sido omitidas da história, pois como afirma Light, “A omissão da mulher na história da computação perpetua o mau entendimento da mulher como desinteressadas ou incapazes nesta área”. - Light, estereótipo desenvolvido devido às características femininas como cooperação, empatia e sentimento.
A primeira pessoa a desenvolver um programa foi uma mulher. Augusta Ada King, Condessa de Lovelace é principalmente conhecida por ter escrito um programa que poderia utilizar a máquina analítica de Charles Babbage, ela desenvolveu os algoritmos que permitiriam à máquina computar os valores de funções matemáticas, além de publicar uma coleção de notas sobre a máquina analítica.
Outra mulher cujo trabalho foi muito importante para o progresso foi Grace Murray Hopper, que criou a linguagem de programação Flow-Matic, hoje extinta. Esta linguagem serviu como base para a criação do COBOL. E há muitas outras mulheres que fizeram a diferença exercendo papéis importantes ao longo da história.
Atualmente, as áreas que envolvem tecnologia e informática continuam sendo predominada por homens, embora a participação feminina sempre foi muito importante.
De acordo com Lubar, quando os primeiros computadores começaram a ser utilizados parecia óbvio que esta seria uma área feminina, uma vez que as mulheres tradicionalmente realizavam a atividade de “computar”, realização de cálculos para os cientistas. Assim, seria natural que elas continuassem a realizar essa atividade, agora com a ajuda dos computadores. Por isso, muitas das pioneiras, além de serem mulheres, eram formadas em matemática e ciências, com doutorado em matemática, e participação ativa nas ciências exatas.
Muito já foi conquistado, mas há muito ainda a se fazer, homens e mulheres podem e devem trabalhar lado a lado, as características e personalidades de cada um complementam um bom trabalho e um bom ambiente de trabalho.

Revista Espírito Livre - Ed. nº 12 - Março 2010


Olá galera, novamente venho indicar o lançamento da edição de Março da Revista Espírito Livre. É incrível como vontade realmente move barreiras, e com essa edição, a revista completa 1 ano de vida, transmitindo muita informação, de forma interessante, agradável, moderna e com muita, muita qualidade.
O tema da capa já chama a atenção, é algo que envolve todos nós, a liberdade na internet. Recentemente foi divulgada a notícia de o google deixar de prestar serviços diretos a China justamente por não aceitarem mais os bloqueios impostos pelo governo Chinês. Polêmicas relacionadas a esse assunto são constantes, discussões acaloradas acontecem, mas definições reais estão longe de serem elaboradas e implantadas.
Outros assuntos me chamaram a atenção, como "Desenvolvimento do OpenSource. Por que alguns softwares despertam interesse e outros não?". Matérias que tratam diretamente sobre educação também são muito atrativas.
Enfim, da pra perceber que novamente a equipe da revista caprixou, e quão bom é sabermos disso. A revista está disponível para download aqui.

Boa leitura ;-)

quarta-feira, 3 de março de 2010

Revista Espírito Livre - Ed. nº 011 - Fevereiro 2010


"Carnaval. Um período que agrada a alguns e desagrada a outros. São momentos de alegria, descontração e até bastante culturais, desde que vividos com sabedoria e responsabilidade. Nessa edição do mês da folia, praticamente não traremos muita coisa referente a festividades, aliás, nada. Entretanto, para alegria da galera, esta edição está recheada de muita informação em matérias inéditas e exclusivas."
A matéria de capa é referente a computação gráfica, e dentro há vários assuntos envolvendo softwares relacionados, muito interessante. As entrevistas também estão demais. Uma matéria que achei interessante foi a visão do Cesar Taurion sobre a (des)Organização do modelo de desenvolvimento Open Source, vale a pena conferir. Também, Carnavalesco, de Roberto Salomon é uma auto análise bem interessante, expondo muito o dilema que vários desenvolvedores enfrentam, conciliar os projetos de Software Livre com soluções proprietárias fornecidas pelas empresas onde trabalham.


Download

Enfim, uma porção de matérias interessantes, boa leitura a todos ;-)

sexta-feira, 26 de fevereiro de 2010

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

Um pouquinho atrasada para postar o conteúdo da segunda e terceira aula de java, mas vamos lá. Na segunda aula, fomos finalmente ao laboratório aplicar os conceitos que havíamos aprendido, que você pode conferir aqui .
Na aula anterior, ficou um exercício pendente, onde deveríamos fazer uma classe chamada Matematica que realize as 4 operações básicas(+ - * /) sobre 2 números float. E depois, 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, vamos a classe Matemática então, vou colocar o código por inteiro, mas também colocarei uma imagem de como ele ficou, para que tenham uma melhor visualização da identação e vejam melhor os comentários:

package calculadora;

public class Matematica {

private float num1; //definir atributos sempre como private
private float num2;
private float resultado;


public void somar(){ //definindo métodos
resultado = num1 + num2; //realizando as operações
}
public void subt(){
resultado = num1 - num2;
}
public void mult(){
resultado = num1 * num2;
}
public void div(){
resultado = num1 / num2;
}
public float mostrar(){ //metodo que retornará o resultado, por isso não deve ser void,
//e precisa ser do mesmo tipo do atributo, no caso retornará
//um float
return(resultado);
}
}

o código acima é o mesmo da imagem abaixo:




Continuando o exercício, utilizando a classe Matemática, escreva uma classe chamada programa que realize as seguintes operações: 5.3 + 4.7. É possível construir esse programa? Por que?
Não, não é possível pois os atributos são privados e não há métodos que permitam a entrada de valores na classe, para resolver isso, ou cria um método entrada(), ou, programando de forma porca, coloque os atributos como públicos. Faremos acrescentando um novo método:

public void entrada (float n1, float n2){ //entre parenteses está a definição de parametros
//este método será usado como forma de enviar dados para dentro da classe
num1 = n1;
num2 = n2; //atributos recebendo parametros
}

Portanto ficará assim:



Pronto, agora é possível resolvermos aquele problema. Continuando, vamos fazer a classe onde realmente realizará as operações, a chamei de classe CalculadoraSimples:

package calculadora;
/*A classe realizará as seguintes operações:
* 5.3 + 4.7 e apresentar o resultado */

public class CalculadoraSimples
{
public static void main(String[] args)
{
Matematica calc = new Matematica();//instanciando a classe Matematica,calc é um objeto
//Somar
calc.entrada(5.3f, 4.7f); //atribuindo valores para os parametros n1 e n2
//sempre que passa um numero com casa decimal, ele acha que é double, mas haviamos
//definido que ele seria float, por isso, colocar o f na frente do numero para
//forçar ele entender que é float

calc.somar();

System.out.println("Resultado = " + calc.mostrar());

//Multiplicação

calc.entrada(3, 1.5f);

calc.mult();

System.out.println("Resultado da multiplicação = " + calc.mostrar());
}

}

imagem:


Beleza, continuando, na aula de ontem aprendemos realizar a entrada de dados com o teclado e a converter valores.

Entrada de dados:
Inicialmente deve-­se realizar a importação do pacote java.io, pois, ele contém as classes necessárias que permitirão a entrada de dados através do teclado. A utilização dessas classes requer que o tratamento de exceções seja habilitado, neste exemplo, isso será realizado através da palavra reservada throws.
O próximo passo consiste em criar um objeto pertencente a classe BufferedReader, o qual permitirá receber os dados da System.in que representa o acesso ao dispositivo de hardware teclado. Concluindo este exemplo, o método readLine() obtém o conteúdo digitado até que o usuário pressione a tecla Enter.
É importante salientar que toda entrada de dados é recebida pela linguagem como um objeto pertencente a classe String sendo que, quando necessário, devemos realizar aconversão para o tipo de dados desejado.

Exemplo:

package entradaDeDados;
import java.io.*; //importando pacote para habilitar entrada de teclado

//pacotes em java são conjuntos de classes, esse pacote cuida de classes responsáveis
//por entrada e saida de dados

public class EntradaDeDados
{
public static void main(String[] args) throws IOException
{
String nome, sobrenome, idade; //declarando a variavel nome e idade do tipo String

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

System.out.print("Informe o seu nome:"); //saida na tela

nome = teclado.readLine(); //onde pega os valores do teclado, sempre recebe
//em String, caso precise de outros dados, tem que
//converter
System.out.print("Informe seu sobrenome:");
sobrenome = teclado.readLine();

System.out.print("Informe sua idade:"); //o print serve para escrever na frente
idade = teclado.readLine();

System.out.println("Olá, " + nome + " " + sobrenome + " , você tem " + idade + " anos" + "."); //saida em tela
}
}




Conversão de tipos de dados:
A conversão é realizada em dois passos, primeiro é criado um objeto a partir da classe que receberá, como parâmetro, o objeto da classe String, isso porque um dado sempre é recebido como String. Em seguida o método é usado para retornar um valor do tipo de dados inteiro para a variável saída. Exemplo: Convertendo String para int:

String entrada = “12”;
int saida = new Integer(entrada).intValue();

Outro exemplo, convertendo String para double:

String valor = "125.7";
double saida = new Double(valor).doubleValue();

Segue o exemplo de aplicação na classe Soma:

package entradaDeDados;
import java.io.*;

public class Soma
{
public static void main(String[] args) throws IOException
{
String num1, num2; //variaveis
int resulSoma;

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

System.out.print("Informe o primeiro valor:"); //mensagem ao usuario
num1 = teclado.readLine(); //pegando valor do teclado

System.out.print("Informe o segundo valor:");
num2 = teclado.readLine();

int valor1 = new Integer(num1).intValue(); //convertendo valores

int valor2 = new Integer(num2).intValue();

resulSoma = valor1 + valor2; //efetuando a operação

System.out.println("O resultado entre " + num1 + " e " + num2 + " é " + resulSoma);

}

}



Agora um Exercício para testar e se divertir:

Efetuar o cálculo da qtde de litros de combustíveis gasta em uma viagem, utilizando um automóvel que faz 12 Km por litro. Para obter o calculo, o usuário deve fornecer o tempo gasto na viagem e a velocidade média.Desta forma, será possível obter a distância percorrida com a fórmula Distancia = tempo * velocidade . Tendo o valor da distancia, basta calcular a quantidade de litros de combustivel utilizada na viagem com a fórmula: Litros_usados = Distacia / 12. O programa deve apresentar os valores da velocidade média, tempo gasto, a distancia percorrida e a qtde de litros utilizados na viagem. Dica: trabalhe com valores reais

package exercicios;

import java.io.*; //para fazer uso do teclado
import java.text.*; //para formatar casas decimais
public class Exe4a {
public static void main(String[] args) throws IOException
{
String sTempo, sVelocidade;
double dDistancia, dDistPercorrida, dLitros;

NumberFormat mascara = new DecimalFormat("###.00"); //para formatar as casas decimais

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

System.out.println("Informe o Tempo de Viagem: ");
sTempo = teclado.readLine();

System.out.println("Informe a Velocidade: ");
sVelocidade = teclado.readLine();
//converter as variaveis
double dTempo = new Double(sTempo).doubleValue();
double dVelocidade = new Double(sVelocidade).doubleValue();

dDistPercorrida = dTempo * dVelocidade; //calculo de distacia percorrida
dLitros = dDistPercorrida / 12;

System.out.println("Velocidade Média = " + sVelocidade +
"\nTempo Gasto = " + sTempo +
"\nDistância Percorrida = " + dDistPercorrida +
"\nQuantidade de Litros = " + mascara.format(dLitros));
}
}


Pronto, por enquanto é só, mas os estudos continuam ao longo da semana, agora é melhor eu me concentrar na aqui na aula ;-)

Ahh uma dica, achei um material muito bom para servir de base de estudos, o curso de Java do Jedi, que por sinal, estou aproveitando também, é só conferir aqui.

Bons estudos para todos nós ;-)







domingo, 14 de fevereiro de 2010

Inproprietário: O Mundo do Software Livre


Segue abaixo a reprodução integral do post a respeito do documentário "InProprietário" do blog Verruga do Cérebro

"Todos que amam o software livre já devem ter visto ou ouvido falar de filmes e documentários como Revolution OS e The Code Linux, que são dois dos mais conhecidos exemplos de documentários que abortam o Linux e o software livre, mas poucas pessoas ainda conhecem o ótimo documentário nacional que foi feito como trabalho de conclusão de curso de Comunicação Social Habilitação em Jornalismo curso do Centro Universitário FIEO | UNIFIEO pelos jornalistas Daniel Bianchi e Jota Rodrigo.

O documentário Inproprietário: O Mundo do Software Livre, com duração de 32 minutos, conta com a participação de Richard Stallman e outros amantes de software livre e aborda desde a história da criação do Unix que teve durante um breve período de vida o seu código aberto e que tornou assim a sua derivação e larga utilização em universidades nos EUA possível em meados da década de 70, mas que foi fechado pela AT&T e que fez nascer assim a ideia do software livre e o surgimento do movimento GNU e mais adiante o kernel do Linux.

De forma muito simples e clara o filme tornou possível de ser explicada inclusive para as pessoas não ligadas a área de tecnologia o conceito de software, como ele é escrito e o que é o código fonte de um programa, diz ainda o que é um sistema operacional.

A obra ainda mostra a utilização do software livre e Linux não como uma alternativa tecnológica mas como uma reação de mercado e uma filosofia por diversos profissionais de tecnologia e por diversos setores do governo e forças armadas mostrando através de relatos de algumas pessoas diretamente ligadas a projetos de implementação de software livre como o software livre é viável tecnicamente e economicamente.

Em sua participação Richard Stallman fala sobre a idéia de software livre e os pilares sobre os quais foram fundadas o conceito de software livre.

Como não poderia ficar de fora também foi incluído e demonstrado o conceito de software proprietário, seu custo, suas limitações e sua pesada concorrência com o software livre.

Fica demonstrado nesse filme com clareza a importância do conceito do software livre e do compartilhamento livre e total ao conhecimento humano.

Pessoalmente falando, eu diria que esse documentário está entre os melhores já produzidos com esse assunto, não devendo em nada à produções como as acima citadas, eu particularmente parabenizo ao Daniel e Jota pelo maravilhoso trabalho de divulgação do software livre.

A obra que está licenciada sob a Creative Commons Atributo 2.5 Brasil"


Download

Diversão Livre - Revista Espírito Livre nº 10



Galera, um post um pouco atrasado, mas já foi lançada a edição nº 10 da revista Espírito Livre, com o tema: Diversão Livre . "Esta edição de janeiro da Revista Espírito Livre tenta apresentar aos leitores, experiências, situações e cases onde temos licenças livres propiciando diversão, softwares livres possibilitando a muitos se divertirem, enfim, estas tentamos mostrar que estas duas palavras, em nosso universo, podem conviver pacificamente, criando uma harmoniosa relação. A entrevista internacional tras Adrian Henke, um desenvolvedor de software que mora na Suiça e que está a frente do AssaultCube, um pequeno notável game de tiro em primeira pessoa, que faz milagre em pouco mais de 40 MB, seja nos gráficos, jogabilidade e outros aspectos. Merece toda nossa atenção."


Revista Espírito Livre


:-)