Buscar

IC(M) - 03 - Programação JAVA - parte 2


Prévia do material em texto

Programação JAVA - parte 2 
Leopoldo França 
Introdução ao Coding 
(Mobile) 
Estruturas de repetição 
•Diferente do ser humano, o computador não se cansa 
de realizar operações repetitivas. 
 
•Diante disto, podemos incluir nos programas as 
estruturas de repetição. 
 
•O que é uma repetição? 
 
• Também chamada a laço ou loop; 
• É uma instrução que permite a execução de um trecho de 
um programa várias vezes seguidas. 
Comandos REPITA e ENQUANTO 
• Tanto o comando REPITA quanto o comando ENQUANTO permitem 
repetir um ou mais comandos no corpo de um algoritmo. 
 
• A sintaxe dos comandos é: 
repita 
 <comando1>; 
 <comando2>; 
 . 
 . 
 . 
 <comandoN>; 
até <expr>; 
 enquanto <expr> faça 
 <comando>; 
Comando REPITA 
• O comando REPITA indica que todos os comandos entre a palavra repita e a 
palavra até encontram-se dentro de um laço e devem ser executados. 
 
• Após a palavra até deve haver uma expressão lógica que: 
• Se falsa, indica que o laço deve ser executado novamente; 
• Se verdadeira, indica que o laço acabou e o algoritmo deve continuar 
sendo executado. 
 
• Esta estrutura é chamada de repetição com teste no final 
• A decisão entre repetir e parar o laço é feita ao final do comando. 
• É garantido que o laço será executado aos menos uma vez. 
Comando REPITA em Java 
•O mais próximo do REPITA em Java é a instrução do...while 
 
• Teste realizado após a execução do corpo do loop. 
•O corpo do loop sempre executa ao menos uma vez. 
• Diferente do repita, o código continuará sendo executado 
enquanto a instrução for VERDADEIRA. 
 
 do { 
 instrução 
 } while ( condição ); 
Exemplo comando do...while 
public static void main(String[] args) { 
 
int c = 1; //declara e inicializa o contador 
do { 
 // Imprime e incrementa o contador 
 System.out.println("Contador = " +c); 
 c = c + 1; 
 
} while (c <= 10); // testa a condição de parada 
} 
Comando ENQUANTO 
•O comando ENQUANTO indica que o comando seguinte 
será executado, desde que o resultado da expressão 
lógica seja verdadeiro. 
 
 
• Esta estrutura é chamada de repetição com teste no 
início 
•A decisão entre repetir e parar o laço é feita no início 
do comando. 
• Se o teste for falso desde o início, o laço não será 
executado. 
Comando Enquanto em Java 
• Implementado com a instrução while 
 
• instrução que efetua o teste antes da execução do 
corpo do loop. 
•O corpo do loop pode nunca ser executado. 
 
while ( condição ) { 
 instrução 
} 
Exemplo comando While 
public static void main(String[] args) { 
 
int c = 1; // declara e inicializa a variável de controle 
 
while (c <= 10) { // condição de parada do loop 
 
 System.out.println("Contador = " + c); 
 c = c +1; 
 
} 
} 
Comando PARA 
• É muito comum a existência de repetições que fazem uso de 
variáveis contadoras, especialmente para contagens de 1 em 1. 
 
• Para facilitar a construção deste tipo de laço, pode-se utilizar um 
outro comando de repetição complementar chamada PARA. Sua 
sintaxe é: 
 para <var> de <valor_inicial> até <valor_final> faça 
 <comando>; 
Comando Para em Java 
• Instrução de repetição for foi criada para 
repetição utilizando variável contadora 
•Especifica os detalhes da repetição controlada 
por uma variável contadora em uma única linha 
 
 for (int c = 1; c <= 10; c++ ) { 
 System.out.println("contador = " + c); 
 } 
 
Exemplo 
 
