0% acharam este documento útil (0 voto)
0 visualizações36 páginas

Manual de Java Modulo1

Enviado por

Fernando Coll
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
0 visualizações36 páginas

Manual de Java Modulo1

Enviado por

Fernando Coll
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Curso de Programação Em JAVA

MÓDULO 1

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Introdução
Bem-vindo ao mundo da programação em Java!
Sem muitas introduções irei apenas dizer que o Java é uma linguagem de programação orientada a
objectos e que foi descoberta na década de 1990 por um grupo de programadores da SUN.
Actualmente tem sido uma das mais procuradas no mercado informático.
O Java é uma evolução do C e do C++.
Com o Java pode fazer aplicações complexas para gestão de bancos, super mercados, recursos
humanos, etc. Com o Java também pode fazer animações e outros efeitos audio-visuais de
multimédia.

Seguiremos agora para a parte introdutória do nosso curso que é apenas uma introdução ao tão
imenso mundo do Java.

PARTE 1:

1.1-Declaração de variáveis em Java

Definição: uma variável é um espaço de memória reservado pelo compilador capaz de


armazenar informação de um determinado tipo de dados e com a possibilidade de se
alterar esta informação ao longo da execução do programa. Esta informação só pode ser
acedida pela variável que contem o nome da declaração.
Para usar uma variável em qualquer linguagem de programação, devemos 1º declará-la
para que o compilador possa conhece-la.

Para declarar uma variável em Java basta seguir a seguinte sintaxe:


<tipo> <nomeDavariável>;
Os tipos podem ser:
§ Simples:
int, char, boolean, double, float. etc.
§ Estruturados ou Objectos:
JButton, JTextField, JComboBox, etc.

Ex.: char sexo;


int idade;
String nomeCompleto;
boolean casado;
double salario;
JButton saveButton, cancelButton;
JPanel centerPanel, southPanel;
NOTA: toda instrução em Java deve terminar com um ponto e virgula (;), o que indica o fim da
instrução. Os nomes das variaveis devem aconselhavelmente começar com letras minúsculas e
seguir sempre as regras de definição dos identificadores <ver a seguir>.

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Regras de definição dos identificadores:
1. Devem começar sempre com uma letra
2. Não podem conter espaço
3. Não podem conter caracteres especiais excepto o underscore “_”
4. Podem conter números
5. Não podem conter palavras reservadas do Java

Exemplos de declarações erradas:

int %idade#, // não podemos usar carácter especial deve começar com uma letra e deve ter ;
char $sexo; // não podemos usar carácter especial
String #nome completo; etc. ... // não pode ter espaço nem usar carácter especial

ATT: Os nomes das variaveis devem ser sugestivos; por exemplo: se uma variável vai guardar o
nome, não é aconselhavel chamá-la de idade mas sim nome, se uma variável vai guardar a idade
não podemos chamá-la de sexo e assim por diante.

Escopo de uma variável


Como sabemos, as variáveis podem ser globais ou locais. Uma variável global pode ser
usada em qualquer parte do programa, enquanto que uma variável local só pode ser usada
dentro do local (método ou class interna) onde foi declarada.

Todos os programas em Java devem ser feitos dentro de uma classe que por sua ves pode ou não
ter um construtor <ver mais a diante>, vários métodos <ver mais a diante> e para executar a classe
deve conter o metodo main que é o método chamado para a execução dos programas.

As classes devem aconsselhavelmente começar com letra maiúscula e o nome da classe deve ser
igual ao nome do [Link].
Se uma class tiver construtor, o construtor deve ter o mesmo nome que a classe.

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
ex.:

Este programa envia uma mensagem na consola. Pode testar para ver o resultado.

NOTA: toda a class começa e termina com uma chaveta e é aconselhavel assim que abrir a
chaveta fechar logo para evitar erros de compilação.

Todo programa em Java passa por duas fases:

Antes de tudo, abrir a consola e depois entrar na pasta em que se encontra o [Link]

A compilação: Javac [Link]

A execução: Java nomeDoPrograma

ATT: se depois da compilação não tiver erro, podemos ir para a execução caso contrario devemos
eliminar primeiro os erros.

Para fazer comentário em Java usa-se

// para comentar uma linha.


/* para comentar um bloco completo, um bloco é um conjunto de linha */

