Exercício 3
Problema
Entrada: três números digitados pelo usuário
Saída: informar:
a) a média aritmética dos três números informados
b) o maior valor dos três informados
Solução em:
a) descrição textual
b) algoritmos estruturado
c) código fonte em C++
obs: para ser feito em duplas e entregue de forma impressa na próxima aula 31/3/15
quarta-feira, 25 de março de 2015
2015/1-ALP-Ter: Laboratório 01
Exercício 1
#include <cstdlib>
#include <iostream>
using namespace std;
// data: 24/3/15
// nome: waldir ribeiro
int main(int argc, char** argv) {
// problema
// entrada: nome do usuario
// saida: exibir uma frase de boas vindas com o nome
// solucao
// 1) solicitar o nome do usuario
// 2) ler a entrada do usuario
// 3) exibir a frase de boas vindas na tela com o nome
// algoritmo estruturado
// var N: caractere
char n;
// inicio
// Escrever (Digite o seu nome:)
cout << "Digite o seu nome: ";
// Ler N
cin >> n;
// Escrever (Bem vindo ao C++, N)
cout << "\nBem vindo ao C++, " << n << endl;
// fim
system("pause");
return 0;
}
Exercício 2
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
// nome: waldir ribeiro
// data: 24/3/15
int main(int argc, char** argv) {
// problema
// entrada: raio de um circulo (real)
// saida: exibir a circunferencia e a area do circulo
// solucao - descricao textual
// 1) solicitar o raio do usuario
// 2) ler o raio
// 3) calcular a circunferencia (2 PI r)
// 4) calcular a area (PI r 2)
// 5) exibir a circunferencia
// 6) exibir a area
// algoritmo estruturado
// var R, A, C: real
float r, a, c;
// const PI: 3,14158
const float PI = 3.14158;
// inicio
// Escrever (Digite o raio do circulo:)
cout << "Digite o raio do circulo: ";
// Ler R
cin >> r;
// C <- 2 * PI * R
c = 2 * PI * r;
// A <- PI * R * R
a = PI * pow(r, 2);
// Escrever (Circunferencia: C)
cout << endl << "Circunferencia: " << c << endl;
// Escrever (Area: A)
cout << endl << "Area: " << a << endl;
// fim
system("PAUSE");
return 0;
}
#include <cstdlib>
#include <iostream>
using namespace std;
// data: 24/3/15
// nome: waldir ribeiro
int main(int argc, char** argv) {
// problema
// entrada: nome do usuario
// saida: exibir uma frase de boas vindas com o nome
// solucao
// 1) solicitar o nome do usuario
// 2) ler a entrada do usuario
// 3) exibir a frase de boas vindas na tela com o nome
// algoritmo estruturado
// var N: caractere
char n;
// inicio
// Escrever (Digite o seu nome:)
cout << "Digite o seu nome: ";
// Ler N
cin >> n;
// Escrever (Bem vindo ao C++, N)
cout << "\nBem vindo ao C++, " << n << endl;
// fim
system("pause");
return 0;
}
Exercício 2
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
// nome: waldir ribeiro
// data: 24/3/15
int main(int argc, char** argv) {
// problema
// entrada: raio de um circulo (real)
// saida: exibir a circunferencia e a area do circulo
// solucao - descricao textual
// 1) solicitar o raio do usuario
// 2) ler o raio
// 3) calcular a circunferencia (2 PI r)
// 4) calcular a area (PI r 2)
// 5) exibir a circunferencia
// 6) exibir a area
// algoritmo estruturado
// var R, A, C: real
float r, a, c;
// const PI: 3,14158
const float PI = 3.14158;
// inicio
// Escrever (Digite o raio do circulo:)
cout << "Digite o raio do circulo: ";
// Ler R
cin >> r;
// C <- 2 * PI * R
c = 2 * PI * r;
// A <- PI * R * R
a = PI * pow(r, 2);
// Escrever (Circunferencia: C)
cout << endl << "Circunferencia: " << c << endl;
// Escrever (Area: A)
cout << endl << "Area: " << a << endl;
// fim
system("PAUSE");
return 0;
}
terça-feira, 24 de março de 2015
OdA: Exercícios com Arquivos
Disciplina: Organização em Arquivos
Exercícios com Arquivos
1) Problema 1 (Fácil)
Entrada: um caractere e um arquivo (nome)
Saída: informar a quantidade de vezes que o caractere ocorre no arquivo
2) Problema 2 (Fácil)
Entrada: uma palavra e um arquivo (nome)
Saída: informar a quantidade de vezes que a palavra ocorre no arquivo
3) Problema 3 (Fácil)
Entrada: dois arquivos (origem e destino)
Saída: criar uma cópia do arquivo de origem no destino
4) Problema 4 (Difícil)
Entrada: um arquivo texto contendo números separados por quebra de linha
Saída: exibir dados dos números contidos no arquivo:
- Soma total
- Média
- Maior valor
- Menor valor
5) Problema 5 (Fácil)
Entrada: um arquivo texto contendo palavras e números separados por quebra de linha
Saída: reescrever o arquivo removendo as palavras e permitindo somente números
6) Problema 6 (Médio)
Entrada: Um arquivo texto contendo campos separados por vírgula (dados pessoais)
Saída: Criar um tokenizador do arquivo criando objetos a partir dos dados em arquivo
7) Problema 7 (Fácil)
Entrada: Um arquivo contendo palavras separadas por quebra de linha
Saída: duas partes
a) Imprimir as palavras na tela em ordem alfabética
b) Escrever as palavras em ordem alfabética em arquivo
8) Problema 8 (Fácil)
Entrada: três arquivos texto
Saída: informar a quantidade de linhas que cada arquivo possui. O programa deve sempre conseguir
processar todos os arquivos, mesmo em casos de erros de leitura
9)
Exercícios com Arquivos
1) Problema 1 (Fácil)
Entrada: um caractere e um arquivo (nome)
Saída: informar a quantidade de vezes que o caractere ocorre no arquivo
2) Problema 2 (Fácil)
Entrada: uma palavra e um arquivo (nome)
Saída: informar a quantidade de vezes que a palavra ocorre no arquivo
3) Problema 3 (Fácil)
Entrada: dois arquivos (origem e destino)
Saída: criar uma cópia do arquivo de origem no destino
4) Problema 4 (Difícil)
Entrada: um arquivo texto contendo números separados por quebra de linha
Saída: exibir dados dos números contidos no arquivo:
- Soma total
- Média
- Maior valor
- Menor valor
5) Problema 5 (Fácil)
Entrada: um arquivo texto contendo palavras e números separados por quebra de linha
Saída: reescrever o arquivo removendo as palavras e permitindo somente números
6) Problema 6 (Médio)
Entrada: Um arquivo texto contendo campos separados por vírgula (dados pessoais)
Saída: Criar um tokenizador do arquivo criando objetos a partir dos dados em arquivo
7) Problema 7 (Fácil)
Entrada: Um arquivo contendo palavras separadas por quebra de linha
Saída: duas partes
a) Imprimir as palavras na tela em ordem alfabética
b) Escrever as palavras em ordem alfabética em arquivo
8) Problema 8 (Fácil)
Entrada: três arquivos texto
Saída: informar a quantidade de linhas que cada arquivo possui. O programa deve sempre conseguir
processar todos os arquivos, mesmo em casos de erros de leitura
9)
2015/1-OdA: Laboratório 2 - Exercícios
package br.edu.pitagoras.oda.arquivo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class ProgramaExercicio1 {
// 1) Problema 1 (Fácil)
// Entrada: um caractere e um arquivo texto (nome)
// Saída: informar a quantidade de vezes que
// o caractere ocorre no arquivo
public static void main(String[] args) {
// solucao
// 1) definir a entrada de dados: caractere e nome do arquivo
char c = 'a';
String nomeArquivo = "teste.txt";
try {
contarCharEmArquivo(c, nomeArquivo);
} catch (FileNotFoundException e) {
System.out.println("ERRO: arquivo " + nomeArquivo +
" não existe!");
e.printStackTrace();
} catch (IOException e) {
System.out.println("ERRO: erro de leitura do arquivo!");
e.printStackTrace();
}
}
// casos de teste
// 1) arquivo informado nao existe -> mensagem de erro
// 2) arquivo vazio -> sem erros, contador zero
// 3) arquivo com dados -> sem erros, contador com valor correto
// 4) arquivo sem permissao para leitura - mensagem de erro
static void contarCharEmArquivo(char c, String nomeArquivo)
throws FileNotFoundException, IOException {
// 2) abrir o arquivo
InputStream is = new FileInputStream(nomeArquivo);
// 3) Se o arquivo nao existir
// 3.1) exibir uma mensagem de erro
// 4) Senao
// 4.1) Abrir o arquivo para leitura de caracteres
InputStreamReader isr = new InputStreamReader(is);
// 4.2) Ler o primeiro caractere
int d = isr.read();
int count = 0;
// 4.3) Enquanto nao for fim de arquivo
while (d != -1){
// 4.3.1) Se o char lido for igual a char informado
if (d == c){
// 4.3.1.1) incrementar o contador de caracteres
count++;
}
}
// 4.4) Exibir a quantidade de vezes que o char ocorre
System.out.println("Buscando pelo caractere " + c +
" no arquivo " + nomeArquivo + " ...");
System.out.println("Quantidade de vezes: " + count);
// 4.5) fechar o arquivo
isr.close();
}
}
package br.edu.pitagoras.oda.arquivo;
public class ProgramaExercicio2 {
// 2) Problema 2 (Fácil)
// Entrada: uma palavra e um arquivo (nome)
// Saída: informar a quantidade de vezes que a
// palavra ocorre no arquivo
// Apresentar:
// - solução em algoritmo
// - código fonte em Java
// - casos de testes a serem testados
// http://www.yuml.me/8c3df1a2
// http://www.yuml.me/edit/8c3df1a2
public static void main(String[] args) {
}
public static int countPalavraEmArquivo(
String palavra, String nomeArquivo){
// solucao
// 1)
return 0;
}
}
package br.edu.pitagoras.oda.arquivo;
import static org.junit.Assert.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.junit.Test;
public class TesteProgramaExercicio1 {
@Test
public void testArquivoNaoExiste() {
// caso de teste 1: arquivo nao existe
char c = 'a';
String nomeArquivo = "blah.txt";
ProgramaExercicio1 ex1 = new ProgramaExercicio1();
try {
ex1.contarCharEmArquivo(c, nomeArquivo);
fail("Erro nao ocorreu");
} catch (FileNotFoundException e) {
System.out.println("Erro esperado");
} catch (IOException e) {
fail(e.getMessage());
e.printStackTrace();
}
}
@Test
public void testArquivoVazio(){
}
@Test
public void testArquivoComDados(){
}
}
2015/1-OdA: Arquivos: Exercício em sala 2015.03.16
Problema
Entrada: diretorio definido pelo usuario
Saida: informar o numero de arquivos dentro do diretorio
Solução
1) Solicitar o diretorio do usuario
2) Se o diretorio nao existir
2.1) Mostrar mensagem de erro
3) Senao
3.1) Acessar os metadados do diretorio (classe File)
3.2) Se o arquivo nao for um diretorio
3.2.1) Mostrar um erro ao usuario
3.3) Senao
3.3.1) Obter a listagem dos arquivos no diretorio
3.3.2) Exibir a quantidade de arquivos existentes
Código Fonte em Java
import java.io.*;
import java.util.*;
public class NumeroArquivos{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println("Digite um caminho de diretorio");
String dir = sc.nextLine();
File arq = new File(dir);
if (!arq.exists()){
System.out.println("ERRO: caminho nao existe");
} else {
if (arq.isFile()){
System.out.println("ERRO: caminho nao eh um diretorio");
} else {
int num = arq.listFiles().length;
System.out.println("Número de arquivos: " + num);
}
}
}
}
Problema 2
Entrada: diretorio definido pelo usuario
Saida: informar o arquivo de maior tamanho no diretório
import java.io.File;
import java.util.Scanner;
public class NumeroArquivos {
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println("Digite um caminho de diretorio");
String dir = sc.nextLine();
File arq = new File(dir);
if (!arq.exists()){
System.out.println("ERRO: caminho nao existe");
} else {
if (arq.isFile()){
System.out.println("ERRO: caminho nao eh um diretorio");
} else {
File[] listFiles = arq.listFiles();
int num = listFiles.length;
System.out.println("Número de arquivos: " + num);
long tam = 0;
String maiorArquivo = null;
for (File f: listFiles){
System.out.println(f);
if (f.isFile() && f.length() > tam){
tam = f.length();
maiorArquivo = f.getAbsolutePath();
}
}
System.out.println("Maior arquivo: " + maiorArquivo);
System.out.println(tam + " bytes");
}
}
sc.close();
}
}
Entrada: diretorio definido pelo usuario
Saida: informar o numero de arquivos dentro do diretorio
Solução
1) Solicitar o diretorio do usuario
2) Se o diretorio nao existir
2.1) Mostrar mensagem de erro
3) Senao
3.1) Acessar os metadados do diretorio (classe File)
3.2) Se o arquivo nao for um diretorio
3.2.1) Mostrar um erro ao usuario
3.3) Senao
3.3.1) Obter a listagem dos arquivos no diretorio
3.3.2) Exibir a quantidade de arquivos existentes
Código Fonte em Java
import java.io.*;
import java.util.*;
public class NumeroArquivos{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println("Digite um caminho de diretorio");
String dir = sc.nextLine();
File arq = new File(dir);
if (!arq.exists()){
System.out.println("ERRO: caminho nao existe");
} else {
if (arq.isFile()){
System.out.println("ERRO: caminho nao eh um diretorio");
} else {
int num = arq.listFiles().length;
System.out.println("Número de arquivos: " + num);
}
}
}
}
Problema 2
Entrada: diretorio definido pelo usuario
Saida: informar o arquivo de maior tamanho no diretório
Código Fonte em Java
import java.io.File;
import java.util.Scanner;
public class NumeroArquivos {
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println("Digite um caminho de diretorio");
String dir = sc.nextLine();
File arq = new File(dir);
if (!arq.exists()){
System.out.println("ERRO: caminho nao existe");
} else {
if (arq.isFile()){
System.out.println("ERRO: caminho nao eh um diretorio");
} else {
File[] listFiles = arq.listFiles();
int num = listFiles.length;
System.out.println("Número de arquivos: " + num);
long tam = 0;
String maiorArquivo = null;
for (File f: listFiles){
System.out.println(f);
if (f.isFile() && f.length() > tam){
tam = f.length();
maiorArquivo = f.getAbsolutePath();
}
}
System.out.println("Maior arquivo: " + maiorArquivo);
System.out.println(tam + " bytes");
}
}
sc.close();
}
}
quinta-feira, 19 de março de 2015
2015-1: Algoritmos e Lógica de Programação: Tipos de Dados - Exercícios Práticos
2015/1
Algoritmos e Lógica de Programação
Tipos de Dados, Variáveis e Constantes
Exercícios Práticos
Problema 1
Entrada: um raio de um círculo digitado pelo usuário
Saída: informar a circunferência e a área do círculo
Problema 2
Entrada: um numero inteiro digitado pelo usuário
Saída: informar o sucessor do número informado
Problema 3
Entrada: um número inteiro digitado pelo usuário
Saída: informar o próximo número par a partir do número informado pelo usuário
Problema 4
Entrada: uma letra (a-z) digitada pelo usuário
Saída: informar a próxima letra do alfabeto
Problema 5
Entrada: um numero inteiro digitado pelo usuário (lado de um quadrado
Saída: informar a área e o perímetro do quadrado
Problema 6
Entrada: uma quantidade (inteiro) e o custo por unidade de Dolar
Saída: informar quantos Reais devem ser pagos para comprar a quantia em Dólares
Problema 7
Entrada: um número inteiro informado pelo usuário (quantidade de segundos)
Saída: informar quantos minutos equivalem ao numero de segundos informado
Problema 8
Entrada: três números digitados pelo usuário (X, Y e Z)
Saída: informar o maior deles
Problema 9
Entrada: três números digitados pelo usuário (X, Y e Z)
Saída: informar a média deles
Algoritmos e Lógica de Programação
Tipos de Dados, Variáveis e Constantes
Exercícios Práticos
Problema 1
Entrada: um raio de um círculo digitado pelo usuário
Saída: informar a circunferência e a área do círculo
Problema 2
Entrada: um numero inteiro digitado pelo usuário
Saída: informar o sucessor do número informado
Problema 3
Entrada: um número inteiro digitado pelo usuário
Saída: informar o próximo número par a partir do número informado pelo usuário
Problema 4
Entrada: uma letra (a-z) digitada pelo usuário
Saída: informar a próxima letra do alfabeto
Problema 5
Entrada: um numero inteiro digitado pelo usuário (lado de um quadrado
Saída: informar a área e o perímetro do quadrado
Problema 6
Entrada: uma quantidade (inteiro) e o custo por unidade de Dolar
Saída: informar quantos Reais devem ser pagos para comprar a quantia em Dólares
Problema 7
Entrada: um número inteiro informado pelo usuário (quantidade de segundos)
Saída: informar quantos minutos equivalem ao numero de segundos informado
Problema 8
Entrada: três números digitados pelo usuário (X, Y e Z)
Saída: informar o maior deles
Problema 9
Entrada: três números digitados pelo usuário (X, Y e Z)
Saída: informar a média deles
2015-1: Algoritmos e Lógica de Programação (Qua): Laboratório 1
Problema 1:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// Problema
// Entrada: um número inteiro digitado pelo usuario (raio)
// Saída: exibir a circunferência e a área do círculo
// descricao textual
// 1) Solicitar do usuario o numero inteiro (raio)
// 2) Calcular a circunferencia do circulo (2PiR)
// 3) Calcular a área do circulo (PiRxR)
// 4) Exibir a circunferencia do circulo
// 5) Exibir a area do circulo
// Algoritmo estruturado
// Var R: inteiro
int r;
// C, A: real
float c, a;
const float PI = 3.14158;
// Inicio
// Escrever "Digite um numero inteiro: (raio)"
cout << "Digite um numero inteiro: (raio)" << endl;
// Ler R
cin >> r;
// C <- 2 * 3,14 * R
c = 2 * PI * r;
// A <- 3,14 * R * R
a = PI * r * r; // potenciacao
// Escrever "Circunferencia: " C
cout << "Circunferencia: " << c << endl;
// Escrever "Area: " A
cout << "Area: " << a << endl;
// Fim
system("PAUSE");
return EXIT_SUCCESS;
}
Problema 2:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// Problema
// Entrada: três números inteiros digitados pelo usuario
// Saída: informar a média dos três numeros
// Descricao textual
//
// Algoritmo estruturado
// testes:
// 1, 2, 3
// 0, 0, 1
// 7, 3, 1
// 1, 1, 1
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// Problema
// Entrada: um número inteiro digitado pelo usuario (raio)
// Saída: exibir a circunferência e a área do círculo
// descricao textual
// 1) Solicitar do usuario o numero inteiro (raio)
// 2) Calcular a circunferencia do circulo (2PiR)
// 3) Calcular a área do circulo (PiRxR)
// 4) Exibir a circunferencia do circulo
// 5) Exibir a area do circulo
// Algoritmo estruturado
// Var R: inteiro
int r;
// C, A: real
float c, a;
const float PI = 3.14158;
// Inicio
// Escrever "Digite um numero inteiro: (raio)"
cout << "Digite um numero inteiro: (raio)" << endl;
// Ler R
cin >> r;
// C <- 2 * 3,14 * R
c = 2 * PI * r;
// A <- 3,14 * R * R
a = PI * r * r; // potenciacao
// Escrever "Circunferencia: " C
cout << "Circunferencia: " << c << endl;
// Escrever "Area: " A
cout << "Area: " << a << endl;
// Fim
system("PAUSE");
return EXIT_SUCCESS;
}
Problema 2:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// Problema
// Entrada: três números inteiros digitados pelo usuario
// Saída: informar a média dos três numeros
// Descricao textual
//
// Algoritmo estruturado
// testes:
// 1, 2, 3
// 0, 0, 1
// 7, 3, 1
// 1, 1, 1
system("PAUSE");
return EXIT_SUCCESS;
}
quinta-feira, 5 de março de 2015
Assinar:
Comentários (Atom)