Buscar

Aula 04

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Orientada a Eventos
Alexandre Marcos C. Gitirana
amcgitirana@yahoo.com.br
2013.1
Geral
Da aula anterior, vimos: 
Revisão de Java
Tipos Primitivos
Conversão(casting)
incrementos
Classe String
Exercícios
Exercícios da Aula Anterior
1) Construa um programa que teste 2 strings, informando: i) o conteúdo delas; ii) o
comprimento de cada uma; iii) se as 2 possuem o mesmo comprimento; iv) se são
iguais ou diferentes no conteúdo.
2) Construa um programa que dada uma palavra ou frase qualquer, imprima na saída
padrão esse conteúdo escrito de trás para frente, com todas as letras em maiúsculas.
3) Construa um programa que imprima uma string em formato de escada. Ex.:
R
Ro
Rom
Romm
Romme
Rommel
4) Modifique o programa anterior de forma que a escada seja invertida. Ex.:
Rommel
Romme
Romm
Rom
Ro
R
5) Construa um programa que dado uma string com uma frase, conte: i) quantos
espaços em branco existem na frase; ii) quantas vogais (independentes) há na frase.
6) Construa um programa que teste se uma palavra ou frase é palíndromo ou não. Um
palíndromo é uma sequência de caracteres cuja leitura é idêntica se feita da direita
para esquerda ou vice−versa. Ex.: OSSO e OVO são palíndromos. Em textos mais
complexos os espaços e pontuação são ignorados. A frase “SUBI NO ONIBUS” é
exemplo de uma frase palíndromo onde os espaços foram ignorados.
7) Construa um programa para validar a digitação de um CPF, apenas verificando: i)
digitação no formato NNN.NNN.NNN-NN (ou seja, uso do “.” e do “-” somente
naqueles lugares específicos); ii) se N não for número; iii) tamanho do CPF. Não é
necessário validar o dígito verificador.
8) Construa um programa que escreva em maiúscula apenas a primeira letra de uma
dada palavra.
9) Construa um programa que substitua apenas a primeira letra de uma dada frase.
10) Construa um programa que substitua todas as letras de uma dada frase por
maiúsculas e minúsculas, alternadamente. Ex: “EsTe É uM eXeMpLo De CoMo
DeVeRá FiCaR a FrAsE dIgItAdA. NoTe QuE oS eSpAçOs Em BrAnCo DeVeM
sEr IgNoRaDoS.”
Exercícios da Aula Anterior
Hoje
Revisão de Java
Arrays e Vetores
Manipulação de Arquivos
Exercícios
• Utilizados para armazenar um conjunto de dados/objetos
• Bastante utilizado em desenvolvimento de software
• Algumas linguagens tratam arrays como sendo vetores, porém, em Java, são diferentes
Arrays: Grupo de posições contínuas na memória que possuem o mesmo nome e o mesmo tipo
Refere-se a um elemento em particular especificando o nome do array e o número da posição (índice) do elemento:
• Para manipulação de arrays, utiliza-se a Classe Arrays
Arrays e Vetores
• Assim como todo objeto em Java, arrays devem ser declarados:
Construídos:
Inicializados:
Arrays e Vetores
Outra maneira de inicializar os arrays:
int[] meuArray = {-1, 0, 1};
• Ou
Int meuArray[] = {-1, 0, 1};
Arrays não podem mudar de tamanho
• Se precisar de mais espaço, é necessário
criar um novo array
public static void main(String[] args) {
	int[] meuArray; // Declaração
	meuArray = new int[6]; // Construção
	
	// Inicialização
	meuArray[0] = 2010;
	meuArray[1] = 2011;
	meuArray[2] = 2012;
	
	for (int i = 3; i < meuArray.length; i++) {
		meuArray[i] = i + 2010;
	}
	// Visualização
	for (int i = 0; i < meuArray.length; i++){
		System.out.println("Posição[" + i + "] = " + meuArray[i]);
	}
} 
Vamos brincar !
8
Manipulação de arrays
Alguns métodos utilizados para manipulação de arrays
– Lembre-se: Necessário utilizar a Classe java.utils.Arrays
sort
– Faz uma ordenação nos elementos de um determinado array
– Ex.: Arrays.sort(meuArray);
binarySearch
– Permite uma pesquisa nos elementos de um determinado array
– Só é possível realizar essa busca em arrays ordenados
– Retorna um atributo inteiro com a posição deste elemento
– Ex.: Arrays.binarySearch(meuArray, 1);
equals
– Permite a comparação entre dois arrays, retornando um booleano verdadeiro (true), caso os array sejam iguais
– Ex.: Arrays.equals(meuArray, espelho);
Manipulação de arrays
toString
– Mostra os elementos de um determinado
array
– Ex.: Arrays.toString(outroArray);
fill
– Realiza o preenchimento de todos os elementos de um determinado array
– Ex.: Arrays.fill(outroArray, 10);
• Arrays bidimensionais podem ser equiparados às matrizes
• Em Java, entenda como um array de arrays
	String [][] dado = new String[3][3];
	for (int i = 0; i < dado.length; i++){
		for(int j = 0; j < dado[i].length; j++){
			dado[i][j] = "i: " + i + " j: " + j;
		}
// mesmo FOR para imprimir
Arrays Bidimensionais
1) Faça um programa que alimente um array de forma randômica (Math.random()).
Depois disso, ordene-o.
2) Sem utilizar o método sort(), faça um programa para ordenar um vetor?
3) Construa um programa que solicite ao
usuário o tamanho de 2 vetores. Estes
deverão ser alimentados de forma
randômica. Ao final, o programa deverá
exibir a soma desses dois vetores. Se os
vetores não tiverem o mesmo tamanho, os
elementos nulos deverão ser contados
como ZERO para possibilitar a soma entre
eles.
Exercícios
Int[] meuArray = new int[10];
for (int i = 0; i < meuArray.length; i++){
meuArray[i] = (int) (Math.random() * 100);
}
System.out.println(Arrays.toString(meuArray));
Arrays.sort(meuArray);
int aux;
for (int i = 0; i < meuArray.length; i++){
for (int j = 0; j < meuArray.length-1; j++){
if (meuArray[j] > meuArray[j+1]) {
aux = meuArray[j];
meuArray[j] = meuArray[j+1];
meuArray[j+1] = aux;
}
}
}
Em Java também é possível ler ou escrever em arquivos
E uma das suas principais facilidades é a leitura e gravação de arquivos no sistema operacional:
Independente de qual esteja utilizando
Java possui classes e objetos que lidam com a entrada e saída de dados
input/output, abreviado: io
Java trata a entrada e saída como fluxos de dados
Chamados Streams
Manipulação de Arquivos
Representa uma fonte de entrada ou saída destino de diferentes tipos
Arquivos em disco, dispositivos, outros programas, estruturas em memória, etc
Suportam diferentes tipos de dados:
Bytes, tipos primitivos de dados, caracteres, objetos
Seguem um modelo simples de interação com programas
Um stream é uma sequência de dados:
Para leitura: input stream
Para gravação: output stream
I/O Stream
Um programa utiliza um Input Stream para ler dados de uma fonte
I/O Input/Output Stream
Utiliza-se um Output Stream para gravar dados em um destino
Manipulação de Arquivos
Existem dois mecanismos básicos para manipular streams:
Bufferizados: Mecanismos bufferizados empregam uma zona de memória própria ao mecanismo de entrada e saída para armazenar temporariamente os dados manipulados
Não bufferizados: Mecanismos não bufferizados acessam diretamente os arquivos ou dispositivos indicados como de entrada ou saída de dados
Tipos de Streams
Em Java são definidos dois tipos de streams
Streams de caracteres: são ditos “modo texto”
O conteúdo é compreensível na linguagem humana
Arquivos podem ser manipulados diretamente por humanos
Streams de bytes: consiste na representação da informação em termos de bytes
A vantagem é que a manipulação em programas é mais eficiente, uma vez que não é necessário traduzir “texto” em informação manipulável pelo programa
Manipulação de Arquivos
Para manipular arquivos, pode-se utilizar o pacote java.io
Manipula tanto streams bufferizados quanto não bufferizados: em Modo Texto ou/e Modo Byte
A manipulação de arquivos em Java pode ser realizada com as classes FileInputStream e FileOutputStream
Vamos Usar?
Dentro do main(), escreva e faça as correções e considerações:
	File pasta = new File("c:/minhaPasta");
	Boolean criou = pasta.mkdir();
	System.out.println("Pasta criada? " + criou);
	File arquivo = new File(pasta, "meuArquivo.txt");
	criou = arquivo.createNewFile();
Manipulação de Arquivos
Para ler também existem várias classes: vamos utilizar a BufferedReader
Abaixo do código anterior, digite:
// Passa o arquivo a ser lido
FileReader fr = new FileReader(arquivo);
// Para poder ler o arquivo
BufferedReader br = new BufferedReader(fr);
// Atributo para recebero conteúdo do arq
String linha = "";
while ((linha = br.readLine()) != null) {
System.out.println(linha);
}
br.close(); fr.close();
Manipulação de Arquivos
Existem várias classes para escrita em arquivos: vamos utilizar a PrintWriter. Abaixo do Código Anterior, escrevam:
Ainda abaixo do código anterior, digite:
// Passa o arquivo a ser lido
FileReader fr = new FileReader(arquivo);
// Para poder ler o arquivo
BufferedReader br = new BufferedReader(fr);
// Atributo para receber o conteúdo do arq
String linha = "";
while ((linha = br.readLine()) != null) {
System.out.println(linha);
}
br.close(); fr.close();
Para ler também existem várias classes: vamos utilizar a BufferedReader
1) Crie um programa que leia um arquivo do tipo texto e gere um arquivo de saída, limitando a
quantidade de caracteres em 80 por linha.
2) Crie um programa que leia um arquivo do tipo texto e gere um arquivo de saída paginado.
Cada página terá no máximo 60 linhas. Adicione na última linha de cada página o número da
página atual.
3) Crie um programa para escrever somente os números pares em um arquivo (pares.txt) e
somente os números ímpares em outro arquivo (impares.txt).
4) Crie um programa que leia os arquivos pares.txt e impares.txt e que crie um só arquivo
pareseimpares.txt com todos os números dos outros dois arquivos, de forma a preservar a
ordem numérica.
5) Escreva um programa que receba o nome de um arquivo pela linha de comando e que
imprima todas as linhas desse arquivo.
6) Modifique o programa do exercício anterior (7) para que receba mais dois parâmetros: a linha de início e a de fim para impressão. O programa deve imprimir apenas as linhas entre esses dois valores (incluindo as linhas de início e fim).
7) Crie um programa que inverta a ordem das linhas do arquivo pares.txt. A primeira linha deve
conter o maior número e a última, o menor.
Lista de Exercícios 02
Boa semana para a todos ! 
Até quarta-feira que vem !
Programação Orientada a Eventos

Continue navegando