Utilizando arrays, funções e arquivos de texto
Publicado por Diego Hernandes Soares Alves 24/01/2009
[ Hits: 6.945 ]
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;
}
Número par ou ímpar (com operado bit a bit)
C --> Calculadora de equações de 2º grau explicada.
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Instalação dualboot Windows 11 e Debian 13 (6)
Mint Xfce não mantém a conexão no wi-fi (0)
Programa fora de escala na tela do pc (36)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









