Buscar

675801_arquivo_2013-2


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 6 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 6 páginas

Prévia do material em texto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
Instituto de Ciências Exatas e Informática
Lista de Exercícios sobre Uso de Arquivos e Revisão de Tipos, Variáveis, Algoritmos e Vetores
 Curso : Sistemas de Informação
 Disciplina : Laboratório de Computação II
 Professora : Eveline Alonso Veloso
Exemplo:
Faça um programa em C# que leia um arquivo texto, de nome “dadosVendedores.txt”, que contém, em cada linha, os seguintes dados: o nome do vendedor; o valor total das vendas realizadas pelo vendedor no período; e o percentual de comissão desse vendedor. Esses dados estão separados, em cada linha, pelo caracter ‘;’. Assuma que existem 5 (cinco) vendedores. Esse programa deve calcular e mostrar na tela o valor total das vendas realizadas por todos os vendedores no período; o maior valor a ser recebido por um vendedor juntamente com o nome do vendedor que o receberá; e o menor valor a ser recebido por um vendedor juntamente com seu nome. Calcule também e grave, em um arquivo texto de nome “relatório.txt”, os nomes dos vendedores e o valor que cada um deles tem a receber. Esse arquivo deve apresentar as informações de cada vendedor em uma linha.
Resposta:
Classe Vendedor:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Exercicio1
{
 class Vendedor
 {
 private String nome;
 private int valorTotalVendas;
 private double percentualComissao;
 private double valorReceber;
 public Vendedor(String nomeVendedor, int valorVendas, double comissao)
 {
 this.nome = nomeVendedor;
 this.valorTotalVendas = valorVendas;
 this.percentualComissao = comissao;
 this.valorReceber = valorTotalVendas * percentualComissao / 100;
 }
 public String getNome()
 {
 return (this.nome);
 }
 public void setNome(String nomeVendedor)
 {
 this.nome = nomeVendedor;
 }
 public int getValorTotalVendas()
 {
 return (this.valorTotalVendas);
 }
 public void setValorTotalVendas(int valorVendas)
 {
 this.valorTotalVendas = valorVendas;
 }
 public double getComissao()
 {
 return (this.percentualComissao);
 }
 public void setComissao(double comissao)
 {
 this.percentualComissao = comissao;
 }
 public double getValorReceber()
 {
 return (this.valorReceber);
 }
 public void setValorReceber(double valor)
 {
 this.valorReceber = valor;
 }
 }
}
Classe Program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Exercicio1
{
 class Program
 {
 // número total de vendedores da loja.
 public const int numVendedores = 5;
 static void Main(string[] args)
 {
 // vetor que armazenará os dados dos vendedores da loja.
 Vendedor[] vendedores = new Vendedor[numVendedores];
 // string auxiliar para onde os dados das linhas lidas do arquivo de entrada serão copiados.
 String s;
 int i;
 double soma;
 Vendedor vendedorMaiorValor, vendedorMenorValor;
 // vetor de Strings onde os dados dos vendedores serão armazenados após terem sido lidos do arquivo de entrada e separados campo por campo.
 String[] dadosVendedores;
 // definição do nome, do arquivo de entrada, que contém os dados de cada vendedor da loja separados por ";". Atenção para o formato.
 String nomeArquivoEntrada = @"dadosVendedores.txt";
 // definição do nome, do arquivo de saída, que conterá o relatório com os nomes dos vendedores e o valor que cada um deles terá a receber. Atenção para o formato.
 String nomeArquivoSaida = @"relatorio.txt";
 // definição da "stream" de leitura de dados.
 StreamReader arquivoLeitura;
 // definição da "stream" para gravação dos dados em arquivo.
 StreamWriter relatorio;
 // verifica se o arquivo de entrada existe.
 if (File.Exists(nomeArquivoEntrada))
 {
 // caso o arquivo de entrada exista, cria a "stream" de leitura que possui como parâmetros o nome do arquivo de entrada e o tipo de codificação.
 arquivoLeitura = new StreamReader(nomeArquivoEntrada, Encoding.ASCII);
 // leitura, linha a linha, do arquivo de entrada.
 s = arquivoLeitura.ReadLine();
 i = 0;
 // a leitura do arquivo de entrada é feita, linha por linha, para a String s.
 // quando o arquivo termina, a string lida é nula.
 while (s != null)
 {
 // os dados dos vendedores, que foram lidos do arquivo de entrada e armazenados na String s, são "quebrados", campo a campo, utilizando-se o separador de campos ';'. 
 dadosVendedores = s.Split(';');
 // armazena os dados lidos dos vendedores no vetor de vendedores.
 vendedores[i] = new Vendedor(dadosVendedores[0], int.Parse(dadosVendedores[1]), double.Parse(dadosVendedores[2]));
 // leitura, linha a linha, do arquivo de entrada.
 s = arquivoLeitura.ReadLine();
 i++;
 }
 // fecha e libera o arquivo de entrada.
 arquivoLeitura.Close();
 
 // cria a "stream" de saída que possui como parâmetros o nome do arquivo de saída; a indicação de que as novas informações não serão concatenadas no final do arquivo, caso ele já exista; e o tipo de codificação.
 relatorio = new StreamWriter(nomeArquivoSaida, false, Encoding.ASCII);
 soma = 0;
 vendedorMaiorValor = vendedores[0];
 vendedorMenorValor = vendedores[0];
 // escreve sequencialmente no arquivo de saída os dados (nome e valor a receber) dos 5 vendedores. O método é análogo ao da escrita em console.
 // os vendedores que têm o maior e o menor valores a receber também são identificados, assim como a soma dos valores vendidos por todos os vendedores. 
 for (i = 0; i < numVendedores; i++)
 {
 relatorio.WriteLine("O vendedor {0} tem a receber R$ {1}.", vendedores[i].getNome(), vendedores[i].getValorReceber());
 if (vendedores[i].getValorReceber() > vendedorMaiorValor.getValorReceber())
 vendedorMaiorValor = vendedores[i];
 if (vendedores[i].getValorReceber() < vendedorMenorValor.getValorReceber())
 vendedorMenorValor = vendedores[i];
 soma += vendedores[i].getValorTotalVendas();
 }
 // fecha e libera o arquivo de saída.
 relatorio.Close();
 Console.WriteLine("O vendedor que possui o maior valor a receber é: {0}. Ele receberá R$ {1}", vendedorMaiorValor.getNome(), vendedorMaiorValor.getValorReceber());
 Console.WriteLine("O vendedor que possui o menor valor a receber é: {0}. Ele receberá R$ {1}", vendedorMenorValor.getNome(), vendedorMenorValor.getValorReceber());
 Console.WriteLine("A soma dos valores vendidos por todos os vendedores é R$ {0}", soma);
 }
 else
 {
 Console.WriteLine("O arquivo {0} não existe", nomeArquivoEntrada);
 }
 Console.ReadKey();
 }
 }
}
Exercícios:
Uma empresa de vendas oferece a seus clientes descontos em função do valor da compra efetuada pelo mesmo. Esse desconto é de 20%, se o valorda compra for maior ou igual a R$1.800,00; e de 15% para compras de valores menores. Faça um programa em C# que leia um arquivo texto, de nome “vendasClientes.txt”, que contém, em cada linha, os seguintes dados, separados pelo caracter “-”: nome do cliente; valor da compra efetuada pelo cliente. Esse programa deve calcular e imprimir, em um outro arquivo texto, de nome “descontosClientes.txt”, o nome do cliente e o desconto obtido por ele.
Faça um programa em C# que leia, de um arquivo texto, de nome “sequencia1.txt”, uma sequência de vinte números inteiros e armazene-os em um vetor de inteiros. Esse programa deve, em seguida, ler, de um outro arquivo texto de entrada, de nome “sequencia2.txt”, outra sequência de vinte números inteiros. Considere que esses dois arquivos de entrada apresentam um inteiro por linha. Por fim, esse programa deve contar e imprimir, na tela, quantos números da segunda sequência são iguais aos seus correspondentes na primeira sequência.
Considere que em uma eleição para prefeito concorrem três candidatos. Cada candidato é identificado por um número inteiro: 1, 2 e 3. Em uma pesquisa eleitoral foi perguntado, a cada entrevistado, em quem ele votaria na próxima eleição para prefeito. Cada entrevistado deu seu voto conforme abaixo:
1, 2 ou 3: voto para o respectivo candidato;
4: voto nulo;
5: indeciso.
Faça um programa em C# que leia um arquivo texto, de nome “votos.txt”, que contém, em cada linha, o número correspondente ao voto do entrevistado; calcule e escreva, na tela, o percentual de votos de cada candidato e o percentual de eleitores indecisos.
Utilize um vetor de inteiros para acumular a quantidade de votos obtidos por cada um dos candidatos, a quantidade de votos nulos e a quantidade de eleitores indecisos, ao invés de criar cinco variáveis.
Exercícios Extras:
Faça um programa em C# que leia um arquivo texto, de nome “numeros.txt”, que contém, em cada linha, um número inteiro; conte e imprima, na tela, a quantidade de números pares lidos desse arquivo de entrada e a soma desses números pares.
Uma empresa possui funcionários que podem trabalhar em três turnos diferentes: matutino (M), vespertino (V) ou noturno (N). Esses funcionários podem ser operários (O) ou gerentes (G). Implemente um programa em C# que leia um arquivo texto de entrada, de nome “funcionários.txt”, que contém, em cada linha, separados pelo caracter “-”, os seguintes dados: o nome, o número de horas trabalhadas no mês, o turno de trabalho e a categoria de um funcionário. Esse programa deve calcular e gravar, em um outro arquivo texto, de nome “salarios.txt”, o nome de cada funcionário e o valor que esse funcionário tem a receber no mês, de acordo com a tabela a seguir:
	Categoria
	Turno
	Valor da Hora Trabalhada
	G
	N
	18% do salário mínimo
	G
	M ou V
	15% do salário mínimo
	O
	N
	13% do salário mínimo
	O
	M ou V
	10% do salário mínimo
