Vous êtes sur la page 1sur 16

CENTRO FEDERAL DE EDUCAO TECNOLGICA DE

MINAS GERAIS
CURSO TECNICO EM ELETROELETRONICA

CALCULADORA

Disciplina: Introduo
Programao

Professor: Enderson
Neves Cruz

Ramilton Furtado Silva Melo


Luiz Henrique Alvarenga
2015
SUMRIO

Introduo 3
Descrio do problema 4
Descrio da soluo proposta 5
Cdigo fonte 6
Fluxograma 11
Concluses 14
Referncias 15
3

Introduo

Criao de um programa de uma calculadora virtual que permita a


utilizao at mesmo por usurios mais leigos.
Calculadora com operao de soma, subtrao, multiplicao,
diviso, resto da diviso, potncia e radiciao de ndice 2 e 3.
Elaborao um algoritmo simples e funcional dividido em funes de
fcil manuteno e modificao,
4

Descrio do problema

1) O programa deve apresentar a opo de usar ou no a


calculadora, indicar caso o usurio digite uma opo invlida.
2) Apresentar um menu explicativo informando o modo de uso do
programa.
3) O programa irar comparar o sinal da operao digitada e realizar o
calculo de acordo com o sinal.
4) Caso o usurio digite uma operao invalida o programa deve
comunicar ao usurio e ofertar nova opo de continuar
calculando Imprimir a operao realizada e o resultado.

Descrio da soluo proposta


5

Programa simples de fcil manuteno e modificao, dividido em 3 funes:

Funo principal:
Oferece ao usurio a opo de usar ou no a calculadora, utiliza a
Funo menu_opcoes para imprimir na tela as opes das operaes.
O usurio digita os valores a ser calculado e o caractere do sinal da
operao que ele deseja realizar.
Envia para funo calculo os valores digitados e o caractere, e
imprime na tela do usurio o calculo realizado e o resultado.
Funo composta por uma estrutura de repetio WHILE que permite
controlar a opo do usurio quando desejar encerrar o uso do programa,
estruturas condicionais IF, ELSE para controlar a opo de uso se valida
ou no
Funo menu_opcoes:
Imprimi na tela do usurio a Inicializao do programa e o menu de
operaes.
Funo calculo:
Recebe da funo principal dois nmeros reais, salva nas variveis
num1 e num2 do tipo float e um caractere na varivel oper do tipo char.
Compara o caractere digitado se algum do menu de opes e
imprime o resultado da operao na tela do usurio.Dependendo do
caractere digitado pelo usurio a funo imprime um resultado diferente.
Funo composta por estrutura condicional SWITCH CASE que
controla o resultado a ser impresso de acordo com o caractere digitado,
caso o usurio digite um caractere invalido imprime na tela a mensagem
opo invalida; composta tambm por estrutura condicional, IF ELSE IF,
ELSE que controla se o usurio digitar valores invlidos, como dividendo
igual a zero ou raiz de ndice par de nmeros negativos, tambm usada
para controlar qual o ndice da raiz a ser calculada.
6

Cdigo fonte:

//bibliotecas do programa
#include <stdio.h>
#include <math.h>

/*
------------------------------------------------------
CALCULADORA-----------------------------------------------------
Programa Calculadora simples realiza algumas operaes bsicas:
Soma, subtrao, multiplicao, diviso, resto da diviso, potncia
raiz quadrada e raiz cbica.
Programa possui opo de usar ou no a calculadora, possui menu
de opes das operaes a ser realizada.
Dividido em 3 funes: Funo principal, funo menu_opcoes,
funo calculo.

Funo principal:
Recebe do usurio a opo de usar ou no a calculadora, utiliza a
funo menu_opcoes para imprimir na tela as opes das operaes.
Recebe do usurio os valores a ser calculado e o caractere do sinal
da operao que ele deseja realizar.
Envia para funo calculo os valores digitados e o caractere e
imprime na tela do usurio o calculo realizado e o resultado.

Funo menu_opcoes:
Imprimi na tela do usurio a Inicializao do programa e o menu de
operaes.

Funo calculo:
Recebe da funo principal dois nmeros reais, salva nas variveis
num1 e num2 do tipo float e um caractere na varivel oper do tipo char.
7

Compara o caractere e imprime o resultado do calculo; Conforme


caractere digitado realiza um calculo diferente*/

void menu_opcoes()//Funo menu_opoes


{
printf("\n\n---C A L C U L A D O R A---\n\n");
printf("\nOperacoes disponiveis\n");
printf("\n' + ' : soma\n");
printf("\n' - ' : subtracao\n");
printf("\n' * ' : multiplicacao\n");
printf("\n' / ' : divisao\n");
printf("\n' %% ' : resto da divisao\n");
printf("\n' ^ ' : potencia\n");
printf("\n' r ' : raiz quadrada e cubica \n");
printf("\nDigite a expressao na forma: numero1 operador numero2\n");
printf("\nExemplos: 1 + 1 , 2.1 * 3.1 , 2^2 , 4r2 ,4r3 \n");
}

