Está en la página 1de 31

Programacão e Algoritmos II

Tipos de dados avançados


Arrays (Vectores):
Permitem o armazenamento de informação do mesmo tipo.

Exemplo
Cores Primárias → [vermelho, azul, amarelo]
Números Inteiros de 1 a 10 → [1,2,3,4,5,6,7,8,9,10]
Formas Geométricas → [triangulo, circulo, quadrado,…]

Ângela Oliveira 2006/2007 1


Programacão e Algoritmos II

Tipos de dados avançados (continuação)


Arrays em JAVA:
Um array em JAVA é uma classe.
Assim para declarar um array em JAVA é necessário usar o
comando “new”.

Sintaxe de declaração de arrays


Tipo_de_dados[] nome_array=new Tipo_de_dados[tamanho_array]

Em que Tipo_de_dados é o tipo de elementos que o array vai


conter e tamanho_array, vai ser a dimensão pretendida.

Ângela Oliveira 2006/2007 2


Programacão e Algoritmos II

Tipos de dados avançados (continuação)


Exemplo:
int [] idades = new int[10];

Corresponde a:

0 1 2 3 4 5 6 7 8 9
Posição

Pode conter 10 valores inteiros

Ângela Oliveira 2006/2007 3


Programacão e Algoritmos II

Tipos de dados avançados (continuação)

0 1 2 3 4 5 6 7 8 9

1 56 8 90 18 33 5 9 28 45

Como aceder a uma posição do array?


O nome do vector é idades então:
idades[0] =1
idades[5]=33
idades[8]=28

Ângela Oliveira 2006/2007 4


Programacão e Algoritmos II

Tipos de dados avançados (continuação)


Exercício:
Construir um array que guarde 5 nomes e inicialize
cada posição :
Solução:

String [] nomes=new
String [5];
nomes[0]=“Sara”;
nomes [1]=“Paulo”;
nomes [2]=“Daniela”;
nomes [3]=“Filipe”;
nomes [4]=“Joaquina”;

Ângela Oliveira 2006/2007 5


Programacão e Algoritmos II

Tipos de dados avançados (continuação)


Então o array ficaria:

0 1 2 3 4

Sara Paulo Daniela Filipe Joaquina

Outra forma de inicializar este vector é definir um


conjunto dos nomes que se pretendem, ou seja:

Ângela Oliveira 2006/2007 6


Programacão e Algoritmos II

Tipos de dados avançados (continuação)

Ângela Oliveira 2006/2007 7


Programacão e Algoritmos II
Tipos de dados avançados (continuação)
Como se representará uma matriz em JAVA?
Considere-se a matriz seguinte:

 1 0 − 3
A =  5 0 2 
− 4 6 8 

Será, que com um array é possível representar esta matriz?

Ângela Oliveira 2006/2007 8


Programacão e Algoritmos II

Tipos de dados avançados (continuação)


Um só array não é suficiente, uma vez que para uma matriz
são necessárias duas posições, uma para a linha outra para a
coluna, ou seja:

linha 1 0 − 3 Este valor está na

A = 5 0 2 
linha 1, coluna 3

4 6 8 
coluna

Ângela Oliveira 2006/2007 9


Programacão e Algoritmos II

Tipos de dados avançados (continuação)

O Java não possui arrays Multi-dimensionais, mas permite declarar


um array que é baseado em outro array.

Exemplo:
int matriz [] [] =new int [3] [3];

Implementado no Eclipse tem-se:

Ângela Oliveira 2006/2007 10


Programacão e Algoritmos II

Tipos de dados avançados (continuação)

Ângela Oliveira 2006/2007 11


Programacão e Algoritmos II

Tipos de dados avançados (continuação)


A matriz pode ser representada de outra forma:

Ângela Oliveira 2006/2007 12


Programacão e Algoritmos II

Estruturas de Controlo

Ângela Oliveira 2006/2007 13


Programacão e Algoritmos II
Estruturas de Controlo

Quando se constroem algoritmos existem situações como a seguinte:


“Verificar se um número é diferente de zero.”

Algoritmo:
Dados de entrada: um valor inteiro
Dados de saída: verdadeiro ou falso
Se numero==0 então
Devolve verdadeiro
Senão
Devolve falso
Ângela Oliveira 2006/2007 14
Programacão e Algoritmos II
Estruturas de Controlo (continuação)

Ou seja, na maioria dos casos, é necessário que o programa tome decisões.


Assim, os comandos que tomam decisões são chamados de fluxos ou estruturas
de controlo.

No Java existem as seguintes estruturas de controlo:


1. if – else;
2. while;
3. do – while;
4. for;
5. switch;
6. break;
7. continue;

Ângela Oliveira 2006/2007 15


Programacão e Algoritmos II
Estruturas de Controlo (continuação)
1. if – else:
Sintaxe:
if (expressão_booleana)
comando 1;
Esta expressão é formada por
operadores lógicos e relacionais.
[else
Se a expressão for verdadeira
comando 2]; (true), executa o comando 1,
caso seja falsa (false) executa o
comando 2

