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.
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
/*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
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
@@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!!!
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; }
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!------------------------"); }
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.
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!------------------------"); }
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; }
@@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.
Ótima aula! Parabéns Pietro, seus videos tem me ajudado bastante.
Muito legal sua resolução, fiz um trabalho parecido na faculdade, e achei mais prático usar switch case
Também, mas é interessante como o if é igual regra de 3 na matematica, serve pra quase tudo skksks
tbm fiz assim
Que didática excelente, ganhou um inscrito. Obrigado pelo conteúdo.
Top Professor Pietro boa de mais a aula ....
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.
Ótimo professor!!!!
switch casen seria entre aspas mais facil?
entre if e switch....qual seria o mais correto nesse caso e pq? ou qual seria a melhor aplicação? otimo video, parabéns.
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
Em caso de menus, como por exemplo esse das operações é sempre interessante e também boa prática você usar switch case.
/*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
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;
}
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
");
}
}
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
Pietro, desconsidere minha pergunta anterior pois descobri o erro e consertei, valeu!!!!
Conta pra nós, o que era o erro, e como corrigiu? Obrigado, meu caro!
@@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!!!
Interessante, tenho um trabalho da faculdade que pede algo semelhante.
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;
}
Se deu certo, tá valendo.
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
Pietro, na compilação do meu programa está aparecendo o seguinte erro: "[Warning] null character(s) ignored" o que pode estar acontecendo??
como eu faço para deixar a pessoa escolher quantos números ela quer fazer a opção?
talvez com vetor
não quero perguntar como deve ser tirar esses decimais 😅
Uma duvida, fiz como o sr no replit mas diz que switch não lê float nem %f, como devo fazer? 😢 não entendi
O valor de "op" tem que ser do tipo int
Sim ai o restante vai ser tipo float
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.
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
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;
}
O problema está na sintática do primeiro printf
o meu ta dando o mesmo erro. Como resolveu ?
@@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.
@@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 {}