Ir para conteúdo

William Minerva

Membros
  • Postagens

    6
  • Registro em

  • Última visita

  • Dias Ganhos

    2

Posts postados por William Minerva

  1. 20 horas atrás, Fernando Mercês disse:

    Opa, na verdade basta uma estrutura (struct) com as coordenadas cartesianas e um código que converta, que você já tem. ?

    Algo assim:

    struct coord {
      float x;
      float y;
    };

    Aí você declara assim:

    struct coord c;

    Após declarar, você acessa os membros da uma struct com o operador . (ponto). Por exemplo, para colocar valores nos membros:

    c.x = 9.1;
    c.y = 3.4;

    Você vai precisar adaptar isso na sua chamada à scanf().

    Depois de ter os valores preenchidos na sua struct declarada, é só converter, acessando da mesma maneira e imprimir os resultados. Se já souber usar ponteiros, pode fazer uma função que receba a struct e substitua os valores, ou que receba duas structs (uma com as coordenadas cartesianas e a outra vazia, para preencher as coodernadas polares). Mas se ainda não trabalhou com ponteiros, ou não é exigido pelo exercício, pode fazer na main() mesmo.

    Um abraço e boa sorte!

     

    Aah entendi, muito obrigado.

    • Curtir 1
  2. Oi gente, bom dia, tudo bem? Eu preciso fazer um programa que leia uma frase e que em seguida cada letra do texto seja substituída por outra fazendo uma troca de 3 posições. Por exemplo: a letra A vira letra D, a letra B vira letra E e assim por diante. O problema é que o programa que eu construí ela lê apenas uma palavra mas não lê o resto que eu escrevo. Por exemplo: quando eu escrevo a palavra "CACHORRO CANSADO" o programa lê apenas a palavra "CACHORRO" e me retorna "FDFKRUUR" mas não lê a palavra "CANSADO", o programa considera apenas a primeira palavra que eu escrevo, por que isso está acontecendo? Como posso resolver esse problema?

    Eu escrevi o programa da seguinte forma:

    #include <stdio.h>
    #include <string.h>

    void cifrar( char * saida, const char * entrada, int chave )
    {
        int i = 0;
        int tam = strlen(entrada);

        for( i = 0; i <= tam; i++ )
        {
            if( (entrada[i] >= 'a') && (entrada[i] <= 'z') )
            {
                saida[i] = (((entrada[i] - 'a') + chave) % 26) + 'a';
            }
            else if( (entrada[i] >= 'A') && (entrada[i] <= 'Z') )
            {
                saida[i] = (((entrada[i] - 'A') + chave) % 26) + 'A';
            }
            else
            {
                saida[i] = entrada[i];
            }

        }
    }


    void decifrar( char * saida, const char * entrada, int chave )
    {
        int ch = 0;
        int i = 0;
        int tam = strlen(entrada);

        for( i = 0; i <= tam; i++ )
        {
            if( (entrada[i] >= 'a') && (entrada[i] <= 'z') )
            {
                ch = (entrada[i] - 'a') - chave;
                if( ch < 0 ) ch += 26;
                saida[i] = ch + 'a';
            }
            else if( (entrada[i] >= 'A') && (entrada[i] <= 'Z') )
            {
                ch = (entrada[i] - 'A') - chave;
                if( ch < 0 ) ch += 26;
                saida[i] = ch + 'A';
            }
            else
            {
                saida[i] = entrada[i];
            }

        }
    }

    int main( int argc, char * argv[] )
    {
        char original[100];

        scanf("%s", original);

        char cifrado[100];

        cifrar( cifrado, original, 3 );

        printf("%s", cifrado);

        return 0;

  3. Oi gente, tudo bem? Eu estou praticando um exercício de programação que pede para fazer um programa que converta coordenadas polares para coordenadas cartesianas, e então eu fiz da seguinte forma:

    #include <stdio.h>
    #include <string.h>
    #include <math.h>

    int main()  {

        float r, a;
        float x, y;
        
        scanf("%f %f", &r, &a);
        
        x = r * cos(a);
        y = r * sin(a);
        
        printf("%.2f %.2f", x, y);
        
        return 0;

    }

    Mas o problema é que eu queria escrever esse programa em forma de estruturas (struct), ou seja, criar um TAD para o ponto cartesiano com os campos x e y e um outro TAD para o ponto polar com os campos r e a. Eu estou tentando e não estou conseguindo, como eu faço? Se alguém puder me ajudar ou dar alguma dica eu ficaria agradecido.

    • Curtir 1
  4. Eu escrevi o seguinte programa:

    #include <stdio.h>
    #include <stlib.h>

    int main()
    {
        int i, j, det;
        
        int matriz[3][3];
        
        for(i=0; i<3; i++)  {
            for(j=0; j<3; j++)  {
                scanf("%d", &matriz[i][j]);
            }
        }
        
        det = (matriz[0][0]*matriz[1][1]*matriz[2][2]) + (matriz[0][1]*matriz[1][2]*matriz[2][0]) + (matriz[0][2]*matriz[1][0]*matriz[2][1]) 
        - ((matriz[0][1]*matriz[1][0]*matriz[2][2]) + (matriz[0][0]*matriz[1][2]*matriz[2][1]) + (matriz[0][2]*matriz[1][1]*matriz[2][0]));
        
        printf("%d", det);
        
        return 0;
    }

     

    Mas como eu posso ler as matrizes utilizando os comandos while e do-while?

×
×
  • Criar Novo...