•Faça um programa que imprima todos os 
valores pares de 1 a 1000. 
Solução em Java usando while 
 public static void main(String[] args) { 
 
 int c = 1; 
 System.out.println("Valores pares entre 1 e 1000:"); 
 while (c<=1000) { 
 if (c % 2 == 0) 
 System.out.println(c); 
 c = c + 1; 
 } 
} 
Exemplo 
 
•Faça um programa que leia diversos números 
informados pelo usuário e após cada leitura exibir 
se o número é par ou ímpar. Se o usuário 
fornecer um valor negativo o programa deverá 
encerrar a execução (sem entretanto testar se 
esse número negativo é par ou ímpar). 
class solucao { 
public static void main(String[] args) { 
 int num = 0; 
 System.out.println( "Para sair, entre com um valor < 0"); 
 System.out.println( "Digite um número:"); 
 Scanner s = new Scanner(System.in); 
 num = s.nextInt(); 
 while (num >=0) { 
 if (num % 2 == 0) 
 System.out.println("O número " + num + " é par"); 
 else 
 System.out.println("O número " + num + " é impar"); 
 System.out.println( "Digite o próximo número:"); 
 num = s.nextInt(); 
 } 
 System.out.println("Tchau…"); 
 } 
} 
Repetições encadeadas 
 
•Da mesma forma que é permitido o 
encadeamento de testes, também é possível 
encadear comandos de repetição. 
 
•Exemplo 
• Imprimir as tabuadas de multiplicação dos 
números 3, 4, 5 e 6. 
Programa em Java 
public static void main(String[] args) { 
 int num = 0, mult =0, cont = 0; 
 num = 3; 
 while (num <= 6) { 
 System.out.println(“Tabuada de : “ + num); 
 cont = 1; 
 while (cont <= 10) { 
 mult = num * cont; 
 System.out.println(num + “X” +cont + “=”+ mult); 
 cont = cont + 1; 
 } 
 num = num + 1; 
 } 
} 
Estruturas Compostas 
Homogêneas 
Estruturas Compostas Homogêneas 
• Até agora utilizamos variáveis definidas a partir de tipos básicos de dados. 
• Cada variável só é capaz de armazenar um dado por vez. 
 
• Existem situações em que é necessário armazenar uma grande quantidade de 
dados na memória ao mesmo tempo. 
• Esta quantidade torna inviável a criação de variáveis para cada um dos dados a 
ser armazenado. 
 
• Para estes casos, podemos criar variáveis a partir de tipos de dados estruturados. 
• Um tipo de dado estruturado é aquele formado pela junção ou combinação de 
tipos básicos, definindo apenas uma variável que o represente. 
Estruturas Compostas Homogêneas 
•Vetor (ou array) é uma estrutura de dados 
composta por uma quantidade determinada de 
elementos de um mesmo tipo. 
 
•Como armazena sempre dados do mesmo tipo, 
diz-se que vetores são estruturas de dados 
homogêneas. 
Definição: 
 Conjunto de dados (Estrutura) 
 Agrupados em uma mesma estrutura (Composta) 
 Todos do mesmo tipo (Homogênea) 
 Várias dimensões 
 Array 
 Unidimensional (Vetor) 
 Bidimensional (Matriz) 
 Multidimensional ( 3, 4, 5, 6 …) 
 
Definição: 
 Alocação estática de memória 
 Em linguagens interpretadas é alocado em tempo de 
execução, ficando estática nesse ponto. 
 Acesso direto através de índices. 
 Índices enumeráveis (inteiros, lógicos, caracteres) 
 Usado em processos repetitivos. 
 
 0 1 2 3 4 
12 33 0 0 0 
Unidimensional (Vetor) 
 Possui uma dimensão 
 
 Usa apenas um índice para encontrar a informação. 
 
 Conhecida como VETOR 
 
 Definição: 
 
