Utilizando arrays, funções e arquivos de texto

Publicado por Diego Hernandes Soares Alves 24/01/2009

[ Hits: 6.710 ]

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

D'GAME

Linguagem C estruturada, parte 3 - Sistema Numérico Hexadecimal

Plano cartesiano

MMC

Trabalhando com argumentos e ponteiros


  

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