Calculadora
Publicado por Thiago 27/01/2006
[ Hits: 8.885 ]
Uma calculadora simples que implementa o conceito de modularização através de funções. Este conceito é de suma importância, pois C é uma linguagem estruturada e basicamente todos os recursos que nos são disponibilizados por ela são por meio de suas bibliotecas de funções.
/* Programa: CALCULADORA2.C Por: thiagoamm OBS: Programa baseado no fonte do livro Linguagem C (Estudo dirigido), Editora: Érica, Autor: Augusto N.G Manzano */ #include <stdio.h> // Variáveis globais float r,a,b; char tecla; // Protótipos de funções int rotadicao(void); int rotsubtracao(void); int rotmultiplicacao(void); int rotdivisao(void); void entrada(void); void saida(void); // Função principal ou de execução int main() { int opcao = 0; while (opcao != 5) { puts("\n\nMenu Principal\n"); puts("----------------\n\n"); puts("1 - Adicao\n"); puts("2 - Subtracao\n"); puts("3 - Multiplicacao\n"); puts("4 - Divisao\n"); puts("5 - Fim de Programa\n\n"); printf("Escolha uma opcao: "); fflush(stdin); scanf("%d",&opcao); if (opcao != 5) { switch (opcao) { case 1: rotadicao(); break; case 2: rotsubtracao(); break; case 3: rotmultiplicacao(); break; case 4: rotdivisao(); break; default: printf("Opcao invalida - Tecle <Enter>: "); fflush(stdin); while ((tecla = getchar()) != '\r') break; } } } return(0); // retorna 0 para o S.O } void entrada(void) { printf("Informe o valor de A: "); fflush(stdin); scanf("%f",&a); printf("Informe o valor de B: "); fflush(stdin); scanf("%f",&b); return; // Retorna valor indefinido para função chamadora - main() } void saida(void) { printf("\nO resultado entre A e B = %6.2f \n",r); printf("\nTecle <Enter> para acessar o menu: "); fflush(stdin); while ((tecla = getchar()) != '\r') return; } float calculo(float x, float y, char operador) { float resultado; switch (operador) { case '+' : resultado = x + y; break; case '-' : resultado = x - y; break; case '*' : resultado = x * y; break; case '/' : resultado = x / y; break; } return (resultado); } int rotadicao(void) { printf("\n\nRotina de Adicao\n"); printf("------------------\n\n"); entrada(); r = calculo(a,b,'+'); saida(); return(0); } int rotsubtracao(void) { printf("\n\nRotina de Subtracao\n"); printf("---------------------\n\n"); entrada(); r = calculo(a,b,'-'); saida(); return(0); } int rotmultiplicacao(void) { printf("\n\nRotina de Multiplicacao\n"); printf("-------------------------\n\n"); entrada(); r = calculo(a,b,'*'); saida(); return(0); } int rotdivisao(void) { printf("\n\nRotina de Divisao\n"); printf("-------------------\n\n"); entrada(); if (b == 0) { printf("\nErro de divisao\n"); printf("\nTecle <Enter> para acessar o menu: "); fflush(stdin); while ((tecla = getchar()) != '\r') return(0); } else { r = a / b; saida(); } return(0); }
olamundo.c - Primeiro programa
De quantas maneiras pode-se preencher um tabuleiro de xadrez com dominós
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta