Trabalho Prático 1
1) Calcular a diferença entre o ano
- Positivo
2) Calcular a diferença entre o mês
- Positivo: OK
- Negativo:
- Ano: subtrair 1 do ano
- Mês: adicionar 12 ao valor calculado
d1: 23/08/2014
d2: 29/09/2010
dx = d1 - d2
dxa = d1a - d2a
= 2014 - 2010 = 4
dxa = 4 - 1 = 3
dxm = d1m - d2m
= 8 - 9 = -1
dxm = 12 - 1 = 11
3) Calcular a diferença entre o dia
- Positivo: OK
- Negativo:
- Mes: subtrair 1 do mes
- dia: somar 30
dxd = d1d - d2d
23 - 29 = -6
dxd = 30 - 6 = 24
Planos de teste
- Plano 1: datas 23/09/2014 e 10/05/2010
- Plano 2: datas com diferenca entre o mês negativa
- Plano 3: datas com diferença entre o dia negativa
- Plano 4: valores invalidos (numeros negativos, zero)
Exercícios em Sala:
Problema 1:
Entrada: um numero inteiro digitado pelo usuário (N)
Saída: exibir na tela a taboada de N
Descrição textual
1) Ler o numero do usuário
2) Para cada numero de zero a 10 (de 1 em 1)
2.1) Calcular a multiplicacao de N pelo numero
2.2) Exibir o resultado do calculo
Algoritmo estruturado
Var N, C, R: inteiro
Inicio
Escrever "Digite um numero inteiro:"
Ler N
Para C De 0 Até 10 Passo 1 Faça
R <- N * C
Escrever N " x " C "=" R
Fim Para
Fim
Código fonte
#include <iostream>
int main(){
int n, c, r;
cout << "Digite um numero inteiro:";
cin >> n;
for (c = 0; c<=10; c++){
r = n * c;
cout << n << " x " << c << "=" << r << endl;
}
return 0;
}
Problema 2
Entrada: número inteiro informado pelo usuário (N)
Saída: Apresentar todos os números divisíveis por 4
entre zero e N
Descricao textual 1
1) Ler o numero inteiro do usuário
2) Para cada numero entre zero e N (de 1 em 1)
2.1) dividir o numero por 4
2.2) calcular o resto da divisao por 4
2.3) se o resto for zero
2.3.1) exibir o numero
Algoritmo estruturado 1
Var N, C, R: inteiro
Inicio
Escrever "Digite um numero inteiro:"
Ler N
Para C De 0 Até N Passo 1 Faça
R <- C % 4 // modulo resto da divisao
Se (R == 0) Então
Escrever C
Fim Se
Fim Para
Fim
Descricao textual 2
1) Ler o numero inteiro do usuário
2) Para cada numero entre zero e N (de 4 em 4)
2.1) exibir o numero
Problema 3
Entrada: letra digitada pelo usuário (a-z)
Saída: exibir a letra na tela enquanto ela for vogal,
sair se for diferente de letra (a-z)
Descrição textual
1) Ler do usuário um caractere (a-z)
2) Enquanto o caractere for uma letra (a-z)
2.1) Se o caractere for uma vogal (a-e-i-o-u)
2.1.1) Exibir o caractere na tela
2.2) Ler do usuário um caractere (a-z)
Algoritmo Estruturado
Var C: caractere
Inicio
Escrever "Digite um caractere: "
Ler C
Enquanto ((C >='A' E C <='Z') OU
(C >='a' E C <='z')) Faça
Se (C == 'A' OU C == 'E' OU C == 'I' OU C == 'O' OU
C == 'U') Então
Escrever C
Fim Se
Escrever "Digite um caractere: "
Ler C
Fim Enquanto
Fim
quinta-feira, 25 de setembro de 2014
quinta-feira, 4 de setembro de 2014
2014-2-AED2: Leitura de arquivo texto em Java
package br.edu.pitagoras.aed2.arquivo;
import java.io.FileInputStream;
import java.util.NoSuchElementException;
import java.util.Scanner;
public class LerArquivoTeste {
/**
* @param args
*/
public static void main(String[] args) {
String nomeArquivo = "arq-texto.txt";
try {
Scanner sc = new Scanner(new FileInputStream(nomeArquivo));
String s = sc.next();
while (s != null) {
s = s.replace(".", "");
s = s.replace(",", "");
System.out.println(s);
s = sc.next();
}
sc.close();
} catch (NoSuchElementException e) {
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.FileInputStream;
import java.util.NoSuchElementException;
import java.util.Scanner;
public class LerArquivoTeste {
/**
* @param args
*/
public static void main(String[] args) {
String nomeArquivo = "arq-texto.txt";
try {
Scanner sc = new Scanner(new FileInputStream(nomeArquivo));
String s = sc.next();
while (s != null) {
s = s.replace(".", "");
s = s.replace(",", "");
System.out.println(s);
s = sc.next();
}
sc.close();
} catch (NoSuchElementException e) {
} catch (Exception e) {
e.printStackTrace();
}
}
}
segunda-feira, 1 de setembro de 2014
2014-2-OdA: Listador de Diretórios em Java
import java.io.File;
public class ListadorArquivosDiretorio {
/**
* @param args
*/
public static void main(String[] args) {
// listar arquivos de um determinado diretorio
// 1) obter/ler o caminho absoluto do diretorio
String nomeArquivo = "c:/temp/java.rar";
File f = new File(nomeArquivo);
// 2) Se o caminho não existir
if (!f.exists()){
// 2.1) informar um erro caminho nao existe
System.out.println("ERRO: caminho não existe");
} // 3) Se o caminho nao for um diretorio (arquivo)
else if (!f.isDirectory()){
// 3.1) informar um erro caminho nao eh diretorio
System.out.println("ERRO: caminho nao eh diretorio");
} else {// 4) Caso contrário
// 4.1) Criar um objeto do tipo arquivo (File)
// 4.2) obter a listagem dos arquivos do arquivo acima
File[] lista = f.listFiles();
// 4.3) Para cada arquivo na lista
System.out.println("Listando arquivos em " + f.getAbsolutePath());
for (File a: lista){
// 4.3.1) exibir o nome do arquivo na lista
System.out.println(a.getName());
}
}//
}
}
public class ListadorArquivosDiretorio {
/**
* @param args
*/
public static void main(String[] args) {
// listar arquivos de um determinado diretorio
// 1) obter/ler o caminho absoluto do diretorio
String nomeArquivo = "c:/temp/java.rar";
File f = new File(nomeArquivo);
// 2) Se o caminho não existir
if (!f.exists()){
// 2.1) informar um erro caminho nao existe
System.out.println("ERRO: caminho não existe");
} // 3) Se o caminho nao for um diretorio (arquivo)
else if (!f.isDirectory()){
// 3.1) informar um erro caminho nao eh diretorio
System.out.println("ERRO: caminho nao eh diretorio");
} else {// 4) Caso contrário
// 4.1) Criar um objeto do tipo arquivo (File)
// 4.2) obter a listagem dos arquivos do arquivo acima
File[] lista = f.listFiles();
// 4.3) Para cada arquivo na lista
System.out.println("Listando arquivos em " + f.getAbsolutePath());
for (File a: lista){
// 4.3.1) exibir o nome do arquivo na lista
System.out.println(a.getName());
}
}//
}
}
quinta-feira, 28 de agosto de 2014
quarta-feira, 27 de agosto de 2014
2014/2-ALP: Laboratório 1 Problema 3
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// Problema:
// Entrada: um número inteiro digitado pelo usuário
// Saída: informar se o número é par ou impar
// descricao textual
// 1) Ler o numero inteiro do usuario
// 2) Dividir o numero por 2
// 3) Calcular o resto da divisao por 2
// 4) Se o resto for zero
// 4.1) o numero é par
// 5) Senão
// 5.1) o numero é impar
// ALGORITMO
int r, q, n; // VAR N, Q, R: inteiro
// INICIO
cout << "Digite um numero inteiro:"<< endl;// Escrever "Digite um numero:"
cin >> n; // Ler N
q = n / 2; // Q <- N / 2
r = n - (q * 2); // R <- N - (Q * 2)
if (r == 0){// Se (R == 0) Então
cout << "Numero "<<n<<" eh par!"<<endl;// Escrever "Numero eh par!"
}else{// Senão
cout << "Numero "<<n<<" eh impar!"<<endl;// Escrever "Numero eh impar!"
}// Fim Se
// FIM
system("PAUSE");
return EXIT_SUCCESS;
}
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// Problema:
// Entrada: um número inteiro digitado pelo usuário
// Saída: informar se o número é par ou impar
// descricao textual
// 1) Ler o numero inteiro do usuario
// 2) Dividir o numero por 2
// 3) Calcular o resto da divisao por 2
// 4) Se o resto for zero
// 4.1) o numero é par
// 5) Senão
// 5.1) o numero é impar
// ALGORITMO
int r, q, n; // VAR N, Q, R: inteiro
// INICIO
cout << "Digite um numero inteiro:"<< endl;// Escrever "Digite um numero:"
cin >> n; // Ler N
q = n / 2; // Q <- N / 2
r = n - (q * 2); // R <- N - (Q * 2)
if (r == 0){// Se (R == 0) Então
cout << "Numero "<<n<<" eh par!"<<endl;// Escrever "Numero eh par!"
}else{// Senão
cout << "Numero "<<n<<" eh impar!"<<endl;// Escrever "Numero eh impar!"
}// Fim Se
// FIM
system("PAUSE");
return EXIT_SUCCESS;
}
segunda-feira, 25 de agosto de 2014
2014/2: OdA: RandomAccessFile + java nio: Exemplo 3
RandomAccessFile aFile = new RandomAccessFile("data/nio-data.txt", "rw");
FileChannel inChannel = aFile.getChannel();
ByteBuffer buf = ByteBuffer.allocate(48);
int bytesRead = inChannel.read(buf);
while (bytesRead != -1) {
System.out.println("Read " + bytesRead);
buf.flip();
while(buf.hasRemaining()){
System.out.print((char) buf.get());
}
buf.clear();
bytesRead = inChannel.read(buf);
}
aFile.close();
2014/2: OdA: RandomAccessFile: Exemplo 2
package br.pit.oda.arquivos.java;
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileEx {
static final String FILEPATH = "C:/Users/nikos7/Desktop/input.txt";
public static void main(String[] args) {
try {
System.out.println(new String(readFromFile(FILEPATH, 150, 23)));
writeToFile(FILEPATH, "JavaCodeGeeks Rocks!", 22);
} catch (IOException e) {
e.printStackTrace();
}
}
private static byte[] readFromFile(String filePath, int position, int size) throws IOException {
RandomAccessFile file = new RandomAccessFile(filePath, "r");
file.seek(position);
byte[] bytes = new byte[size];
file.read(bytes);
file.close();
return bytes;
}
private static void writeToFile(String filePath, String data, int position) throws IOException {
RandomAccessFile file = new RandomAccessFile(filePath, "rw");
file.seek(position);
file.write(data.getBytes());
file.close();
}
}
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileEx {
static final String FILEPATH = "C:/Users/nikos7/Desktop/input.txt";
public static void main(String[] args) {
try {
System.out.println(new String(readFromFile(FILEPATH, 150, 23)));
writeToFile(FILEPATH, "JavaCodeGeeks Rocks!", 22);
} catch (IOException e) {
e.printStackTrace();
}
}
private static byte[] readFromFile(String filePath, int position, int size) throws IOException {
RandomAccessFile file = new RandomAccessFile(filePath, "r");
file.seek(position);
byte[] bytes = new byte[size];
file.read(bytes);
file.close();
return bytes;
}
private static void writeToFile(String filePath, String data, int position) throws IOException {
RandomAccessFile file = new RandomAccessFile(filePath, "rw");
file.seek(position);
file.write(data.getBytes());
file.close();
}
}
Assinar:
Postagens (Atom)
