Utilizando arrays, funções e arquivos de texto

Publicado por Diego Hernandes Soares Alves 24/01/2009

[ Hits: 6.539 ]

Homepage: http://www.he.rnand.es/

Download maximo.cpp




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.

  



Esconder código-fonte

// 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;
}

Scripts recomendados

Manipuladores de bases numéricas

Uma pequena "CALCULADORA" (apenas SOMA).

Múltiplos de 7 - Descrescente

CRONOMETRO DIGITAL

Maior de dois numeros


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts