• Matéria: Informática
  • Autor: kennedyp69p7z
  • Perguntado 7 anos atrás

Mesma coisa essa, na parte de traduzir para o C, até consigo mas fazer rodar são outros 500.

Anexos:

Respostas

respondido por: jvsilvictorox7rfj
1

a) O que representam os elementos do Vetor Y ?

Se X(I) for igual a 1 então faça
Y(K) = I
K = K + 1
Fim do Se


Nesse trecho do código vemos que o vetor Y armazena as posições em que o vetor X tem o valor 1.

Por exemplo, se no vetor Y tem o valor "5", significa que na posição 5 do vetor X há o valor 1.



______________________________________________________


b) O que define o valor final de K ?


Analisando o trecho apresentado na questão anterior, observa-se que o que define o valor final de "K" é a quantidade de valor 1 contidos no vetor X.

Começa com K=1.  Para cada X[I]==1, soma-se 1 em K. No final, K é reduzido em uma unidade. Portanto, teremos somente a quantidade de "uns" contidos em X.



__________________________________________________


c) Implemente tal algoritmo para a linguagem C:


#include <stdio.h>

int main()
{
   
    int I, J, N, K;
    int *X, *Y;
   
    N = 20;
    I = 1;
   
    X = (int *) malloc(N * sizeof(int));
    Y = (int *) malloc(N * sizeof(int));
   
    //LAÇO 1
    while(I <= N)
    {
        X[I] = 1;
        I++;
    }
   
    I = 2;
   
    //LAÇO 2
    while(I <= N)
    {
        J = 2;
       
        //LAÇO 3
        while((I*J) <= N)
        {
            X[I*J] = 0;
            J++;
        }
       
        I++;
       
        //LAÇO 4
        while( (X[I] == 0)  && (I<=N) )
        {
            I++;
        }
    }
   
    I = 1;
    K = 1;
   
    //LAÇO 5
    while(I <= N)
    {
        if(X[I] == 1)
        {
            printf("I = %d\n", I);
            Y[K] = I;
            K++;
        }
        I++;
    }
   
    K--;
   

    return 0;
}




Perguntas similares