Utilizando arrays, funções e arquivos de texto
Publicado por Diego Hernandes Soares Alves 24/01/2009
[ Hits: 7.110 ]
Homepage: http://www.he.rnand.es/
O programa lê valores em um arquivo de texto, armazena-os em um array e depois informa o maior por meio de uma função.
Crie um arquivo de texto na mesma pasta e informe as notas separadas por espaço.
Fonte C++ originada da proposta de programação do curso de introdução a programação da Universidade Federal de Viçosa.
// Programa criado por Diego Hernandes Soares Alves
// Proposta de programação do curso de Introdução a programação I da UFV
// Para iniciantes, programa que le valores em um arquivo de texto, os coloca em um arranjo
// e informa qual o maior valor, também server para aqueles que querem começar a dar uma olhada em funções
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
const int NUM_MAX_DADOS = 15;
void leiadados(double A[], int &n )
{
char nomeArquivo[256];
ifstream arqDados;
double valor;
cout << "\nDigite o nome do arquivo com os dados: " << flush;
cin.get(nomeArquivo, 256);
cin.ignore(NUM_MAX_DADOS, '\n');
arqDados.open(nomeArquivo);
if ( arqDados.fail() )
{
cerr << "Falha ao abrir o arquivo " << nomeArquivo << '\n';
exit(1);
}
n = -1;
while ( !arqDados.eof() && n < NUM_MAX_DADOS -1 )
{
arqDados >> valor;
if ( arqDados.fail() ) break;
n++;
A[n] = valor;
}
cout << '\n' << ++n << " Valor(es) lido(s)" << endl;
//Verifica se a leitura terminou antes de ler completamente os dados
//do arquivo
if ( !arqDados.eof() )
{
cerr << "\n***Erro: o número de dados ultrapassou o máximo permitido\n"
<< " ou algum dado ilegal no arquivo de entrada\n";
arqDados.close();
exit(2);
}
arqDados.close();
} // fim de leidados
double maximo(double A[], int m)
{
double max;
max = A[0];
for ( int k = 1; k < m; k++ )
if ( A[k] > max )
max = A[k];
return max;
}
int main()
{
double dados[NUM_MAX_DADOS];
int numDados;
cout << "Determinação do valor máximo contido em um arranjo";
"de números reais\n\n";
leiadados(dados, numDados);
if ( numDados > 0 )
{
cout << "\nValor máximo: " << maximo(dados, numDados);
}
else
cout << "\nNão há nada a determinar";
cout << endl;
return 0;
}
Simulador de cronometro com 2 digitos - otimizado
Cálculo de Bhaskara para raízes reais e complexas
Nenhum comentário foi encontrado.
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
O Editor de Texto Nano: Simplicidade no Terminal
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
[Resolvido] Meu monitor suporta 100fps. Por que o máximo é 60fps nos jogos?
Jogando "Magic" gratuitamente no Linux
Zoxide e fzf no bash para incrementar o uso do Terminal
[pedido] biglinux versao 1 (0)
A falsa sensação de que entende a tal da palavra! (1)