void calculo(float num1,char oper,float num2)//Funo calculo


{
switch(oper)//compara o caracter oper
{
case '+':
printf("%.2f\n\n", num1 + num2);
break;

case '-':
printf("%.2f\n\n", num1 - num2);
break;

case '*':
printf("%.2f\n\n", num1 * num2);
break;
8

case '/':
if(num2 != 0)//Compara se o dividendo diferente de 0
printf("%.2f\n\n", num1 / num2);
else
printf("\n\nNao existe divisao por 0\n\n");
break;

case '%':
printf("%d\n\n", (int)num1 % (int)num2);
break;

case '^':
printf("%.2f\n\n", pow(num1,num2));
break;

case 'r':
if(num2==2)//compara se o indicie da raiz igual a 2
{
if(num1>0)//compara se o radicando positivo
printf("%.2f\n\n", sqrt(num1));
else
printf("\n\nNao existe raiz de indice par de numeros negativos!\n\n");
}
else if(num2==3)//compara se o indice da raiz igual a 3
printf("%.2f\n\n",cbrt(num1));

else
printf("\n\nOpcao invalida!\n\n");
break;
default:
printf("\n\n Operador invalido \n\n ");
}
}
9

int main()//Funo principal


{
//Definio das variveis locais da funo principal
int liga;
float x, y;
char operador;

//imprime as opo de uso ao usurio e recebe a opo que o usurio


deseja
printf("Deseja Usar a calculadora?\n ");
printf("\nDigite:\n 1- para usar\n 0- para sair\n");
scanf("%d",&liga);

//Enquanto o usurio digitar algo diferente de 0 realiza os comandos


abaixo, caso o usurio digite 0 fecha a calculadora
while(liga!=0)
{
//compara se o usurio digitou 1 e realiza os comandos abaixo
if(liga==1)
{
menu_opcoes();//Chama a funo menu_opcoes para a funo
principal

//Recebe do teclado dois valores e um caractere e salva nas variveis


scanf("%f", &x);
scanf(" %c",&operador);
scanf("%f", &y);

//imprime na tela do usurio o calculo realizado e o resultado


printf("\n\nCalculando: %.2f %c %.2f = ",x,operador,y);
calculo(x,operador,y);//Chama a funo calculo que imprime o
resultado na tela do usurio
10

//opo de continuar usando a calculadora


printf("\n\nDeseja continuar usando a calculadora?\n\n ");
printf("\n\nDigite:\n 1- para usar\n 0- para sair\n\n");
scanf("%d",&liga);//recebe a opo digitado

}
//Informa opo invalida, caso usurio digite opo invalida e oferece
nova oportunidade de opo
else
{
printf("\n\nOpcao invalida!\n\n");
printf("\n\nDeseja Usar a calculadora?\n\n ");
printf("\n\nDigite:\n 1- para usar\n 0- para sair\n\n");
scanf("%d",&liga);
}
}
//Imprime fim do programa
printf("\n\n Fechando calculadora!\n \n");

system("pause");
return 0;
}
11

Fluxograma
Inicio

Deseja Usar a calculadora?


Digite:1- para usar 0- para sair

Liga

liga!=0

liga==1

---C A L C U L A D O R A---
Operaes disponveis
' + ' soma
' - ' subtrao
' * ' multiplicao
' / ' diviso
' %% ' resto da diviso
' ^ ' potencia
' r ' raiz quadrada e cbica
Digite a expresso na forma: numero1 operador numero2;
Exemplos: 1 + 1 , 2.1 * 3.1 , 2^2 , 4r2 ,4r3

X, operador, y

Calculando: x operador y

CASO +

Num1+num2
12

Caso

Num1 num2

Caso *

Num1 * num2

Caso /

Se num2 != 0

Num1 / num1

No existe diviso por 0

Caso %

Num1 % num2

Caso ^

Pow(num1,num2)

Caso r
13

num2==2

num1>0

sqrt(num1)

No existe raiz de ndice par de nmeros negativos!

num2==3

cbrt(num1)

Opo invalida

Operador invalido

Deseja continuar usando a calculadora?


1- para usar 0- para sair

liga

Opo invalida!
Deseja Usar a calculadora?
1- para usar 0- para sair

liga

Fechando calculadora!

Fim

Concluses
14

Criao de um programa que simula uma calculadora virtual, para


isso foi elaborado um algoritmo com diversos comandos, com a finalidade
de realizar operaes matemticas bsicas de uma calculadora, funcional,
de fcil uso, manuteno e modificao caso deseje adicionar novas
funes ao programa.
Conclumos que com o aprofundamento dos conhecimentos
adquiridos possvel a elaborao de programas mais complexos ou ate
mesmo adicionar novas funes a calculadora.

Referncias
15

Apostila Introduo ao C CEFET-MG Rosngela Ftima da Silva

Caderno de contedo da disciplina Programao 2 Snia Virginia Alves Frana

Vous aimerez peut-être aussi