<Nome> : VETOR [ INICIO : FIM ] DE <tipo> 
Unidimensional (Vetor) 
 PASCAL: 
 Vet: ARRAY [1..4] OF REAL; 
 Vet: ARRAY [A..D] OF BYTE; 
 Vet: ARRAY [0..3] OF REAL; 
 
 JAVA: 
 int [] vet; 
 vet = new int[100]; 
 
 C / C++: 
 int vet[100]; 
 
Vetores 
 
•Armazenamento em memória 
15 A 
-7 
15 
23 
A 
Variável simples Vetor 
Vetores 
• Para referenciar o conteúdo de uma variável simples, basta 
indicar o nome que foi definido. 
 
• Para vetores, somente o nome não é suficiente. Além do nome, 
preciso indicar a posição no vetor onde está o dado que 
queremos acessar/utilizar. 
 
• Esta posição é denominada índice. 
• Os vetores são também chamados de variáveis indexadas 
unidimensionais. 
Vetores em Java 
•Recebem o nome de Array. 
 
•Para criar um array, 3 passos são necessários: 
 
•Declaração; 
•Construção; 
•Inicialização. 
Vetores em Java 
•Declarando um vetor: 
 
int vetor[ ]; // declaração do array 
 
•Construindo um vetor (a construção é feita com o 
operador new): 
 
vetor = new int[10]; // construção do array 
 
• PS: Nãose especifica o tamanho do array na 
declaração. Isso é feito apenas na construção. 
Vetores em Java 
• A declaração e construção podem ser feitas de uma vez só: 
int vetor[ ] = new int[10]; 
 
•Os índices em um array em Java começam em 0. 
 
• Para inserirmos elementos, precisamos indicar a posição no 
array onde eles serão inseridos: 
 
 vetor[0] = 52; 
 vetor[1] = -28; 
Vetores em Java 
•Os arrays são inicializados automaticamente 
em Java. 
 
•Cada tipo de dado que podemos colocar em 
um array possui um valor padrão, que será 
usado para inicializar o array 
automaticamente. 
Inicialização automática de um Array 
Tipo valor tipo valor 
 
byte 0 short 0 
int 0 long 0L 
float 0.0f double 0.0d 
char '\u0000' boolean false 
 
Referências recebem null 
Vetores em Java 
• Não é possível acessar além dos limites em 
um array. 
 
• Para sabermos o tamanho de um array, 
podemos usar a variável length: 
Ex: 
int V[ ] = new int[5]; 
 
for( int i = 0; i < V.length; i++ ) { 
 System.out.println(“V[" +i + "] = " +V[i] ); 
} 
V[0] = 0 
Valor de i Saída na tela: 
V[1] = 0 
V[2] = 0 
V[3] = 0 
V[4] = 0 
i = 0 
i = 1 
i = 2 
i = 3 
i = 4 
Vetores em Java 
• A declaração, construção e inicialização do array também pode 
ser feita de uma vez só: 
 
 String frutas[ ] = {"Uva", "Melancia","Pêssego"}; 
 
• O código acima é equivalente a: 
 
 String frutas[ ] = new String[3]; 
 frutas[0] = "Uva"; 
 frutas[1] = "Melancia"; 
 frutas[2] = "Pêssego"; 
Vetores 
•Exemplo: 
•Uma prova de química foi feita por um 
grupo de 20 alunos. Faça um 
programa para ler as notas obtidas 
pelos alunos, e depois exibir um 
relatório de notas superiores a 7,5. 
Solução em Java 
public static void main(String[] args) { 
 double notas[] = new double[20]; 
 Scanner s = new Scanner(System.in); 
 for (int i=0; i < notas.length;i++) { 
 System.out.println("Digite a nota"); 
 notas[i] = s.nextDouble(); 
 } 
 System.out.println("Notas > 7.5"); 
 for (int i=0; i < notas.length;i++) { 
 if ( notas[i] > 7.5) 
 System.out.println(notas[i]); 
 } 
 } 
DÚVIDAS ?

Continue navegando