Linguagem C - Exercício: Calculadora (2022)

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ต.ค. 2024

ความคิดเห็น • 37

  • @Debora_Souza
    @Debora_Souza 2 ปีที่แล้ว +3

    Ótima aula! Parabéns Pietro, seus videos tem me ajudado bastante.

  • @lucasdossantos1274
    @lucasdossantos1274 ปีที่แล้ว +2

    Muito legal sua resolução, fiz um trabalho parecido na faculdade, e achei mais prático usar switch case

    • @sete782
      @sete782 ปีที่แล้ว

      Também, mas é interessante como o if é igual regra de 3 na matematica, serve pra quase tudo skksks

    • @cacatua_9
      @cacatua_9 2 หลายเดือนก่อน

      tbm fiz assim

  • @DanielAlves-j1m
    @DanielAlves-j1m ปีที่แล้ว

    Que didática excelente, ganhou um inscrito. Obrigado pelo conteúdo.

  • @tiagofeliciano7859
    @tiagofeliciano7859 2 ปีที่แล้ว +1

    Top Professor Pietro boa de mais a aula ....

  • @jailsonathayde74
    @jailsonathayde74 2 ปีที่แล้ว +1

    Professor, ideal seria quebrar o numero quando apertar o sinal e começar na segunda variável quando reiniciar a digitar números(como se faz na calculadora comum). Já pensei em alguns meios, mas está complicado fazer.

  • @Henry.Erasmo_
    @Henry.Erasmo_ 2 ปีที่แล้ว +1

    Ótimo professor!!!!

  • @cacatua_9
    @cacatua_9 2 หลายเดือนก่อน +1

    switch casen seria entre aspas mais facil?

  • @antonioneto2729
    @antonioneto2729 ปีที่แล้ว +1

    entre if e switch....qual seria o mais correto nesse caso e pq? ou qual seria a melhor aplicação? otimo video, parabéns.

    • @LeonardoSilva-ou2cp
      @LeonardoSilva-ou2cp ปีที่แล้ว +1

      creio que não exista uma "Melhor aplicação", pois ambos vão realizar as contas do mesmo jeito, a diferença é que a estrutura do código pode ficar mais organizada visualmente ou não

    • @lucasdossantos1274
      @lucasdossantos1274 ปีที่แล้ว

      Em caso de menus, como por exemplo esse das operações é sempre interessante e também boa prática você usar switch case.

  • @rodrigocitadin4133
    @rodrigocitadin4133 3 หลายเดือนก่อน +1

    /*Desenvolva um algoritmo que simule uma calculadora.
    Você deve dar a opção de o usuário esclher entre:
    1- somar
    2- subtrair
    3- multiplicar
    4- dividir
    O usuário só conseguirá processar dois numeros inteiros por vez.*/
    #include
    #include
    #include
    int main()
    {
    #define enunciado "|CALCULADORA|"
    setlocale(LC_ALL, "Portuguese");
    int escolha, a, b, soma, sub, mult, div;
    printf("%s.
    ", enunciado);
    printf("Digite 1 para somar.
    Digite 2 para subtrair.
    Digite 3 para multiplicar.
    Digite 4 para divisão.
    ");
    scanf("%d", &escolha);
    while(escolha >4 || escolha

  • @akamanah8437
    @akamanah8437 ปีที่แล้ว +4

    Minha Solução
    #include
    #include
    int main(void) {
    setlocale(LC_ALL, "Portuguese");
    int op = 0;
    float n1 = 0, n2 = 0;
    printf("[------Calculador------]
    ");
    printf("========================
    ");
    printf("[ 1 ] Somar.
    ");
    printf("[ 2 ] Subtrair.
    ");
    printf("[ 3 ] Multiplicar.
    ");
    printf("[ 4 ] Dividir.
    ");
    printf("========================
    ");
    printf("Digite uma opção: ");
    scanf("%d", &op);
    printf("========================
    ");
    if ((op == 1) || (op == 2) || (op == 3) || (op == 4)) {
    printf("Digite 1.° Valor: ");
    scanf("%f", &n1);
    printf("Digite 2.° Valor: ");
    scanf("%f", &n2);
    printf("========================
    ");
    switch (op) {
    case 1:
    printf("Soma: %f
    ", n1 + n2);
    break;
    case 2:
    printf("Subtração: %f
    ", n1 - n2);
    break;
    case 3:
    printf("Multiplição: %f
    ", n1 * n2);
    break;
    case 4:
    if (n2 != 0) {
    printf("Divisão: %f
    ", n1 / n2);
    } else {
    printf("Divição por Zero.
    ");
    }
    break;
    }
    } else {
    printf("Opção Invalida.
    ");
    }
    return 0;
    }

    • @Puckbs
      @Puckbs 2 หลายเดือนก่อน

      a minha ficou assim
      #include
      #include
      #include
      int main(void)
      {
      string op;
      float n1, n2, resul;
      do
      {
      op = get_string("Escolha uma operação: (soma, subtração, divisão, multiplicação) ");
      }
      while (strcmp(op, "soma") != 0 && strcmp(op, "subtração") != 0 && strcmp(op, "divisão") != 0 && strcmp(op, "multiplicação") != 0);

      n1 = get_float("Digite o primeiro número: ");
      n2 = get_float("Digite o segundo número: ");
      if(strcmp(op, "soma") == 0)
      {
      resul = n1 + n2;
      printf("Resultado %f
      ", resul);
      }
      else if(strcmp(op, "multiplicação") == 0)
      {
      resul = n1 * n2;
      printf("Resultado %f
      ", resul);
      }
      else if(strcmp(op, "subtração") == 0)
      {
      resul = n1 - n2;
      printf("Resultado %f
      ", resul);
      }
      else if(strcmp(op, "divisão") == 0)
      {
      if(n2 != 0)
      {
      resul = n1 / n2;
      printf("Resultado %f
      ", resul);
      }
      else
      {
      printf("Não seja burro, 0 não divide
      ");
      }
      }
      else
      {
      printf("Operação inválida
      ");
      }
      }

  • @rachidandrade2558
    @rachidandrade2558 2 ปีที่แล้ว

    Exelente vídeo tira uma dúvida e possível andar com o ponto pra esquerda? Explo 1900.0 = 1.9 estou fazendo um projeto só que preciso andar com o ponto pra esquerda

  • @wellgoiano
    @wellgoiano ปีที่แล้ว

    Pietro, desconsidere minha pergunta anterior pois descobri o erro e consertei, valeu!!!!

    • @profpietromartins
      @profpietromartins  ปีที่แล้ว

      Conta pra nós, o que era o erro, e como corrigiu? Obrigado, meu caro!

    • @wellgoiano
      @wellgoiano ปีที่แล้ว +1

      @@profpietromartins pode acontecer de o programador terminar de codificar o algorítmo e conferir se há algum erro e aparecer a mensagem: "[Warning] null character(s) ignored". Isso significa que pode haver uma linha de código preenchida apenas com espaços em branco no final do código. Nesse caso, deve-se posicionar o cursor no fim do código no fechamento da última chave, pressionar e tecla shift e a tecla da seta pra direita até selecionar todo o espaço em branco e depois deletar e pronto está resolvido o problema. parece simples, mas tive que "transpirar" pra descobrir, porque o código está perfeito!!!

  • @wilmamoamba3234
    @wilmamoamba3234 2 ปีที่แล้ว

    Interessante, tenho um trabalho da faculdade que pede algo semelhante.

  • @brunnoshulte1887
    @brunnoshulte1887 ปีที่แล้ว +1

    engracado, fiz completamente diferente
    int main(int argc, char *argv[]) {

    int cal;
    int a, b, c;
    int a1, b1, c1;
    int a2, b2, c2;
    int a3, b3, c3;
    printf("==Selecione uma opcao==
    ");
    printf("1-somar, 2-subtrair, 3-multiplicar, 4-dividir
    ");
    scanf("%d", & cal);
    switch(cal){
    case 1:
    printf("Digite o primeiro valor:
    ");
    scanf("%d", &a);
    printf("Digite o primeiro segundo:
    ");
    scanf("%d", &b);
    c = a + b;
    printf("%d
    ", c);
    break;
    case 2:
    printf("Digite o primeiro valor:
    ");
    scanf("%d", &a2);
    printf("Digite o primeiro segundo:
    ");
    scanf("%d", &b2);
    c2 = a2 - b2;
    printf("%d
    ", c2);
    break;
    case 3:
    printf("Digite o primeiro valor:
    ");
    scanf("%d", &a3);
    printf("Digite o primeiro segundo:
    ");
    scanf("%d", &b3);
    c3 = a3 * b3;
    printf("%d
    ", c3);
    break;
    case 4:
    printf("Digite o primeiro valor:
    ");
    scanf("%d", & a1);
    printf("Digite o primeiro segundo:
    ");
    scanf("%d", &b1);
    c1 = a1 / b1;
    printf("%d
    ", c1);
    break;
    }
    return 0;
    }

    • @profpietromartins
      @profpietromartins  ปีที่แล้ว +1

      Se deu certo, tá valendo.

    • @seehigor4338
      @seehigor4338 4 หลายเดือนก่อน

      o meu ficou assim
      #include
      #include
      #include
      int main(int argc, char *argv[]) {
      setlocale(LC_ALL,"portuguese");
      int op, n1, n2, v;
      do{
      printf("digite 1 Para somar;
      Digite 2 para subtrair;
      Digite 3 para multiplicar;
      Digite 4 para dividir;
      ");
      scanf("%d", &op);
      printf("insira o primeiro numero:
      ");
      scanf("%d", &n1);
      printf("Digite o segundo numero:
      ");
      scanf("%d", &n2);
      switch(op){
      case 1:
      printf("Resultado da somar: %d
      ", n1+n2);
      break;

      case 2:
      printf("o resultado da subtração é: %d
      ", n1-n2);
      break;

      case 3:
      printf("O resultado da multiplicação é: %d
      ", n1*n2);
      break;

      case 4:
      if(n2!=0){

      printf("O resultado da divisão é: %d
      ", n1/n2);
      } else{
      printf("Erro: divisão por zero
      ");
      }
      break;
      default:
      printf("Opção invalida
      ");


      }

      printf("digite 1 para voltar;
      Digite 2 para encerrar o programa;
      ");
      scanf("%d", &v);
      system("cls");
      if(v==2){
      printf("----------------programa encerrado!------------------------");
      }

      }while(v==1);
      if(v>2 || v

  • @wellgoiano
    @wellgoiano ปีที่แล้ว

    Pietro, na compilação do meu programa está aparecendo o seguinte erro: "[Warning] null character(s) ignored" o que pode estar acontecendo??

  • @vivianysilva7837
    @vivianysilva7837 ปีที่แล้ว

    como eu faço para deixar a pessoa escolher quantos números ela quer fazer a opção?

    • @luansilva4567
      @luansilva4567 10 หลายเดือนก่อน

      talvez com vetor

  • @ShakalDk
    @ShakalDk ปีที่แล้ว

    não quero perguntar como deve ser tirar esses decimais 😅

  • @playerzudoo
    @playerzudoo ปีที่แล้ว

    Uma duvida, fiz como o sr no replit mas diz que switch não lê float nem %f, como devo fazer? 😢 não entendi

    • @janssenbatista
      @janssenbatista 8 หลายเดือนก่อน +1

      O valor de "op" tem que ser do tipo int

    • @feijao9641
      @feijao9641 7 หลายเดือนก่อน +1

      Sim ai o restante vai ser tipo float

  • @sete782
    @sete782 ปีที่แล้ว

    Adicionei um
    if(op >= 5){
    printf("Você so pode digitar valores de 1 a 4
    ");
    } logo abaixo dos printf, para caso o usuario digitar um valor fora do pedido ele receber uma mensagem.

  • @seehigor4338
    @seehigor4338 4 หลายเดือนก่อน

    o meu ficou assim
    #include
    #include
    #include
    int main(int argc, char *argv[]) {
    setlocale(LC_ALL,"portuguese");
    int op, n1, n2, v;
    do{
    printf("digite 1 Para somar;
    Digite 2 para subtrair;
    Digite 3 para multiplicar;
    Digite 4 para dividir;
    ");
    scanf("%d", &op);
    printf("insira o primeiro numero:
    ");
    scanf("%d", &n1);
    printf("Digite o segundo numero:
    ");
    scanf("%d", &n2);
    switch(op){
    case 1:
    printf("Resultado da somar: %d
    ", n1+n2);
    break;

    case 2:
    printf("o resultado da subtração é: %d
    ", n1-n2);
    break;

    case 3:
    printf("O resultado da multiplicação é: %d
    ", n1*n2);
    break;

    case 4:
    if(n2!=0){

    printf("O resultado da divisão é: %d
    ", n1/n2);
    } else{
    printf("Erro: divisão por zero
    ");
    }
    break;
    default:
    printf("Opção invalida
    ");


    }

    printf("digite 1 para voltar;
    Digite 2 para encerrar o programa;
    ");
    scanf("%d", &v);
    system("cls");
    if(v==2){
    printf("----------------programa encerrado!------------------------");
    }

    }while(v==1);
    if(v>2 || v

  • @rtsbarbieri1982
    @rtsbarbieri1982 ปีที่แล้ว

    novamente, falando q arquivo fonte não compilado
    queria descobrir onde está o problema
    #include
    #include
    int main(int argc, char *argv[]) {
    int op;
    float n1,n2,res;
    printf("Informa o nº da operação que deseja:"
    "1 - Somar"
    "2 - Subtrair"
    "3 - Mulpiplicação"
    "4 - Divisão");
    scanf("%d",&op);
    printf("Insira o 1º nº:");
    scanf("%f",&n1);
    printf("Insira o 2º nº: %f",n2);
    scanf("%f",&n2);
    if (op==1){
    res=n1+n2;
    printf("A soma é %f",res);}
    if (op==2){
    res=n1-n2;
    printf("A subtração é %f",res);}
    if (op==3){
    res=n1*n2;
    printf("A multiplicação é %f",res);}
    if (op==4){
    res=n1/n2;
    printf("A divisão é %f",res);}
    return 0;
    }

    • @akamanah8437
      @akamanah8437 ปีที่แล้ว +1

      O problema está na sintática do primeiro printf

    • @lohanqueiroz1660
      @lohanqueiroz1660 หลายเดือนก่อน

      o meu ta dando o mesmo erro. Como resolveu ?

    • @pablosouza4729
      @pablosouza4729 หลายเดือนก่อน

      @@lohanqueiroz1660 O meu está apresentando o mesmo erro. Além disso, quando eu executo diretamente na pasta, onão aparece o resultado, simplesmente o cmd fecha sem aparecer o valor final.

    • @lohanqueiroz1660
      @lohanqueiroz1660 หลายเดือนก่อน

      @@pablosouza4729 então da uma olhada se vc tem mais de um arquivo Alberto nas abas. Se tiver exclui. Depois verifica se tá tudo correto com ; e {}