Buscar

647582_arquivo

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

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

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ê 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

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

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ê 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 
 
 Curso : Sistemas de Informação 
 Disciplina : Laboratório de Computação II 
 Professora : Eveline Alonso Veloso 
 
Exemplo: 
 
1) Faça um programa em C# que leia um arquivo texto, de nome 
“c:/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 “c:/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. 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
 
namespace Exercicio1 
{ 
 class Vendedor 
 { 
 public String nome; 
 public int valorTotalVendas; 
 private double percentualComissao; 
 private double valorReceber; 
 
 public Vendedor(String nomeVendedor, int valorVendas, 
double comissao){ 
 nome = nomeVendedor; 
 valorTotalVendas = valorVendas; 
 percentualComissao = comissao; 
 valorReceber = valorTotalVendas * 
percentualComissao / 100; 
 } 
 
 public double getComissao(){ 
 return (percentualComissao); 
 } 
 
 public double getValorReceber(){ 
 return (valorReceber); 
 } 
 
 public void setComissao(double comissao){ 
 percentualComissao = comissao; 
 } 
 
 public void setValorReceber(double valor){ 
 valorReceber = valor; 
 } 
 } 
} 
 
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 serem lidos do arquivo de entrada e 
separados campo por campo. 
 String[] dadosVendedores; 
 
 // definição do nome, com o caminho completo, do 
arquivo de entrada, que contém os dados de cada vendedor da 
loja separados por ";". 
 String nomeArquivoEntrada = 
"c:/dadosVendedores.txt"; 
 
 // definição do nome, com o caminho completo, 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. 
 String nomeArquivoSaida = "c:/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); 
 
 vendedorMaiorValor = new 
Vendedor(vendedores[0].nome, vendedores[0].valorTotalVendas, 
vendedores[0].getComissao()); 
 vendedorMenorValor = new 
Vendedor(vendedores[0].nome, vendedores[0].valorTotalVendas, 
vendedores[0].getComissao()); 
 
 soma = 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].nome, 
vendedores[i].getValorReceber()); 
 
 if (vendedores[i].getValorReceber() > 
vendedorMaiorValor.getValorReceber()) 
 { 
 vendedorMaiorValor.nome = 
vendedores[i].nome; 
 vendedorMaiorValor.valorTotalVendas = 
vendedores[i].valorTotalVendas; 
 vendedorMaiorValor.setComissao ( 
vendedores[i].getComissao()); 
 vendedorMaiorValor.setValorReceber ( 
vendedores[i].getValorReceber()); 
 } 
 
 if (vendedores[i].getValorReceber() < 
vendedorMenorValor.getValorReceber()) 
 { 
 vendedorMenorValor.nome = 
vendedores[i].nome; 
 vendedorMenorValor.valorTotalVendas = 
vendedores[i].valorTotalVendas; 
 vendedorMenorValor.setComissao 
(vendedores[i].getComissao()); 
 vendedorMenorValor.setValorReceber 
(vendedores[i].getValorReceber()); 
 } 
 
 soma += vendedores[i].valorTotalVendas; 
 } 
 
 // 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.nome, 
vendedorMaiorValor.getValorReceber()); 
 Console.WriteLine("O vendedor que possui o 
menor valor a receber é: {0}. Ele receberá R$ {1}", 
vendedorMenorValor.nome, 
vendedorMenorValor.getValorReceber()); 
 Console.WriteLine("A soma dos valores vendidos 
por todos osvendedores é R$ {0}", soma); 
 } 
 else 
 { 
 Console.WriteLine("O arquivo {0} não existe", 
nomeArquivoEntrada); 
 } 
 Console.ReadKey(); 
 } 
 } 
} 
 
Exercícios: 
 
2) 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 “c:/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. 
 
3) Faça um programa em C# que leia um arquivo texto, de nome 
“c:/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 “c:/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 “c:/vetorResultado.txt”, com o vetor resultante da soma dos elementos dos 
dois vetores de entrada, índice a índice. 
 
Exercícios Extra: 
 
4) Faça um programa em C# que leia um arquivo texto, de nome “c:/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. 
 
5) Faça um programa em C# que leia um arquivo texto, de nome “c:/cidades.txt”, 
que contém os nomes de 5 (cinco) cidades, um em cada linha. Esse programa deve 
ler também um outro arquivo texto, de nome “c:/distancias.txt”, que contém, em 
cada linha, as distâncias, em quilômetros, de uma cidade às outras quatro, 
separadas pelo caracter ‘-’. Assim, a primeira linha do arquivo “c:/distancias.txt” 
apresenta as distâncias, separadas pelo caracter ‘-’, da primeira cidade à segunda, 
terceira, quarta e quinta cidades; a segunda linha do arquivo apresenta a distância 
da segunda cidade à primeira, terceira, quarta e quinta cidades; e assim por 
diante. Em seguida, esse programa deverá apresentar um menu com as seguintes 
opções, para o usuário escolher a que ele deseja: 
 
• mostrar, na tela, a distância entre duas cidades quaisquer informadas pelo 
usuário; 
• mostrar, na tela, o total de quilômetros percorridos em um percurso 
informado pelo usuário.

Outros materiais