Faça um programa em C# que leia, de um arquivo texto de entrada, de nome “V1.txt”, oito inteiros e armazene-os em um vetor, V1. Considere que esse arquivo de entrada apresenta um inteiro por linha. Em seguida, esse programa deve preencher um outro vetor, V2, também de tamanho oito, com os elementos do vetor V1 em ordem inversa. Finalmente, esse programa deve imprimir, na tela, os elementos dos vetores V1 e V2.
Faça um programa em C# que leia um arquivo texto, de nome “dadosVetores.txt”, que contém os elementos de dois vetores de tamanho 10 (dez). Esse arquivo apresenta, em cada linha, um elemento de cada vetor, separados pelo caracter ‘-’. Assim, a primeira linha do arquivo “dadosVetores.txt” apresenta o primeiro elemento do primeiro vetor e o primeiro elemento do segundo vetor, separados por ‘-’; a segunda linha desse arquivo apresenta o segundo elemento do primeiro vetor e o segundo elemento do segundo vetor, separados por ‘-’; e assim por diante. Esse programa deve gerar um novo arquivo texto, de nome “vetorResultado.txt”, com o vetor resultante da soma dos elementos dos dois vetores de entrada, índice a índice.
Faça um outro programa em C# que leia o mesmo arquivo texto de entrada do exercício anterior (exercício 8). Em seguida, esse programa deve criar um vetor resultante da intercalação desses dois vetores de entrada e mostrar, na tela, o conteúdo de cada um dos três vetores.

Continue navegando