Ir ao conteúdo
  • Cadastre-se

C++ Subrotina pra achar maior valor do vetor em C++


Polaris

Posts recomendados

Tenho que criar um programa com subrotina pra identificar o maior valor de um vetor de 10 valores.

Já consegui criar sem a subrotina:

int main(int argc, char** argv) {
    setlocale(LC_ALL,"Portuguese"); // instrução para mostrar ascentos
    srand(time(NULL));
    int V[10], i, maior;
    maior = 0;
    for (i=0; i<10; i++)
    V[i] = rand()%100;
    
    for (i=0; i<10; i++)
    cout << V[i] << " ";
    cout << endl;
    
    for (i=0; i<10; i++)
    if (V[i]>maior) {
        maior = V[i];
    }
    cout << "O maior vetor é " << maior << endl;
    
    


    return 0;

 

Só que com a subrotina, não consigo fazer. Como faço pra subrotina pegar os valores gerados pro Vetor na função principal?

Com subrotina (deu errado):

using namespace std; 
    void maiore()
    {    int i, vet[10], m=0;    
    for (i=0; i<10; i++)
    if (vet[i]>m) {
        m = vet[i];
    }
    cout << "O maior vetor é " << maiore << endl;    
    }

int main(int argc, char** argv) {
    setlocale(LC_ALL,"Portuguese"); // instrução para mostrar ascentos
    srand(time(NULL));
    int V[10], i, maior;
    maior = 0;
    for (i=0; i<10; i++)
    V[i] = rand()%100;
    
    for (i=0; i<10; i++)
    cout << V[i] << " ";
    cout << endl;
    
    maiore();
    
    
    


    return 0;

 

Link para o comentário
Compartilhar em outros sites

Seu programa não está bom. E nem está certo.

 

Poste algo compilável. Inteiro. Trata-se de um programa em C? em C++?

Onde estão os #include?

 

Pra que time() apenas para a semente do gerador? Use uma constante, ao menos enquanto está testando. É mais esperto porque a sequência reinicia sempre igual e isso é importante quando está testando, em especial quando seus programas passarem a ter mais de 20 linhas.

 

Se está usando C a nomenclatura é função. Se está usando C++ o nome é método. Se acostume com esses nomes e os tópicos nos livros vão parecer mais familiares. O nome Subrotina é mais comum em Visual Basic ou FORTRAN.

 

De todo  modo funções que retornam void são um desperdício e muitas vezes um erro. No seu caso um provável erro mesmo. 

 

E funções recebem argumentos, aquelas coisas que vem entre parenteses. É possível uma função não ter argumentos, como o caso da sua. E aí vem duas possibilidades:

  • ou elas não dependem de nada externo
  • ou dependem e acessam de outra forma, como lendo do sistema operacional, do usuário, ou acessando valores globais. Em geral valores globais são desencorajados ou proibidos mesmo, porque é um risco enorme e um pesadelo de manutenção.

Você tem um livro? Onde aprendeu sobre funções?

 

Funções que retornam void e não tem argumentos são uma caixa preta. Nada recebem, nada retornam. É difícil estar certo.

 

Um int é um valor inteiro possivelmente negativo. Os valores vão de INT_MIN até INT_MAX. Se quer achar o maior comece por INT_MIN. O fato de estar usando rand() para preencher o vetor não torna seu programa certo. Apenas garante números positivos e faz seu programa parecer certo. Até começar a ler de outro lugar...

 

 

  • Haha 1
Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...

@Polaris

 

Boa Tarde

 

O que é subrotina?

Citação

Uma subrotina em programação de computador é uma parte menor de um módulo de código maior que tem suas próprias operações internas projetadas para servir ao programa geral. Ela também é chamada de função ou método, pois retorna um resultado de código específico que é usado pelo programa. Espero que isso esclareça o conceito de subrotina! 😊

— chatbot

 

Agora que entendemos uma definição de subrotina (função ou método).

 

Em 04/02/2021 às 12:40, Polaris disse:

identificar o maior valor de um vetor de 10 valores

Iteração sobre vetores.

Operações com expressões lógicas.

E modulação de programa: esses são alguns dos temas do exercício.

 

Estudou isso, ou algo semelhante?

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!