Ir para conteúdo
Fórum Script Brasil

lucasoliveiramarques

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Posts postados por lucasoliveiramarques

  1. Calculando o quadrado de uma Matriz, Há alguma novidade nisto?

    acredito que não; e quem já está acostumado a mecher com Matrizes em C

    verá que o código é simples,veja que foi declarado três Matrizes,todas

    de três por três: int a[max] [max], b[max] [max], c[max] [max]; sendo

    que a Matriz c mostrará o resultado calculado na operação das duas primeiras

    Matrizes: Matriz A, elevado a Matriz B.

    Primeiro você quer a matriz elevado ao quadrado ou a matriz A elevada pela matriz B?

    se for a matriz A elevado ao quadrado e a matriz B elevado ao quadrado assim fica facil basta você utilizar a função pow(a,a);

    de uma olhada +/- como eu fiz so não esta rodando como deveria mas da para você ter uma base mas procura como utilizar a função "POW"

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define max 3
    
    int main(){
        int i,j,n,k,m,t; int a[max][max], b[max][max], c[100][100];
        printf("CALCULO DO QUADRADO DE UMA MATRIZ\n");
        printf("roccoataca@hotmail.com\n");
        printf("DADOS PARA A MATRIZ A\n");
        printf("Digite o numero de linhas para Matriz A: ");
        scanf("%d",&n);
        t=t+n;
        printf("Digite o numero de colunas para Matriz A: ");
        scanf("%d",&m);
        printf("Digite o numero de elementos da Matriz A\n\n");
        for(i = 0; i < n; i++){
              for( j = 0; j < m; j++){
                   printf("\t\t\ta[%d][%d]= ",i,j);
                   scanf("%d",&a[i] [j]);
              }
        }
        system("cls");
        printf("CALCULO DO QUADRADO DE UMA MATRIZ\n");
        printf("roccoataca@hotmail.com\n");
        printf("DADOS PARA A MATRIZ B\n");
        printf("Digite o numero de linhas para Matriz B: ");
        scanf("%d",&n);
        t=t+n;
        printf("Digite o numero de colunas para Matriz B: ");
        scanf("%d",&m);
        printf("Digite o numero de elementos da Matriz B\n\n");
        for(i = 0; i < n; i++){
           for(j = 0; j < m; j++){
              printf("\t\t\ta[%d][%d]= ",i,j);
              scanf("%d",&b[i][j]);
           }
        }
        system("cls");
        printf("CALCULO DO QUADRADO DE UMA MATRIZ\n");
        printf("roccoataca@hotmail.com\n");
        printf("\nEsta e a Matriz A:\n");
        for(i = 0; i < n; i++){
           printf("\n");
           for(j = 0; j < m; j++){
              printf("%4d ",a[i] [j]);   // Matriz A montada como você digitou
           }
        }
        printf("\n\nEsta e a Matriz B:\n");
        for(i = 0; i < n; i++){
           printf("\n");
           for(j = 0; j < m; j++){
                 printf("%4d ",b[i] [j]);   // Matriz B montada como você digitou
           }
        }
        /*for(i=0;i<t;i++){
           for(j=0;j<t;j++){
              a[i][j]=pow(a[i][j],a[i][j]);
              b[i][j]=pow(b[i][j],b[i][j]);
           }
        }*/
        printf("\n\nEstes são os  resultados das duas Matrizes ao Quadrado:\n");
        printf("\nMatriz A");
        for(i = 0; i < n; i++){
              printf("\n");
              for(j = 0; j < n; j++){
                    
                    printf("%4d ",a[i][j]);
              }
        }
        printf("\nMatriz B");
        for(i = 0; i < n; i++){
              printf("\n");
              for(j = 0; j < n; j++){
                    
                    printf("%4d ",b[i][j]);
              }
        }
        printf("\nO ROCCO AGRADECE!");
        system("pause");
    }

    so não posto o programa funfano porque to sem tempo :blush:

  2. se você tem um numero de vezes para executar aquele bloco de código você utiliza o FOR agora se você tem um vetor declarado mas não há necessidade de preenche-lo completo você utiliza o WHILE pois ele permite que você pare a execução a qualquer momento definindo uma "FLAG" que seria um valor digitado para que o programa entendesse que era para ele parar de executar aquele determinado bloco de código as duas entraria na resposta pois o flag do while pode ser o contador do FOR no caso ficaria

    Utilizando o FOR

    int contador;
    for(contador=0;contador<99;contador++){
           /*Bloco de codigo*/
    }
    Utilizando o DO/WHILE(que e a mesma coisa do WHILE)
    int contador,sair=0;
    do{
         /*Bloco de codigo*/
         printf("aperte -2 para sair.\n");
         scanf("%d",&sair);
         contador=contador+1;
    }while(contador < 99 || sair != -2);

    Agora basta entender o que o programa necessita.

  3. Bem não sei se o que você esta querendo mas olhei o codigo e comentei o que achei que não era necessario e mudei algumas coisas e ele esta funfando bunitinho :T

    //#include<stdio>
    #include<stdlib.h>
    //#include<iostream>
    //#include<string.h>
    #include<stdio.h>
    #include<math.h>
    
    int main()
    {
    char nome[100], sobrenome[100], le[100];
    int i;
    
    scanf("%[^\n]s",&nome); 
    
    /*for(i=0;i>=99;i++){ 
       if( le[i] == ' '){ 
          sobrenome[i] = le[i]; 
       }else{
          nome[i] = le[i]; 
       } 
    }
    
    printf("%s ",sobrenome);*/
    printf(" %s \n",nome); 
    system("pause");
    return 0;
    }

  4. Bem tenho um trabalho da faculdade (Faculdade de Tecnologia Senac GO) para fazer so que não tenho a minima ideia de como realizar o calculo e o programa tem que fazer o seguinte:

    Compilador que eu utilizo e o Dev-C++

    "Desenvolver um programa que seja capaz de fornecer a faixa de IPs utilizáveis para cada uma das VLANs criadas na infra-estrutura do projeto.

    O usuário deve entrar com endereço de rede o programa deve informar o endereço de broadcast e faixa IP utilizável.

    Cada octeto deve ser armazenado em uma variável separada"

    já cheguei neste resultado

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    typedef struct subrede{
            int oct1,oct2,oct3,oct4;
    }Subrede;
    
    int menu(int op);
    int menu2(int op1);
    void insere(Subrede x[],int t);
    void calc(Subrede x[],int qtdSR, int qtdHT);
    int qtdSR(int qtd);
    int qtdHT(int qtd);
    
    int main(){
        system("color f0");
        Subrede vet[1];
        int op,op1;
        int qtdeHT=-1, qtdeSR=-1;
        do{
            op=menu(op);
            switch (op){
                case 0:
                    printf("Obrigado por utilizar o programa!");
                break;
                case 1:
                    insere(vet,1);
                break;
                case 2:
                    do{
                        op1=menu2(op1);
                        switch (op1){
                            case 1:
                                qtdeSR=qtdSR(qtdeSR);
                            break;
                            case 2:
                                qtdeHT=qtdHT(qtdeHT);
                                calc(vet, qtdeSR, qtdeHT);
                            break;
                        }
                    }while(op1!=1 || op1!=2);
                break;
                case 3:
                    
                break;
            }
        }while(op!=0);
        system("pause");
        return 0;
    }
    
    int menu(int op){
        do{
            printf("Escolha uma opcao:\n\n");
            printf("1 - Inserir\n");
            printf("2 - Calcular\n");
            printf("3 - Imprimir\n");
            printf("0 - Sair\n\n");
            printf("Opcao: ");
            scanf("%d",&op);
        }while(op<0 || op>3);
        return op;
    }
    
    int menu2(int op1){
        int sai=-1;
        do{
            printf("\n\nEscolha uma opcao:\n\n");
            printf("1 - Informar quantidade de sub redes: \n");
            printf("2 - Informar quantidade de host por sub rede: \n");
            scanf("%d",&op1);
            if(op1<1 || op1>2){
                printf("Opcao Invalida!");
            }else{
                sai=1;
            }
        }while(sai!=1);
        return op1;
    }
    
    void insere(Subrede x[],int t){
        do{
            printf("Informe o 1%c octeto: ",167);
            scanf("%d",&x[t].oct1);
        }while(x[t].oct1<=0 || x[t].oct1>255);
        do{
            printf("Informe o 2%c octeto: ",167);
            scanf("%d",&x[t].oct2);
        }while(x[t].oct1<=0 || x[t].oct1>255);
        do{
            printf("Informe o 3%c octeto: ",167);
            scanf("%d",&x[t].oct3);
        }while(x[t].oct1<=0 || x[t].oct1>255);
        do{
            printf("Informe o 4%c octeto: ",167);
            scanf("%d",&x[t].oct4);
        }while(x[t].oct1<=0 || x[t].oct1>255);
    }
    
    int qtdSR(int qtd){
        printf("Informe a quantidade de sub redes deseja calcular: \n");
        scanf("%d",&qtd);
        return qtd;
    }
    
    int qtdHT(int qtd){
        printf("Informe a quantidade de Hosts deseja ter em cada sub rede: \n");
        scanf("%d",&qtd);
        return qtd;
    }
    
    void calc(Subrede x[],int qtdSR, int qtdHT){
        int mascara=0,cont=0,sai=8;
        if(qtdSR!=-1){
            
        }else{
            if(qtdHT!=-1){
                do{
                    if(mascara<=qtdHT){
                        cont=cont+1;
                        mascara=mascara*2;
                        printf("pow %d\n",mascara);
                        printf("Cont: %d\n\n",cont);
                    }
                }while(mascara<qtdHT/* || cont<=7*/);
            }
        }
    }
    so que na função "calc" eu to com um problema nessa parte comentada quando a variável "cont" chega <=7 ele não para.
    do{
        if(mascara<=qtdHT){
            cont=cont+1;
            mascara=mascara*2;
            printf("pow %d\n",mascara);
            printf("Cont: %d\n\n",cont);
        }
    }while(mascara<qtdHT/* || cont<=7*/);

    alguém tem solução para esse codigo ou tenho que começar desde o inicio :unsure:

    por enquanto so tem a parte de preenchimento dos dados esta faltando a parte do calculo que eu não tenho a minima ideia de como fazer

×
×
  • Criar Novo...