Ângela Oliveira 2006/2007 16


Programacão e Algoritmos II
Estruturas de Controlo (continuação)
1. if – else(continuação):
Exemplos:
1. Voltando ao algoritmo, como podemos transformá-lo em código JAVA.
A estrutura de controlo if-else resolve o problema:

Ângela Oliveira 2006/2007 17


Programacão e Algoritmos II
Estruturas de Controlo
(continuação)
1. if – else(continuação):
Exemplos:
2. Para que um
comando execute mais
do que uma instrução é
necessário que o bloco
de código esteja entre
{}:

Ângela Oliveira 2006/2007 18


Programacão e Algoritmos II
Estruturas de Controlo
(continuação)
1.if – else(continuação):
Exemplos:
3. è ainda possível
combinar várias instruções
na expressão booleana de
teste:

Ângela Oliveira 2006/2007 19


Programacão e Algoritmos II
Estruturas de Controlo (continuação)
2. While:
Implementa um ciclo para executar um bloco de comandos
sucessivas vezes. A instrução de comparação é avaliada antes
do ciclo começar.

Enquanto a expressão for


Sintaxe: verdadeira (true), o ciclo será
executado
while (expressão_booleana){
comandos;
}

Ângela Oliveira 2006/2007 20


Programacão e Algoritmos II
Estruturas de Controlo
(continuação)
1. While (continuação):
Exemplo:
while (i!=0){
salário = salário * 0.5;
i--;
}

Ângela Oliveira 2006/2007 21


Programacão e Algoritmos II
Estruturas de Controlo (continuação)
3. do - while:
Esta estrutura de controlo é semelhante à anterior, mas neste
caso o conjunto de comandos do ciclo é executado pelo menos
uma vez. A instrução de comparação é avaliada depois do ciclo
ser executado.
Sintaxe:
do{
comandos;
}while (expressão_booleana);

Ângela Oliveira 2006/2007 22


Programacão e Algoritmos II
Estruturas de Controlo (continuação)
4. for:
É um ciclo que possui uma parte inicial com a inicialização das
variáveis, seguida por uma expressão de comparação e depois
uma parte final com o incremento ou decremento a aplicar.

Sintaxe:
for (inicialização; condição; iteração){
comandos;
}

Ângela Oliveira 2006/2007 23


Programacão e Algoritmos II
Estruturas de Controlo (continuação)
4. for (continuação):
Exemplos:
1. for (i=0; i <20; i++){
salario=salario*0.5;}

2. for (int i=10; i >0; i--){ //podem inicializar-se variáveis dentro do ciclo
comandos; }

3.int i=0;
for (; <20;){ //O único elemento no ciclo “for” que não é dispensável é a condição
comandos;
}

Ângela Oliveira 2006/2007 24


Programacão e Algoritmos II

Estruturas de Controlo (continuação)


4. for (continuação):
Exemplos:
4. for (i=0, j= 10; i <8 && j >2; i++, j--){

comando;
}

A inicialização e incremento podem ser feitos com mais de uma variável,


separadas por vírgulas.

Ângela Oliveira 2006/2007 25


Programacão e Algoritmos II
Estruturas de Controlo (continuação)
5. switch:
É um ciclo que avalia uma expressão contra vários resultados possíveis. O valor a avaliar só pode ser char,
byte, short ou int.

Sintaxe:
switch (expressão){
case valor1:
comando1;
break;
case valor2:
comando2;
break;

[default:
comando_default;]
}

Ângela Oliveira 2006/2007 26


Programacão e Algoritmos II

Estruturas de Controlo (continuação)


5. switch (continuação):
Exemplo:
switch(i){
case 1:
System.out.println(“um");

break;

case 2:
System.out.println(“dois");

break;

default:
System.out.println(“outro número");

break;

Ângela Oliveira 2006/2007 27


Programacão e Algoritmos II

Estruturas de Controlo (continuação)


6. break :

Não se trata de um ciclo mas de um comando que está directamente


relacionado com os ciclos. Ao encontrar-se o comando break num ciclo,
pára a execução do ciclo e sai.
Pode também usar-se para forçar a saída de bloco de instruções
condicionais como é o caso do switch.

Ângela Oliveira 2006/2007 28


Programacão e Algoritmos II
Estruturas de Controlo (continuação)
6. break (continuação):
Exemplo:

Ângela Oliveira 2006/2007 29


Programacão e Algoritmos II

Estruturas de Controlo (continuação)


7. continue :
Este comando também interrompe a execução do ciclo mas não
sai dele, passa para a instrução seguinte mas dentro do ciclo.

Ângela Oliveira 2006/2007 30


Programacão e Algoritmos II
Estruturas de Controlo
(continuação)
7. continue (continuação):
Exemplo:

Ângela Oliveira 2006/2007 31

También podría gustarte