Ir ao conteúdo

Endmmans

Membro Pleno
  • Posts

    363
  • Cadastrado em

  • Última visita

posts postados por Endmmans

  1. O que posso melhorar nele? PS: Ainda não criei a função para atualizar.

    users_info = [] #Variável utilizada para armazenar os dados de dicionário_user.
    def create_user(id):
        print("***Criando um usuário***")
        op = int(input("1 - Criar um usuário\n2 - Voltar ao Menu Principal\nDigite o valor desejado: "))
        if (op == 1):
            print("ID que será vinculado: {}".format(id))
            nome = input("Digite seu nome completo: ")
            email = input("Digite seu email: ")
            idade = int(input("Digite sua idade: "))
            dicionario_user = {"*ID*": id, "Nome": nome, "E-mail": email, "Idade": idade}
            users_info.append(dicionario_user.copy()) #Copiar os dados do dicionário user para a variável users_info.
            print("Usuário criado com sucesso.")
        else:
            return
    
    def read_user():
        print("***Mostrando todos usuários***")
        for user in users_info:
            for key, value in user.items():
                print("{}: {}".format(key, value))
    
    def delete_user():
        print("***Deletando um usuário***")
        op = int(input("1 - Deletar um usuário pelo ID\n2 - Voltar ao Menu Principal\nDigite o valor desejado: "))
        if (op == 1):
            ap = int(input("Digite o ID do usuário que deseja deletar: "))
            for user in users_info:
                if (user["*ID*"] == ap):
                    users_info.remove(user) #Apaga o ID e seus dados fornecidos do dicionario_user da variável users_info.
                    print("Usuário removido com sucesso.")
        else:
            return
    
    #Programa principal
    print("*****Sistemas de Cadastros de Usuários Casa 3*****")
    registroUsuarios = 100
    while True:
        print("***Menu Principal***\n1-Criar usuário\n2-Mostrar todos usuários\n3-Atualizar usuário\n4-Deletar usuário\n5-Sair")
        op = int(input("Digite o valor desejado: "))
    
        if (op == 1):
            registroUsuarios = registroUsuarios + 1
            create_user(registroUsuarios)
        elif (op == 2):
            read_user()
        elif (op == 4):
            delete_user()
        elif (op == 5):
            print("Sistemas de Cadastros de Usuários Casa 3 finalizado.\n")
            break

     

    • Curtir 1
  2. @arfneto @arfneto

    float metragem_limpeza() {
      float met;
      
      while(1) {
        printf("Entre com a metragem da casa: \n");
        float ret_scanf = scanf("%f", &met);
        if (ret_scanf != 1) { //Verifica se o valor de scanf deu certo.
          printf("Só são aceitos valores numéricos. Tente novamente.\n");
          while (getchar() != '\n'); //Limpa o buffer do teclado.
          continue;
        }
        
        if (met<30 || met>700) {
          printf("Não aceitamos casas com menos de 30m² ou mais de 700m². Sentimos muito.\n");
          return 0;
        }
    
        if (met<=300) {
          return 60+0.3*met;
          
        } return 120+0.5*met;
    
        
      }
        
    } 

     

  3. @arfneto Se me chamarem pra um estágio já agora você acha que devo aceitar ou recusar por enqto com base no que você viu?

    @arfneto Eu não tinha entendido alguns conceitos que você me disse e dei uma pesquisada. Adicionei os detalhes ao programa que compreendi.

    #include <stdio.h>
    #include <stdlib.h>
    
    float metragem_limpeza();
    float metragem_limpeza_b();
    float tipo_limpeza();
    float adicional_limpeza();
    
    //Programa principal
    int main() {
      
      printf("Bem-vindo ao programa de Serviços de Limpeza CleanUp.\n**************************************************************************\n----------------------Menu 1 de 3 - Metragem Limpeza----------------------\n");
      float metragem = metragem_limpeza();
      if (metragem ==0) {
        return 0;
      }
      printf("O valor retornado foi de %g\n", metragem); //Verificar se o valor calculado está correto
    
      printf("**************************************************************************\n------------------------Menu 2 de 3 - Tipo Limpeza------------------------\n");
      float tipo = tipo_limpeza();
      printf("O valor retornado foi de %g\n", tipo); //Verificar se o valor calculado está correto
    
      printf("**************************************************************************\n-------------------Menu 3 de 3 - Adicional de Limpeza---------------------\n");
      float adicional = adicional_limpeza();
      printf("O valor retornado foi de %g\n", adicional); //Verificar se o valor calculado está correto
    
      float resultado=metragem*tipo+adicional;
      printf("O valor final foi de R$%g\n", resultado);
    
      return 0;
    
    }
    
    //Função que retorna o valor calculado da limpeza pela metragem. Não aceita valores menor do que 30 ou maior do que 700.
    float metragem_limpeza() {
      float met;
      
      while(1) {
        printf("Entre com a metragem da casa: \n");
        float ret_scanf = scanf("%f", &met);
        if (ret_scanf != 1) { //Verifica se o valor de scanf deu certo.
          printf("Só são aceitos valores numéricos. Tente novamente.\n");
          while (getchar() != '\n'); //Limpa o buffer do teclado.
          continue;
        }
        
        if (met<30 || met>700) {
          printf("Não aceitamos casas com menos de 30m² ou mais de 700m². Sentimos muito.\n");
          return 0;
        }
    
        if (met<=300) {
          return 60+0.3*met;
          
        } return 120+0.5*met;
    
        
      }
        
    } 
    
    //Função que retorna o valor do tipo de limpeza. Irá multiplicar o resultado final por 1.0 ou 1.3
    float tipo_limpeza() {
      char tip;
      printf("Entre com o tipo de limpeza:\nBásica (B): Aplicada para sujeira semanais ou quinzenais.\nCompleta (C): (+30 p/ cento): Indicada para sujeiras antigas ou não rotineiras.\n");
      while (1) {
      printf("Entre com o tipo de limpeza:\n");  
      char ret_scanf = scanf(" %c", &tip);
       if (ret_scanf != 1) { //Verifica se o valor de scanf deu certo.
         printf("Entrada de dados inválida. Tente novamente\n");
         while (getchar() != '\n'); //Limpa o buffer do teclado.
         continue;
      }
      if (tip=='B') {
        return 1.0;
      }
      else if (tip=='C') {
        return 1.3;
      }
      else {
        printf("Só são aceitos B ou C. Tente novamente.\n");
        continue; 
      }
      }
    }
    
    //Função que retorna o valor dos adicionais da limpeza. Irá somar com o resultado final.
    float adicional_limpeza() {
      float adi, add;
      adi=0;
      printf("Deseja mais algum adicional?\n0 - Não desejo mais nada. Encerrar.\n1 - Passar 10 peças de roupas. R$10,00\n2 - Limpeza de 1 Forno/Microondas. R$12,00\n3 - Limpeza de 1 Geladeira/Freezer. R$20,00\n");
      while(1) {
      printf("Digite o valor: \n");
      float ret_scanf = scanf("%f", &add);
        if (ret_scanf != 1) { //Verifica se o valor de scanf deu certo.
          printf("Valor inválido. Tente novamente.");
          while (getchar() != '\n'); //Limpa o buffer do teclado.
          continue;
        }
      if (add==0) {
        adi = adi+0;
        break;
      }
      else if (add==1) {
        adi = adi+10;
        continue;
      }
      else if (add==2) {
        adi = adi+12;
        continue;
      }
      else if (add==3) {
        adi = adi+20;
        continue;
      }
      else {
        printf("Só são aceitos 0, 1, 2 e 3. Tente novamente.\n");
        continue;
      }
        
      }
    
      return adi;
      
    
    }

     

    • Curtir 1
  4. @arfneto Eu devo verificar SEMPRE se o retorno de scanf é 1, mesmo fora de laços de repetição?

    @arfneto Não tenho nenhum livro sobre C e não faço cursos sobre C. você acha que é útil eu aprender melhor C para caso surjam oportunidades de estágio? Ou acha que não vale a pena? Visto que essa linguagem quase não é usada comercialmente.

    • Curtir 1
  5. @arfneto Na verdade eu aprendi base de Python em um curso do ano passado, e agora estou tentando aprender C pra eu não ter tanta dificuldade em outras linguagens. C estou aprendendo totalmente por fora, não tenho nenhum livro e não faço curso sobre ele.

    15 horas atrás, arfneto disse:
    if (res != 1) continue;

    Esse é o teste do retorno do scanf? Pra que ele serve exatamente?

    • Curtir 1
  6. @arfneto @arfneto Olá, dei uma editada brusca no programa da maneira que entendi e que consegui. Agora coloquei as funções antes da main, dessa, forma já aproveitando e as declarando.

    #include <stdio.h>
    #include <stdlib.h>
    
    //Função que retorna o valor calculado da limpeza pela metragem. Não aceita valores menor do que 30 ou maior do que 700.
    float metragem_limpeza() {
      float met;
      
      while(1) {
        printf("Entre com a metragem da casa: \n");
        scanf("%f", &met);
        
        if (met<30 || met>700) {
          printf("Não aceitamos casas com menos de 30m² ou mais de 700m².\n");
          continue;
        }
    
        else if (met<=300) {
          return 60+0.3*met;
          
        }
        else if (met<=700) {
          return 120+0.5*met;
          
        }
        
      }
        
    } 
    
    //Função que retorna o valor do tipo de limpeza. Irá multiplicar o resultado final por 1.0 ou 1.3
    float tipo_limpeza() {
      char tip;
      printf("Entre com o tipo de limpeza:\nBásica (B): Aplicada para sujeira semanais ou quinzenais.\nCompleta (C): (+30 p/ cento): Indicada para sujeiras antigas ou não rotineiras.\n");
      scanf(" %c", &tip);
      if (tip=='B') {
        return 1.0;
      }
      else if (tip=='C') {
        return 1.3;
      }
      
    }
    
    //Função que retorna o valor dos adicionais da limpeza. Irá somar com o resultado final.
    float adicional_limpeza() {
      float adi;
      float add;
      adi=0;
      printf("Deseja mais algum adicional?\n0 - Não desejo mais nada. Encerrar.\n1 - Passar 10 peças de roupas. R$10,00\n2 - Limpeza de 1 Forno/Microondas. R$12,00\n3 - Limpeza de 1 Geladeira/Freezer. R$20,00\n");
      while(1) {
      printf("Digite o valor: \n");
      scanf("%f", &add);
      if (add==0) {
        adi = adi+0;
        break;
      }
      else if (add==1) {
        adi = adi+10;
        continue;
      }
      else if (add==2) {
        adi = adi+12;
        continue;
      }
      else if (add==3) {
        adi = adi+20;
        continue;
      }
        
      }
    
      return adi;
      
    
    }
    
    //Programa principal
    int main() {
      
      printf("Bem-vindo ao programa de Serviços de Limpeza CleanUp.\n**************************************************************************\n----------------------Menu 1 de 3 - Metragem Limpeza----------------------\n");
      float metragem = metragem_limpeza();
      printf("O valor retornado foi de %g\n", metragem); //Verificar se o valor retornado está correto
    
      printf("**************************************************************************\n------------------------Menu 2 de 3 - Tipo Limpeza------------------------\n");
      float tipo = tipo_limpeza();
      printf("O valor retornado foi de %g\n", tipo); //Verificar se o valor retornado está correto
    
      printf("**************************************************************************\n-------------------Menu 3 de 3 - Adicional de Limpeza---------------------\n");
      float adicional = adicional_limpeza();
      printf("O valor retornado foi de %g\n", adicional); //Verificar se o valor retornado está correto
    
      float resultado=metragem*tipo+adicional;
      printf("O valor final foi de R$%g\n", resultado);
    
      return 0;
    
    }

     

    • Obrigado 1
  7. Vou reescrever o programa com as correções da maneira que entendi, já mando.

    @arfneto Ficou assim: 

    #include <stdio.h>
    #include <stdlib.h>
    
    int adicional_limpeza(), adicional;
    float metragem_limpeza(), tipo_limpeza(), metragem, tipo, resultado;
     
    int main() {
      
      printf("Bem-vindo ao programa de Serviços de Limpeza CleanUp.\n**************************************************************************\n----------------------Menu 1 de 3 - Metragem Limpeza----------------------\n");
      float metragem = metragem_limpeza();
      printf("O valor retornado foi de %g\n", metragem); //Verificar se o valor retornado está correto//
    
      printf("**************************************************************************\n------------------------Menu 2 de 3 - Tipo Limpeza------------------------\n");
      float tipo = tipo_limpeza();
      printf("O valor retornado foi de %g\n", tipo); //Verificar se o valor retornado está correto//
    
      printf("**************************************************************************\n-------------------Menu 3 de 3 - Adicional de Limpeza---------------------\n");
      int adicional = adicional_limpeza();
      printf("O valor retornado foi de %d\n", adicional); //Verificar se o valor retornado está correto//
    
      float resultado=metragem*tipo+adicional;
      printf("O valor final foi de R$%g\n", resultado);
    
    }
    
    
    //Função abaixo que retorna o valor da metragem da limpeza (metragem_limpeza) //
    float metragem_limpeza() {
      float met;
      
      while(1) {
        printf("Entre com a metragem da casa: \n");
        scanf("%f", &met);
        
        if (met<30 || met>700) {
          printf("Não aceitamos casas com menos de 30m² ou mais de 700m².\n");
          continue;
        }
    
        else if (met<=300) {
          return 60+0.3*met;
          
        }
        else if (met<=700) {
          return 120+0.5*met;
          
        }
        
      }
      
    
      
    }
    
    
    //Função abaixo que retorna o valor do tipo de limpeza (tipo_limpeza) //
    float tipo_limpeza() {
      char tip;
      printf("Entre com o tipo de limpeza:\nBásica (B): Aplicada para sujeira semanais ou quinzenais.\nCompleta (C): (+30 p/ cento): Indicada para sujeiras antigas ou não rotineiras.\n");
      scanf(" %c", &tip);
      if (tip=='B') {
        return 1.0;
      }
      else if (tip=='C') {
        return 1.3;
      }
      
    }
    
    
    //Função abaixo que retorna o valor de algum adicional (adicional_limpeza) //
    int adicional_limpeza() {
      int adi, add;
      adi=0;
      printf("Deseja mais algum adicional?\n0 - Não desejo mais nada. Encerrar.\n1 - Passar 10 peças de roupas. R$10,00\n2 - Limpeza de 1 Forno/Microondas. R$12,00\n3 - Limpeza de 1 Geladeira/Freezer. R$20,00\n");
      while(1) {
      printf("Digite o valor: \n");
      scanf("%d", &add);
      if (add==0) {
        adi = adi+0;
        break;
      }
      else if (add==1) {
        adi = adi+10;
        continue;
      }
      else if (add==2) {
        adi = adi+12;
        continue;
      }
      else if (add==3) {
        adi = adi+20;
        continue;
      }
        
      }
    
      return adi;
      
    
    }

     

    • Curtir 1
  8. @arfneto

    21 minutos atrás, arfneto disse:
    float metragem = metragem_limpeza();

    Eu apaguei aquela linha ''float metragem, tipo, adicional, resultado;'', porém agora a função metragem_limpeza() não é executada. o que fiz de errado? Segue a parte do código:

    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main() {
    
      printf("Bem-vindo ao programa de Serviços de Limpeza CleanUp.\n**************************************************************************\n----------------------Menu 1 de 3 - Metragem Limpeza----------------------\n");
      float metragem = metragem_limpeza();

     

    • Curtir 1
  9. #include <stdio.h>
    #include <stdlib.h>
    
    /*Função principal, responsável por chamar as demais funções abaixo*/
    int main() {
      float metragem, tipo, adicional, resultado;
      
      printf("Bem-vindo ao programa de Serviços de Limpeza CleanUp.\n");
      printf ("**************************************************************************\n");
      printf ("----------------------Menu 1 de 3 - Metragem Limpeza----------------------\n");
      int metragem_limpeza();
      metragem = metragem_limpeza();
    
      printf("**************************************************************************\n");
      printf ("----------------------Menu 2 de 3 - Tipo Limpeza----------------------\n");
      float tipo_limpeza();
      tipo = tipo_limpeza();
    
      printf("**************************************************************************\n");
      printf("-------------------Menu 3 de 3 - Adicional de Limpeza---------------------\n");
      int adicional_limpeza();
      adicional = adicional_limpeza();
    
      resultado=metragem*tipo+adicional;
      printf("O valor final foi de R$%g", resultado);
    
    }
    
    
    /*Função abaixo que calcula a metragem da limpeza (metragem_limpeza) */
    int metragem_limpeza() {
      float met;
      
      while(1) {
        printf("Entre com a metragem da casa: \n");
        scanf("%f", &met);
        if (met<30) {
          printf("Não aceitamos casas com menos de 30m² ou mais de 700m².\n");
          continue;
        }
        else if (met>700) {
          printf("Não aceitamos casas com menos de 30m² ou mais de 700m².\n");
          continue;
        }
        else if (met<=300) {
          return 60+0.3*met;
          
        }
        else if (met<=700) {
          return 120+0.5*met;
          
        }
        
      }
      
    
      
    }
    
    
    /*Função abaixo que atribui o tipo da limpeza (tipo_limpeza) */
    float tipo_limpeza() {
      char tip;
      printf("Entre com o tipo de limpeza:\n");
      printf("Básica (B): Aplicada para sujeira semanais ou quinzenais.\n");
      printf("Completa (C): (+30 p/ cento): Indicada para sujeiras antigas ou não rotineiras.\n");
      scanf(" %c", &tip);
      if (tip=='B') {
        return 1.0;
      }
      else if (tip=='C') {
        return 1.3;
      }
      
    }
    
    
    /*Função abaixo que calcula algum adicional (adicional_limpeza) */
    int adicional_limpeza() {
      int adi, add;
      adi=0;
      printf("Deseja mais algum adicional?\n");
      printf("0 - Não desejo mais nada. Encerrar.\n");
      printf("1 - Passar 10 peças de roupas. R$10,00\n");
      printf("2 - Limpeza de 1 Forno/Microondas. R$12,00\n");
      printf("3 - Limpeza de 1 Geladeira/Freezer. R$20,00\n");
      while(1) {
      printf("Digite o valor: \n");
      scanf("%d", &add);
      if (add==0) {
        adi = adi+0;
        break;
      }
      else if (add==1) {
        adi = adi+10;
        continue;
      }
      else if (add==2) {
        adi = adi+12;
        continue;
      }
      else if (add==3) {
        adi = adi+20;
        continue;
      }
        
      }
    
      return adi;
      
    
    }

    Sou bem iniciante em C, eu gostaria que vcs opinassem sobre o que posso melhorar em meu programa. Ele foi desenvolvido originalmente em Python que fiz pra um trabalho da faculdade, agora passei pra C.  

    • Curtir 1
  10. A trava do PCIe da minha quebrou, e com isso a placa de vídeo não fica totalmente firme, e com isso, o PC não dá vídeo no primeiro boot, o forçando a desligar pelo botão, aí sim na segunda tentativa, ele liga e funciona normalmente. Eu queria saber qual o valor máximo que compensaria pra trocar o PCIE dessa placa-mãe e se eu fosse comprar outra, qual o valor que eu deveria pagar. 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!