ATT: tudo que estiver em comentário o compilador ignora e não dá nenhum erro.

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Podemos declarar e inicializar uma variável ao mesmo tempo:
String nomeCompleto = “Osvaldo Ramos”;
int idade = 15; etc.

Atribuição de valores em Java


Para fazer uma atribuição de valores usa-se o operador de igualdade “=”;
ex:
int x; // declaração
int y; //das variáveis

x = 5; /* atribui-se o valor 5 a variável x, quer dizer que apartir de agora a variavel x contem o
valor 5 guardado */

y = x; /* quer dizer que y recebe o que estiver armazenado na variável x que neste caso é o
numero 5, logo y também vale 5 */

ATT: Quando declaramos uma variável, estamos a pedir ao compilador que nos reserve um espaço
na memoria para armazenar a informação que esta variável possa vir a receber, o espaço a reservar
depende do tipo da variável e a informação armazenada neste espaço só pode ser acedida por esta
variável. Por exemplo se a variável for do tipo int então o compilador reserva 4 bytes de memória,
se for um char reserva 2 bytes, e assim por diante.

LISTA DOS ESPAÇÕS OCUPADOS PELAS VARIAVEIS

Tipos Primitivos Tamanho em Bytes Valor Aceitável


int 4 23
char 2 ‘A’
long 8 32132133
float 4 2.3321
double 8 2.332113333456
boolean 1 True-false
byte 1 -128 a 127
short 2 -32768 a 32768

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Exercícios:

1. Verificar os erros de compilação do seguinte programa:

2. Dizer qual o valor de cada variável em cada instante do programa

NOTA: o tipo da variável indica o conjunto de dados que estas podem armazenar. Se quiser
armazenar apenas 1 caracter então declare uma variável do tipo char, se quizer guardar mais de 1
caracter então declare uma variável do tipo String, se quizer armazenar um número sem virgula
declare um int, se for um número com virgula declare um float ou double (se o número for muito
grande), se quiser armazenar algo que só admite dois possiveis estados (verdadeiro ou falso),
declare um boolean, etc.

ATT: se declarar uma variavel do tipo int não pode guardar nela um double, um float ou um
boolean porque são incompatíveis e o compilador não admite isto.

É possível declarar e inicializar uma variavel ao mesmo tempo;

ex: int x = 4;

Quando declaramos uma variável e não inicialízamos o compilador coloca zero para os inteiros,
um carácter em branco para o char uma String vazia para as Strings, etc.

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
O valor de uma variável como o nome diz pode ser alterado ao longo da execução do programa.
Mas se quizer que o valor não se altere então declaramos uma constante:

Declaração de constantes em Java


Usa-se a palavra-chave final <tipo> nomeDaConstante;
Os nomes das constantes contrariamente aos das variáveis são aconcelhavelmente escritos em
maiúsculas. Separados por um (under-score) se for mais do que uma palavra..

ex.:
final int IDADE = 15;
final String NOME_ALUNO = “ Osvaldo Ramos”;

ATT: as constantes devem ser inicializadas quando declaramos uma vez que o seu valor não pode
ser alterado.
Se por ventura alterarmos o valor de uma constante o compilador emite 1 erro!!! Porque o valor
das constantes não podem ser alteradas ao longo da execução do programa.

Imports de Pacotes
O Java contém suporte para interface gráfica, painéis, ficheiros, etc. e para tal possui uma
biblioteca de classes (API) onde contém algumas classes que nos auxiliam a fazer aplicativos.

Na API existem pacotes e subpacotes, estes por sua vez possuem classes que por seu turno
possuem métodos.

Para usar um método de uma classe devemos fazer o import do pacote onde se encontra a class que
contém este método, como se fosse um “pedido de permissão”. Por exemplo para usar o método
showMessageDialog da class JOptionPane, devemos fazer o import do pacote
[Link] que é o pacote onde se encontra esta classe e todas as outras que
começam com a letra J como JComboBox, JPanel, JButton, etc., quer dizer então que para usar
qualquer class que comece com a letra J basta fazer o import do pacote [Link].
Para pedir permissão de todas as classes de um pacote faz-se import nomePacote.*;

ex.: import [Link].*; // o asteristico significa tudo ou todas.

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Exemplo de programas resolvidos.

Resultado:

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Resultados:

Conceito de métodos
Uma classe pode conter n métodos desde que os mesmos não tenham o mesmo nome. Os métodos
têm uma tarefa especifica a realizar dentro da class.

