Ir ao conteúdo
  • Cadastre-se

Éverton Todoroki

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

posts postados por Éverton Todoroki

  1. Olá, sou iniciante em programação em c e no momento estou aprendendo sobre fila em C. Fiz um programa e tá dando erro. Se alguém puder me ajudar fico muito grato.

     

    Tenho que:  Implementar um sistema que utilize uma fila para controlar a entrada e saída de ordens de produção (código,descrição da peça a produzir, quantidade a produzir). Utilizar uma struct para representar a ordem de produção. Deve ser possível inserir, retirar e listar as ordens da fila. A fila deve ser implementada sobre um vetor de 10 elementos .

     

    Os erros que estão acusando é em void inserir e diz.

    #include <stdio.h>
    #include <stdlib.h>
    #define TAMANHO 5
    
    struct fila
    {
        int numeroelementos;
        int inicio;
        float elementos[TAMANHO];
        char descricao[20];
        int quantidade;
    };
    
    typedef struct fila Fila;
    
    Fila *criarFila()
    {
        Fila *f= (Fila*) malloc(sizeof(Fila));
        f->numeroelementos = 0;
        f->inicio = 0;
        return f;
    }
    
    void inserir(Fila *f, float valor,char nam[20],int qtd)
    {
        if(f->numeroelementos == TAMANHO)
        {
            printf("Fila cheia.\n");
            return;
        }
        int fim = (f->inicio + f->numeroelementos) % TAMANHO;
        f->elementos[fim] = valor;
        f->descricao[fim]= nam; 
      //aqui dá o erro de f->descricao[fim]= nam;
      //Warning: assignment makes integer from pointer without a cast [-Wint-conversion]
        f->quantidade[fim]=qtd; 
      //aqui da o erro: subscripted value is neither array nor pointer nor vector
       
      f->numeroelementos++;
    }
    
    void retirar(Fila *f)
    {
        float valor;
        if(f->numeroelementos == 0)
        {
            printf("fila vazia.\n");
            return;
        } //retira o elemento da fila
        valor =f->elementos[f->inicio];
        f->inicio = (f->inicio + 1) % TAMANHO;
        f->numeroelementos--;
        printf("Elemento retirado = %.0f\n",valor);
    }
    
    void destruirFila(Fila *f)
    {
        free(f);
    }
    
    void mostrarFila(Fila *f)
    {
        printf("Conteúdo da fila\n");
        int i;
        for(i = 0; i < f->numeroelementos; i++)
            printf("%0.f\n",f->elementos[(f->inicio + i) % TAMANHO]);
        printf("\n");
    }
    
    int main()
    {
        Fila *fila=criarFila();
        int opcao = -1;
        float item;
        int qtd;
        char nome[20];
    
        while(opcao != 0)
        {
            system("cls");
            printf("Escolha a opção desejada: \n");
            printf("1. Enfilera\n");
            printf("2. Retira \n");
            printf("3. Mostra a fila\n");
            printf("0. Fim\n");
            scanf("%d", &opcao);
    
            switch (opcao)
            {
            case 1 : //insere
                printf("Digite o codigo: ");
                scanf("%f", &item);
                printf("Digite a descricao da peca: ");
                fflush(stdin);
                gets(nome);
                printf("Digite a quantidade de pecas: ");
                scanf("%d", &qtd);
                inserir(fila,item,nome,qtd);
                break;
            case 2 : //retira
                retirar(fila);
                break;
            case 3 : //mostra
                mostrarFila(fila);
                break;
            }//switch
            printf("\n");
            system("pause");
        }
        destruirFila(fila);
    }

     

  2. Olá, abri um ventilador e tirei seu motor e bobina. Quando impulsionava o eixo (dava uma força com a mão) ele começava a girar. Só que aí decidi tirar o capacitor pra ver tava estragado,mas só fiz o teste com o multímetro pra ver se tava funcionando. Porém, dps que fiz isso, liguei na tomada e coloquei a chave teste no eixo e no aço, que envolve o motor, e para minha surpresa tá tudo em curto. E agora o motor só liga e dá barulho, não dá mais pra impulsionar pois ele não gira. Alguém que entenda, pode me dar uma dica do que pode ser ou o que fazer. 

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!