Ir ao conteúdo

Posts recomendados

Postado

1)Crie um programa em C++ que receba um vetor de 20 número e depois imprima de trás pra frente.

Sua resposta

#include <iostream>
using namespace std;
 
 int main (){
     
     int vetor [21];
     int i;
     vetor[0]=38;
     vetor[1]=15;
     vetor[2]=98;
     vetor[3]=5;
     vetor[4]=4;
     vetor[5]=33;
     vetor[6]=1;
     vetor[7]=7;
     vetor[8]=44;
     vetor[9]=10;
     vetor[10]=13;
     vetor[11]=81;
     vetor[12]=0;
     vetor[13]=27;
     vetor[14]=41;
     vetor[15]=31;
     vetor[16]=21;
     vetor[17]=11;
     vetor[18]=22;
     vetor[19]=23;
     vetor[20]=32;
    
     for (i=0; i<21; i++){
     cout<< vetor[i]<<"\n";
     }
    

2)Dado um vetor com 10 números reais, faça um programa que percorra o vetor e imprima o seu menor elemento.

  • Amei 1
Postado
50 minutos atrás, lola635 disse:

     for (i=0; i<21; i++){
     cout<< vetor[i]<<"\n";
     }

Para imprimir de trás para frente, é só inverter esse "for", assim:

 for (i=21; i>0; i--){
     cout<< vetor[i]<<"\n";
     }

Pronto, questão 1 resolvida. 

Mas, tenho sugestões. 

Hmm

Citação

 vetor[0]=38;
     vetor[1]=15;
     vetor[2]=98;
     vetor[3]=5;
     vetor[4]=4;
     vetor[5]=33;
     vetor[6]=1;
     vetor[7]=7;
     vetor[8]=44;
     vetor[9]=10;
     vetor[10]=13;
     vetor[11]=81;
     vetor[12]=0;
     vetor[13]=27;
     vetor[14]=41;
     vetor[15]=31;
     vetor[16]=21;
     vetor[17]=11;
     vetor[18]=22;
     vetor[19]=23;
     vetor[20]=32;

Você poderia ter colocado tudo isso dentro de um "for", não? E também é interessante gerar os números de forma aleatória, para ter menos trabalho.

Fazendo algo assim, utilizando o "rand", mas simplesmente usar o rand, ele vai ficar gerando o mesmo valor, para ele gerar valores aleatórios, precisamos de uma semente. A semente, pode ser a hora do computador, para isso, use a função srand(), também precisamos da biblioteca "time.h", e retornar a hora do computador "time(null)". 

Ficando assim: 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>  //biblioteca que precisamos

int main() {

    int i;
    int num2[20];

    srand(time(NULL)); //carinha que pega o tempo do computador

    for(i = 0; i < 20; i++)
        num2[i] = rand(); //carinha que recebe eles

    printf("\n\n");
    for(i = 20; i > 0; i--)
        printf("%d ", num2[i]); //carinha que imprime eles
    printf("\n\n"); 

    return 0;
}

Bem mais limpo, não acha? Pronto, assim ele resolve a sua primeira questão, de forma mais simples, ou não. 

50 minutos atrás, lola635 disse:

2)Dado um vetor com 10 números reais, faça um programa que percorra o vetor e imprima o seu menor elemento.

E sobre essa, teria alguma dúvida em específico? Só uma sugestão, mas, você pode usar um "if" dentro do "for". 

  • Curtir 1
  • Obrigado 1
Postado

@lola635     Esse código que você postou é todo da linguagem  c e como  você postou esse enunciado no tópico de LinguaGem  C++  ,    poderia ser assim :

ao criar o vetor já inserir os números nele , e escrever de trás para frente é começar do último elemento , que nesse caso está na posição 19 do vetor e vai até zero  

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <iomanip>
#include <algorithm>          
using namespace std;

int main()
{
    vector < int > meu_vetor = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
    int i=0;

/*  vetor[0] = 38;
    vetor[1] = 15;
    vetor[2] = 98;
    vetor[3] = 5;   //  esse bloco  comentado aqui , 
    vetor[4] = 4;   // funciona também , mas dará muito trabalho braçal 
    vetor[5] = 33;
    vetor[6] = 1;
    vetor[7] = 7;
    vetor[8] = 44;
    vetor[9] = 10;
    vetor[10] = 13;
    vetor[11] = 81;
    vetor[12] = 0;
    vetor[13] = 27;
    vetor[14] = 41;
    vetor[15] = 31;
    vetor[16] = 21;
    vetor[17] = 11;
    vetor[18] = 22;
    vetor[19] = 23;
    vetor[20] = 32;
*/
    cout << "\n\n" << endl;
    for (i = 19; i >= 0; i--) 
        cout << ' ' << meu_vetor[i];
    cout << "\n\n" << endl;
    return 0;
}

 

Postado
3 horas atrás, Matheus Dutra disse:

Fazendo algo assim, utilizando o "rand", mas simplesmente usar o rand, ele vai ficar gerando o mesmo valor, para ele gerar valores aleatórios, precisamos de uma semente. A semente, pode ser a hora do computador, para isso, use a função srand(), também precisamos da biblioteca "time.h", e retornar a hora do computador "time(null)". 

 

Não é bem assim. rand() não vai ficar "gerando o mesmo valor".  e srand() também não precisa de time e mesmo o seu uso é opcional. E também não precisa se  chamar time com NULL.

 

Em geral quando se está testando um programa ou gerando dados para algum teste objetivo o que se quer é o contrário: usar srand() exatamente para poder reproduzir a mesma sequência --- aleatória --- a cada teste. Esse é o princípio de um teste afinal. E aí se usa srand() apenas uma vez, no inicio, com um valor conhecido. Um inteiro qualquer, como 211214 ou 32. 

 

Porque? Simples: se seu programa vai preencher um vetor de estruturas com 100.000 delas por exemplo, e a partir daí vai gerar valores e comparações, e é isso o objetivo do programa, você vai querer testar SEMPRE com a mesma sequência, para poder ir comparando seu algoritmo e o desempenho.

 

Quando usar time(NULL), que traz a hora, ou outra sequência desse tipo? Quando por exemplo em um game --- que já foi testado --- você quer partir de uma nova configuração. Mas em programas que estão sendo testados quase nunca é isso que se quer. E quase sempre é o que se usa por uma deficiência na maneira como explicam isso.

 

É super comum programas incluírem srand(time())  quando está claro que se devia usar uma constante. E em alguns casos ainda muitas vezes o programa chama srand() entre CADA chamada de rand().

  • Obrigado 2
Postado
4 horas atrás, Matheus Dutra disse:

 

E sobre essa, teria alguma dúvida em específico? Só uma sugestão, mas, você pode usar um "if" dentro do "for". 

como assim?

  • Curtir 1
Postado

@lola635     essa segunda Questão ,    para encontrar o menor número e escrever ele , creio que seja esse mesmo o único modo , pegando o primeiro elemento do vetor comparando com os resyantes ,  e para isso ousar o comando for  para percorrer todos os números no vetor e o  comando  if  para comparar eles ,  

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...