ATT: Sempre que tiver um programa, divida sempre as tarefas em métodos.

Para declarar um método segue-se a seguinte sintaxe:

<Scopo> <tipoDeRetorno> nomeDoMetodo( <parâmetro1>, ……., <parâmetroN> )


{
//corpo do metodo
}

Os Scopo pode ser public, private, protected, final, static, etc. , quando o metodo é public, quer
dizer que pode ser usado em qualquer class, quando é private, só pode ser usado dentro da própria
class e quando é protected, só pode ser usado pelas classes do mesmo pacote.

<tipoDeRetorno> int, String, char, void, JButton, etc.

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Quando o método não devolve um valor específico então o tipo de retorno é void, caso contrário,
no final do método devemos sempre devolver o tipo de valor esperado que pode ser String, int, etc.
com o comando return <valor>;

Todo o método deve ter um nome desde que não tenha nenhum método com aquele nome, os
nomes devem aconselhavelmente começar em minúscula e seguir as regras dos identificadores
vistas atrás.

Os métodos podem ou não receber variáveis como parâmetro e se receber mais de uma variável
como parâmetro deve haver uma separação com vírgula entre os parametros.

ATT: os métodos começam e terminam com chavetas devendo fechar assim que abrir uma chaveta
para evitar erros. Os métodos podem chamar outros métodos, classes e usar variáveis globais e
locais. Dentro de um método podemos declarar quantas variáveis locais quisermos.

Exemplo da declaração de um método.

public int soma(int a, int b)


{
return a + b;
}

Este método é público, chama-se soma, recebe 2 parametros e devolve 1 inteiro.

private void showMessage()


{
[Link] (null, “I love Java”);
}

Este método é private o que quer dizer que só pode ser usado dentro da sua class, não devolve nada
chama-se showMessage e não recebe parametro

ATT: todo método deve estar dentro de uma class. As classes têm construtores e métodos.

9 Incremento e Decremento de variáveis

Os incrementos e decrementos são fundamentais para a funcionalidade dos ciclos


repetitivos. Os incrementos o decrementos podem ser de 1 em 1 ou n em n,
dependendo das nossas necessidades.

10

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Exemplo de incrementos:

int y = 2, x;

y++; // equivalente a y = y + 1;

Valor de y = 3;

x = --y; //equivalente a x = y – 1;

Valor de x = 2;

Incrementos Decrementos

++i; | --i;
i++; | i--;
i = i + 1; | i -= 3;
i *= 2; | i /= 2;

1. y = i++ <=> i = i + 1
2. y = ++i <=> i = i + 1
3. i *= 3 <=> i = i * 3
4. i /= 5 <=> i = i / 5
5. i -- <=> i = i – 1
6. --i <=> i = i - 1

No caso 1 – 1º atribui –se o valor actual de i à y e só depois faz-se o incremento,


enquanto que no 2º case 1º incrementa-se o valor de i e só depois entregamos o seu
valor à y.

11

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Operadores lógicos

Os operadores lógicos são:

Operadores Equivalente em Exemplos


Java
And && True && false = false
Or || False || false = false
Xor | True | false = true
XNor ^ False ^ true = false
Not ! !true = false

Operadores Relacionais

Operadores Equivalente em Exemplos


Java
igualidade == 5 = = 5 = true
diferença != 4 != 2 = true
menor < 6 < 12 = true
Maior > 3 > 5 = false
Maior ou igual >= 2 >= 8 = false
Menor ou igual <= 2 <= 7 = true

Nota: os operadores relacionais devolvem sempre um valor lógico (true ou


false), e , não se esqueça de dar sempre um espaço entre os operadores e os
operandos.

12

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Operadores Aritméticos

Operadores Exemplos
+ 2+1=3
- 3 – 5 = -2
/ 5/3=1
* 3 * 4 = 12
% 5%3=2

Expressões Lógicas, relacionais e aritméticas

Tipo de operação Expressão


Lógica True && false || false = false
Lógica ! (False ^ true || true) = false
Lógica 2 <= 3 && 5 >= 3 = true
Aritmética 2 + ( 3 / 4) * (-2) = 2
Aritmética 35 / 7 * ( -3 + 5 % 2) = Resolva esta

Testes e condições (if-else e switch)


Até em nossas vidas encontramo-nos as vezes em situações em que temos de decidir o que fazer
num determinado instante. Do mesmo modo o computador precisa de saber o que fazer em cada
instante e sob quais condições.

