Ir ao conteúdo
  • Cadastre-se

Gabriel Pancaldi

Membro Júnior
  • Posts

    15
  • Cadastrado em

  • Última visita

posts postados por Gabriel Pancaldi

  1. #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <string.h>
    #include <math.h>
    #define T 10
    
    void bin_oct(char [], char []);
    
    int main(){
        char b[50], o[50];
    
        printf("Informe um numero binario:");
        gets(b);
    
        bin_oct(b, o);
    
    
    return 0;
    }
    
    void bin_oct(char *bin, char *oct){
        int i, j;
            for(i = 0; i < strlen(oct); i++){
                for(j = 0; j < strlen(bin); j = j + 3){
                    if(bin[j] == '0' && bin[j + 1] == '0' && bin[j + 2] == '0'){
                        oct[i] = '0';
    
                    }
                    else if(bin[j] == '0' && bin[j + 1] == '0' && bin[j + 2] == '1'){
                        oct[i] = '1';
    
    
                    }
                    else if(bin[j] == '0' && bin[j + 1] == '1' && bin[j + 2] == '0'){
                        oct[i] = '2';
    
    
                    }
                    else if(bin[j] == '0' && bin[j + 1] == '1' && bin[j + 2] == '1'){
                        oct[i] = '3';
    
    
                    }
                    else if(bin[j] == '1' && bin[j + 1] == '0' && bin[j + 2] == '0'){
                        oct[i] = '4';
    
    
                    }
                    else if(bin[j] == '1' && bin[j + 1] == '0' && bin[j + 2] == '1'){
                        oct[i] = '5';
    
    
                    }
                    else if(bin[j] == '1' && bin[j + 1] == '1' && bin[j + 2] == '0'){
                        oct[i] = '6';
    
                    }
                    else if(bin[j] == '1' && bin[j + 1] == '1' && bin[j + 2] == '1'){
                        oct[i] = '7';
    
    
                    }
    
                }
            }
            printf("%s", oct);
    
    }

     

    Estou observando que só o ultimo valor é mostrado no printf, o certo seria quando achasse o valor que batesse o for fosse alterado assim, buscando uma novo grupo de 3 e um valor i diferente da string mas n sei como faz isso. Alguma ideia do que fazer?

    • Obrigado 1
  2. Spoiler
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <string.h>
    #include <math.h>
    #define T 10
    
    int oct_dec(char []);
    
    int main(){
        int nc;
        char str[50];
    
        printf("Informe o numero octal:");
        gets(str);
    
        nc = oct_dec(str);
    
    return 0;
    }
    
    int oct_dec(char *oct){
        int i, cv, soma, cont = 0;
    
        soma = 0;
    
        for(i = strlen(oct) - 1;i >= 0; i--){
            cv = oct[i] * pow(8, cont);
            cont++;
            soma = soma + cv;
        }
    
        printf("%d", soma);
        return(soma);
    }

     

     

    Estou com duvida para converter o numero dentro do vetor char para ele mesmo em int, por que quando faço a conta direto ele é convertido para o numero na versao da tabela ascii.

    • Curtir 1
  3. Estou fazendo um exercício no qual preciso dar a sequencia Fibonacci, eu já entendi a sequencia da mesma, mas eu não consigo pegar o numero anterior resultado para fazer a soma.

     

    var
    n: inteiro //n1
    cont: inteiro //contador
    s: inteiro //n2
    f: inteiro //sequencia
    
    inicio
    // Seção de Comandos
    cont <- 0
    f <- 0
    s <- 1
    
    REPITA
    
    f <- f + s
    
    s <-f
    
    escreva(f)
    
    cont <- cont+1
    
    ATE cont>5
    
    fimalgoritmo

    Se alguém souber como posso fazer agradeço desde já.

    • Curtir 1
  4. Eu entendi agora, vou postar o código corrigido abaixo, está funcionando certinho.

     

    var
    a, b, c: inteiro
    inicio
    // Seção de Comandos
    Escreva("Informe 3 numeros:")
    leia(a,b,c)
    
    SE (a>b) e (b>c) então
    
       ESCREVA("ORDEM: ", c, b, a)
       FIMSE
    
    SE (a>b) e (b<c) então
    
       ESCREVA("ORDEM: ", b, c, a)
       FIMSE
       
    SE (b>a) e (a>c) então
    
       ESCREVA("ORDEM: ", c, a, b)
       FIMSE
    
    SE (b>a) e (a<c) então
    
       ESCREVA("ORDEM: ", a, c, b)
       FIMSE
    
    SE (c>a) e (a>b) então
    
       ESCREVA("ORDEM: ", b, a, c)
       FIMSE
    
    SE (c>a) e (a<b) então
    
       ESCREVA("ORDEM: "), a, b, c)
       FIMSE
       
    fimalgoritmo

     

    • Curtir 1
  5. 1 hora atrás, Simon Viegas disse:

    Olá @Gabriel Pancaldi.

     

     

    Pronto!

     

    Agora fica faltando implementar o se/então/senão... pois são condições mutuamente excludentes, ou seja, se for uma, não pode mais ser alguma depois, e esse tipo de condições pede o senão.

     

    Por favor, caso queira implementar, por favor, poste seu código completo aqui ou onde está com dúvidas.

     

    No aguardo.

     

    No momento acho que vou continuar assim, pois acho que com o senão eu iria ficar confuso no código e no jeito que está funcionou, mas obrigado pela ajuda.

    • Curtir 1
  6. 6 horas atrás, Simon Viegas disse:

    @Gabriel Pancaldi, aquele seu primeiro código é o completo, ou só parte?

     

    Para adiantar:

    - cada expressão do se é separada por colchetes "()", ex.:

    
    se (a>b) e (b>c) ENTÃO

     

     

     

    - é necessário declarar o nome do programa e as variáveis que você está utilizando, ex.:

    
    algoritmo "Nome do meu algoritmo" //nome do algoritmo
    var
       a,b,c :inteiro //é necessário declarar as variáveis que serão usadas
    inicio
    
    
    
    
    
    fimalgoritmo

    O seu código fica entre o "inicio" e "fimalgoritmo".

     

    ***

     

    Tente fazer as correções e poste seu código completo e onde está com dúvidas.

     

    No aguardo.

     

     

     

     

    adicionado 7 minutos depois

    Consegui fazer, era só separar meso por () cada condição e agora é só colocar na ordem crescente

    • Curtir 1
  7. Bom dia, estou começando na linguagem de Portugol e meu Visualg está dando um erro um tanto quanto estranho.

    Escreva("Informe 3 numeros:")
    leia(a,b,c)
    SE (a>b e b>c) então
       ESCREVA("ORDEM: ", a, b, c)
       FIMSE
    SE (a>b e b<c) então
       ESCREVA("ORDEM: ", a, c, b )
       FIMSE
    SE (b>a e a>c) então
       ESCREVA("ORDEM: ", b, a, c)
       FIMSE
    SE (b>a e a<c) então
       ESCREVA("ORDEM: ", b, c, a)
       FIMSE
    SE (c>a e a>b) então
       ESCREVA("ORDEM: ", c, a, b )
       FIMSE
    SE (c>a e a<b) então
       ESCREVA("ORDEM: "), c, b, a)
       FIMSE

     

    Quando eu executo o Visualg afirma que esta faltando um então na primeira linha, mas não está, queria saber o porque.

    • Curtir 1

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!