Para fazermos estas escolhas temos de fazer os chamados teste de condições.

if-else

Sintaxe:
if (<condição> = verdadeira)
//executar tarefa1
else
//executar tarefa2

ATT: as condições de teste do if devem sempre ser uma expressão lógica, porque estas devolvem
sempre true ou false.

13

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
NOTA: Se tivermos mais de uma instrução a ser executada dentro do if então temos de usar as
chavetas para identificar o inicio e o fim “do if”, caso tenhamos apenas uma instrução a ser
executada dentro do if, não precisamos de usar chavetas.

Exemplos do dia a dia:

1. se (carroEstaBom) então
vou sair
senão
fico em casa estudando

2. se (tenhoDinheiro) então
Vou comprar um carro
senão se (dinheiroNaoChega) então
vou comprar uma motorizada
senão
não compro nada //porque não tenho dinheiro suficiente

3. if (idade <= 18)


[Link](“Você não pode Votar”);
else
[Link](“Você pode Votar”);

switch

Também há vezes em que temos varias oportunidades de fazer algo mas só podemos escolher uma
coisa dentre as varias opções. Nestes casos, em Java usa-se um switch para escolher uma entre
varias opções.

Sua sintaxe:

Switch (opção)
14

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
{
case opcao1:
//fazer tarefa1;
break;

case opcao2:
//fazer tarefa2;
break;

case opcao3:
//fazer tarefa3;
break;

default:
//fazer algo por defeito;
break;
}

O break serve para fazer apenas uma coisa de cada vez e terminar logo as opções de escolha,
porque uma pessoa não pode fazer duas coisas ao mesmo tempo.

O switch pode aparecer dentro de um ciclo repetitivo.

Exemplo usando if - else:

Agora que já vimos o conceito de métodos, já os podemos usar a vontade.

Resultado:

15

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Exemplo usando switch

NOTA: deve implementar os métodos a cima indicados!

Ciclos Repetitivos
Existem basicamente 3 tipos de ciclos repetitivos em todas as linguagens de programação, o ciclo
for, ciclo while e o ciclo do-while.

¾ Ciclo for:
Este ciclo tem três cláusulas <inicialização; condiçãoDeParagem; incremento>

A sua sintaxe é:
16

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
for (<inicio>; <condiçãoParagem>; <incremento>)
{
<comando1>
……..
……..

<comandoN>
}

NOTA: só precisamos de chaveta se o ciclos tiver mais do que uma instrução a ser executada.

Exemplo de um exercício usando o ciclo for:

Resulted:

este ciclo funciona automaticamente desde que coloquemos o valor de inicio do ciclo, a condição
de paragem e o respectivo incremento.

17

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
¾ Ciclo while:
Sua sintaxe é:

<inicialização>

while (<condiçãoDeParagem>)
{
//instruções…….

<incremento>
}

Vamos agora fazer o mesmo exercício usando while em vez de for

Resultado:

18

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
¾ Ciclo do - while:

Sua sintaxe é:

<inicialização>

do
{
//instruções ….

<incremento>

} while (condição != false);

Vamos fazer o exercício anterior usando este ciclo:

Sempre que quiser fazer uma tarefa que provavelmente vai se repetir mais de 3 ou 4 vezes é
aconselhável usar um ciclo repetitivo para tal, evitando muitas declarações de variáveis, e muitas
linhas de código.

19

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Os ciclos repetitivos são muito importantes para os programadores porque facilitam imenso, em
caso de operações repetitivas.

9 Diferença entre os 3 ciclos repetitivos:


O ciclo for é o mais simples porque tem as três cláusulas numa só linha, enquanto que os outros
dois têm-nas em 3 ou 4 linhas.

O uso de um ou de outro depende do programador de acordo com as suas necessidades.


Os ciclos for e while são quase parecidos porque têm a característica de testar 1º a condição de
paragem antes de executar a instrução dependente do ciclo.

Já o ciclo do-while, executa 1º e depois testa a condição de paragem.

ƒ Término forçado de um ciclo

O programador pode se quiser forçar o termino de um ciclo ao detectar alguma


condição.

Para tal usamos o break ou continue;

9 return
Força o término de um determinado método ou função

9 break

• Usado para forçar o término do ciclo.


• Se por exemplo quisermos fazer um ciclo de 1 a 20 mas que termine assim que
encontre um numero múltiplo de 5 então colocamos um teste para verificar se (i % 5
= = 0) então termina <break>

20

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Ex. Usando o break

Resultado:

NOTA: depois do break o ciclo termina e já não executa nenhuma instrução asseguir
que esteja dentro do ciclo.

9 continue
ƒ Em vez de terminar o ciclo, salta apenas para próxima iteração do ciclo.
ƒ Se por exemplo quisermos mostrar todos números impares de 1 a 20, basta
colocarmos um teste se (i % 2 = = 0) então continue;

21

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Vejamos:
//este programa mostra todos números impares de 1 a 20

Resultado:

22

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
¾ Resumo
Queríamos com esta 1ª parte dar aos leitores a possibilidade de ter as primeiras bases que
vão servir de auxílio para compreender o que vem a seguir.

Em suma queríamos dar-lhe a conhecer o que acontece quando declaramos uma variável,
quais os tipos de variáveis, como declara-las, como usa-las, e muito mais.…
Saber que quando queremos usar uma class da biblioteca de classes do Java demos fazer o
respectivo import do pacote que contem esta classe, como declarar constantes e métodos,
chamada dos métodos, vimos também que é aconselhável dividir os programas em métodos
onde cada um terá uma função especifica e realizar de modos a tornar o programa mais
simples e legível. Vimos ainda a utilidade dos ciclos repetitivos, dos testes e condições, do
switch, dos operadores e expressões lógicas, aritméticas e relacionais, e muitos outros
conceitos que o ajudarão com certeza a entender o veremos nas próximas lições.

Exercícios Práticos 1
1- Fazer um método que recebe dois números inteiros e devolve a subtracção de ambos, outro
que devolve a multiplicação e outro que devolve a divisão.

2- Fazer um método que recebe como parâmetros o nome e a idade de alguém e imprime uma
mensagem dizendo se este individuo tem ou não idade para ter carta de condução ( >= 18
anos).

3- Fazer um método que recebe um numero e devolve o valor absoluto deste numero. Abs (-2
) = 2.

4- Fazer um método que não recebe parâmetros, solicita um número ao utilizador e mostra a
tabuada de 1 à 10 deste número (deve usar ciclos a sua escolha).

5- Fazer um método que recebe 3 números e devolve o maior.

6- Fazer um método para devolver a soma de todos números inteiros de 1 – 10 , usando o


ciclo while

7. Verifique os erros de compilação e corrija-os

a) if ( age >= 65 );
[Link]( "Age greater than or equal to 65" );
else
[Link]( "Age is less than 65 )";

b) int x = 1, total;
23

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
while ( x <= 10 )
{
total += x;
++x;
}

c) While ( x <= 100 )


total += x;
++x;

d) while ( y > 0 )
{
[Link]( y );
++y;

8. O que faz o seguinte programa?

public class Mystery


{
public static void main( String args[] )
{
int y, x = 1, total = 0;
while ( x <= 10 )
{
y = x * x;
[Link]( y );
total += y;
++x;
}

[Link] (“Total is " + total );


}
}

9. Fazer um metodo que recebe um numero e mostra um output como o seguinte:

N 2*N 3*N
5 10 15
3 6 9
9 18 27

24

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
10. Fazer um programa que gera o seguinte

********
********
********
********
********
********
********

11. Fazendo uso dos ciclos repetitivos, fazer um programa que gera os seguintes outputs

a. ********** b. * c. ********** d. *
********* ** ********* **
******** *** ******** ***
******* **** ******* ****
****** ***** ****** *****
***** ****** ***** ******
**** ******* **** *******
*** ******** *** ********
** ********* ** *********
* ********** * **********
12. Fazer um método que recebe um número inteiro decimal e devolve o seu equivalente em
binário.

13. Fazer um método que faz o inverso do programa anterior.

14. Fazendo o uso de um ciclo do-while e com o auxílio do switch, desenvolva uma mini
calculadora que faz as operações de soma, multiplicação, subtracção e divisão. O programa deve
mostrar um menu principal em que a ultima opção seja a opção Sair. Nota que a condição de
paragem do ciclo é a opção Sair.

Nota: depois de fazer estes exercícios sozinho, estará em condições de fazer qualquer exercício
que envolva esta matéria.

ATT: para solicitar um dado no utilizador é usado o método showInputDialog da class


JOptionPane, este método devolve uma String, se o valor introduzido for um numero este deve
ser convertido em inteiro, float ou double através do método [Link]() ou
[Link]().

25

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
PARTE 2:

2.1 – Introdução ao estudo dos Arrays em Java

Definição: Um Array é uma locação contígua de memória, capaz de armazenar um


conjunto de valores do mesmo tipo. Os elementos do Array são acedidos através da sua
posição no Array, as posições do Array vam de 0 à n – 1.

Enquanto que as variáveis armazenam um valor, os Arrays armazenas um conjunto de


valores. Para aceder a um elemento do Array devemos indicar o nomeDoArray
[posiçãoProcurada];

0 13

1 2

2 23

3 77

4 66

5 55

6 45

7 98

8 78

9 90

Por exemplo
nomeVector[ 0 ] = 13
nomeVector[ 1 ] = 2
nomeVector[ 2 ] = 23
nomeVector[ 9 ] = 90

26

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
2.3 – Declaração e Inicialização dos Arrays
ƒ Existem varias formas Para declarar um Array em Java
1. int num[ ] = new int[ 10 ]; // declaramos 1 vector de 10 elementos de 0 - 9

2. int v[ ]; // declaramos 1 vector


v = new int[ 6 ]; // alocamos o espaço de memória para 6 inteiros

// Podemos declarar vários Arrays na mesma linha


3. char c[ ] = new char[ 6 ], g[ ] = new char[ 12 ];

// Este tipo de declração também é valido mas indica que todas as variáveis declaradas
nesta linha são do tipo Array.
4. double[ ] valores = new double[ 12 ], elementos = new double[ 32 ];

Nota: Para dar o nome de um vector devemos seguir as regras dos identificadores,
vistas nas lições anteriores.

ƒ Inicialização de Arrays em Java

Também podemos declarar e incializar um Array ao mesmo tempo como no


seguinte case:
char nome[ ] = {‘J’, ‘A’, ‘V’, ‘A’};

neste caso o compilador considera que o tamanho do Array é 4 porque é o numero


de valores inicializados no Array.

double values[ ] = {1.2, 4.3, 2.2, 1.23};

neste caso temos um Array de 4 doubles.

Podemos declarar um Array sem inicialização e depois fazermos um ciclo para


inicializá-lo:

int números[ ] = new int[ 10 ];

para incializá-lo, podemos fazer de duas formas, depois diga qual é a melhor.

27

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
1. números[ 0 ] = 0;
números[ 1 ] = 0;
números[ 2 ] = 0;
números[ 3 ] = 0;
números[ 4 ] = 0;
números[ 5 ] = 0;
números[ 6 ] = 0;
números[ 7 ] = 0;
números[ 8 ] = 0;
números[ 9] = 0;

2.
for ( int i = 0; i < 10; ++i )
números[ i ] = 0;

veje a grande utilidade dos ciclos repetitivos e use-os sempre que possível.

NOTA: Para saber o tamanho de um Array use o método lenght da class Array.

DIFERENÇA ENTRE ARRAY E VECTOR


Uma das grandes diferenças é que o Array é statico e tem posições fixas enquanto que as
posições do Vector crescem de acordo com a execução do programa.

A class Vector pertecnce ao pacote [Link].*; e possui vários métodos mais flexíveis para
manipulação dos seus dados. <ver class Vector na API-JAVA>.

A utilização de um ou outro depende das necessidades do programador, tendo em conta também os


recurso do computador como a memoria, etc.

Manipulação dos Dados do Array

Já vimos atrás que para aceder um elemento do vector devemos apenas dizer o nome do vector em
que pertence o elemento e sua posição neste vector. Quer dizer então que podemos manipular os
dados do vector demodos a fazer todas operações possíveis sobre o tipo de dados do vector.

28

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Exemplo.

Y = v[ 1 ] + v[ 5 ];

v[ 2 ] = v[ 5 / 2 ] % v[ 5 % 2 ];
v[ 3 ] = v[ 3 ]++;
v[ 2 ] = --v[5];

e outros tipos de operações possíveis.

Podemos declarar um vector de String e inicializá-lo do seguinte modo:


String províncias [ ] = {“Luanda”, “Malange”, “Huambo”, “Benguela” },
nome[ ] = {“Osvaldo Ramos”};

Exemplo usando Arrays

29

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Resultado:

30

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
¾ Resumo
Entender bem a funcionalidade dos Arrays é muito importante para entender o que veremos
a seguir e também porque usaremos muitas vezes ao longo do curso.
Não se esqueça que para dar o nome de um vector devemos seguir as regras dos
identificadores, e dar nomes sugestivos. Lembre-se também que para aceder a um elemento
do Array basta fazer: nomeVector [posição], e que as posições dos Array vão de 0 à n – 1.
Antes de Avançares para o ponto a seguir, procure entender 1º tudo que vimos até agora e
só assim verá que o resto não tem segredo.

Exercícios Práticos 2

1. Verificar os erros de declaração de Arrays:

a. String províncias = new String[ 18 ]


b. int números[ ] = 1, 2, 3, 4, 5
c. char sexos#alunos[ ] = {“F”, “M”, “F”, “F”, “M”}

2. Diga qual o resultado das posições do Array e se houver erros corrija-os:

int v[ ] = new int[ 5 ];


a. v[ 6 ] = 5 % 7;
b. v[ -1 ] = 3;
c. v[ 0 ] = 3 / 4;
d. v[ 2 ] = v[ 0 ] * 4;

3. Fazer um método que recebe um Array do tipo char e um carácter para inicializar este
Array, nota que o método deve devolver o Array inicializado com o carácter recebido.

4. Fazer um método que recebe um Array desordenado e devolva-o ordenado de forma


decrescente.

5. Fazer um método que recebe um Array de inteiros e devolva a soma de todos elementos
deste Array.

6. Fazer um método iterativo que recebe um Array de caracteres e um carácter ch e verifica se


este carácter está dentro do Array, caso esteja, devolve a posição em que se encontra o
carácter, caso contrario devolva -1.

7. Repita o exercício anterior para um método recursivo.

8. Fazer um método que recebe um Array e devolva-o de forma invertida.

31

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
9. Fazer um método de preferência recursivo que recebe dois Arrays e troca os seus
conteúdos.

10. Fazer um método que recebe um Array de caracteres e um numero N e mostre os elementos
de N em N posições. exemplo se N = 2, mostra os elementos de 2 em 2.

PARTE 3:

3.1 – Introdução ao Estudo da Recursão


Em quase todas as linguagens de programação existem dois tipos de algoritmos, os
algoritmos Iterativos e os Recursivos.

Há algoritmos que são mais fáceis de se fazer recursivamente e outros que são mais fáceis
fazê-los de forma iterativa, mas todo algoritmos recursivo tem sempre um equivalente
iterativo e vice-versa.

3.2 - Diferença entre os Algoritmos Recursivos e Iterativos


Algoritmos Recursivos: são aqueles que chamam-se a si mesmo dentro do seu corpo, ou
seja, as iterações são feitas através de chamadas sucessivas a função. Todo algoritmo
recursivo deve ter uma condição de paragem porque senão pode estoirar a memoria e
outros recurso porque estes tipos de algoritmos gastam muito espaço de memoria o que é
também a sua grande desvantagem, chega a uma altura em que o Sistema Operativo já não
tem memoria suficiente para continuar a execução do programa e o computador fica
bloqueado.

Os algoritmos iterativos gastam menos memória e em certos casos são mais simples de se
resolver.

Uma das grandes vantagens dos algoritmos recursivos é que são muito pequenos em
relação aos iterativos e também mais complexos.

3.3 - Dicas para Resolução de Algoritmos Recursivos


Analisar 1º as possibilidades de fazer o algoritmo recursivamente.

Ter sempre em mente que antes de tudo devemos pensar logo na condição de paragem da
recursão, ou seja, devemos nos perguntar, quando é que a função deve parar de se chamar?

Analisar as excepções do programa, analisar também se a chamada recursiva será com


incremento ou com decremento porque senão criar-se-á um ciclo infinito onde o programa

32

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
nunca atingirá a condição de paragem até que os recursos do computador usados na
execução do programa se esgotem.

Depois de tudo isso, estamos em condições de fazer qualquer programa recursivo do mais
simples ao mais complexo.

Fique atento nos seguintes programas recursivos.

Dentro desta class tem dois métodos recursivos um que calcula a multiplicação de 2
números e outro que calcula o factorial de um número.
Como pode ver ambos têm uma condição de paragem e depois as chamadas recursivas da
própria função dentro dela.

No caso da multiplicação, a ideia é fazer somas consecutivas porque afinal de contas 5 * 3


= 5 + 5 + 5 ou seja X * Y = somatório de X Y vezes. Como qualquer número Vezes zero =
0 então podemos fazer disso a nossa condição de paragem verificando se pelo menos um
deles for igual a zero então devolvemos 0.

No caso do factorial, basta fazer a multiplicação sucessiva de N com os N – 1 Termos e


teremos então o factorial de N uma vez que N! = N * N – 1 * N – 2 * ( N – N), e que 0!
= 1! = 1, logo podemos aproveitar estas excepções para usarmos como a nossa condição de
paragem.

33

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
3.4 - Conversão de Algoritmos Recursivos em Iterativos e vice –
versa
Não há grandes segrados para converter um algoritmo recursivo em iterativo e vice-versa,
basta verificar que as condições de paragem são as mesmas tanto para o algoritmos recursivo
como para o iterativo, o que muda é apenas o facto de que nos iterativos usamos ciclos
repetitivos e nos recursivos fazemos varias chamas a função com o incremento ou decremento
de uma variável.

Veje então os equivalentes iterativos dos algoritmos feitos a cima.

Como pode ver foi possível converter os algoritmos recursivos em iterativo.

NOTA: o segredo do sucesso está na dedição das pessoas e no esforço que fazemos para
alcançar os nossos objectivos, baseando-se nestas frases, quero eu dizer que para ser um bom
programador, devemos dedicar-nos e esforçar-nos muitos para conseguirmos tudo que
queremos “Ser bons Programadores”. Se no mínimo gastarmos 2 ou 3 horas para programar
todos dias, pode crer que em pouco tempo você alcançará o seu sonho.

34

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
3.5 – Resumo
Como dizia um autor; Para Fazer Exercícios de Recursão é preciso ter fé.
Se tivéssemos de falar tudo sobre a recursão acabaríamos mais de 100 páginas, isto
é apenas uma introdução ao mundo da recursão que é bastante interessante.

Esperamos que tenha ficado claro os detalhes mais importantes dos algoritmos
recursivos que são:

Condição de paragem, para não estoirar a memoria; chamar a função


recursivamente com o incremento ou decremento de um dos parâmetros da função
para que o programa não entre num ciclo infinito e o computador fique bloqueado.

Tente calcular 15! Verifique o tempo de processamento e depois calcule por


exemplo 55! E verá que o computador ficará bloqueado se não for potente em
memoria RAM.

Quando for mais simples resolver um problema recursivamente não exite, mas
também não se esqueça que recursão gasta muita memória.

Mais a frente, vamos resolver mais alguns algoritmos recursivos para que o leitor
possa familiarizar-se com eles facilmente.

3.6 – Exercícios Práticos 3


Todos exercícios a seguir deverão ser feitos recursivamente.

1. (*) Implementar o algoritmo de busca binária.

2. (***) Fazer um método que recebe um Array de caracteres e verifique se este é


ou não capicua. Exemplo: “ABCBA”, “JHGHJ”.

3. (****) Fazer um método que inverte um Array recursivamente fazendo apenas o


uso de uma variável auxiliar.

4. (****) Implementar o algoritmo das torres de hanoi. Este algoritmo consiste em


mover os disco de uma torre para outra usando uma torre com auxiliar.

35

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos
Conclusão do 1º Módulo:
Neste módulo, tentamos na medida do possível, ajudar o leitor a se familiarizar com a
linguagem e prepará-lo para o que vem nos módulos subsequentes.

Como tudo, Começamos do mais básico e vamos evoluindo pouco a pouco.

NOTA: “Mais vale saber pouco e bem do que saber muito e mal”.
Espero muito sinceramente que tenha aprendido alguma coisa com este 1º módulo do
curso e que não desista porque o que vem a frente é muito espectacular.

Qualquer duvida não exite em ligar para [Link] Osvaldo Ramos ou escrever para
osvaldoramos2006@[Link], Java Is My Life.

Referência Bibliográfica:
Java How To Program 4ª Edition, Deitel & Deitel
[Link]

36

IF´S – Edifício da Rádio Vial, Nº8 - 2º Andar, Tel.: 222 31 08 16 – 222 311 627
ifs@[Link]
Curso de programação em Java, modulo 1, elaborado por Osvaldo Ramos

Você também pode gostar