Anda di halaman 1dari 11

ATPS ANHANGUERA

PROGRAMAO ESTRUTURADA 1

ETAPA 1, 2, 3 e 4

PROFESSOR: FERNANDO CAMARGO

ALUNO: RODRIGO SANTOS VIEIRA RA 3730730123

JOINVILLE MARO / 2014

Produo Acadmica A calculadora ser escrita em linguagem de programao C, que atender as especificaes descritas no ATPS e estar apta para realizar os clculos necessrios para o funcionamento. A calculadora realizar as operaes de soma, subtrao, multiplicao, diviso, exponenciao, raiz quadrado e porcentagem. Na tela principal sero exibidas as funes que a calculadora esta programa para executar, onde o usurio dever informar o operador e os valores para o clculo. Na tela ser exibido do resultado da operao e logo abaixo o usurio poder escolher fazer outra operao ou digitar o comando para sair, finalizando o programa. Abaixo ser listado em portugus estruturado o cdigo que foi atribudo calculadora para permitir a execuo do programa conforme descreve o ATPS. O cdigo facilita a compreenso para os iniciantes na programao. //Bibliotecas stdio.h // incio do programa Incio; //Declarao de variveis inteiro i, n, cont; flutuante n1=0, n2=0, tot=0; caracter resposta = 's', op; // inicia varivel resposta como o valor s faa enquanto (resposta = s);//Condio para a calculadora mostrar suas operaes Escreva ( CALCULADORA ); Escreva (Escolha o operador); Leia (operador); Escolha (operador) ; //Inicia variveis que no podem ter valores nulos para o calculo das operaes; n1 = 0; n2 = 0; tot = 0; cont = 0; n = 0; i = 0; Caso +: escreva(Digite um numero: ); leia(n1); escreva( Digite outro numero: ); leia(n2);

tot=n1+n2; // soma dos valores informados e acumula na varivel tot escreva (n1, op, n2, tot); // valor n1 , operao escolhida, valor n2 valor em tot pare Caso -: escreva(Digite um numero: ); leia(n1); escreva( Digite outro numero: ); leia(n2); tot=n1-n2; // substrao dos valores informados e acumula na varivel tot escreva (n1, op, n2, tot); // valor n1 , operao escolhida, valor n2 valor em tot pare Caso /: escreva(Digite um numero: ); leia(n1); escreva( Digite outro numero: ); leia(n2); se (n2 == 0) // Se o valor da varivel n2 for zero entra nessa condio escreva(Erro na divisao, o segundo numero deve ser diferente de 0!); se no { tot=n1/n2; // diviso dos valores informados e acumula na varivel tot escreva( n1, op, n2, tot); // valor n1, operao, valor n2 valor em tot } pare Caso *: escreva(Digite um numero: ); leia(n1); escreva( Digite outro numero: ); leia(n2); tot=n1*n2; // multiplicao dos valores informados e acumula na varivel tot escreva (n1, op, n2, tot); // valor n1 , operao escolhida, valor n2 valor em tot pare Caso e: Caso E: //Considera a maiscula ou minscula escreva(Digite um numero: ); leia(n1); escreva( Digite outro numero EXPOENTE: ); leia(n2); tot = pow (n1,n2); // usando a funo pow da biblioteca math escreva(O exponencial n2 de n1: tot); pare; Caso R: Caso r: //Considera a maiscula ou minscula escreva( Digite um numero para raiz quadrada: ); leia(n1); tot = sqrt (n1); // usando a funo sqrt da biblioteca math

escreva (Raiz quadrada de n1 : tot); pare; Caso P: Caso p: escreva(Digite um numero: ); leia(n1); escreva( Digite a PORCENTAGEM: ); leia(n2); tot = n1*(n2/100); escreva(n2 % de n1 = tot); pare; Caso Contrario Escreva ( Nenhum operador vlido selecionado) Fim Escolha Fim. Programa encerrado. Relatrio 2 Comando system(): O comando System permite utilizar as opes que o MSDos possui no momento da execuo, como alterar as cores do fundo de tela, das letras, pausar, limpar a tela, mudar o titulo da janela, entre outros. So geralmente utilizados para deixar a interface do programa mais amigvel. Para utilizao necessrio incluir a biblioteca stdio.h disponvel na pasta include do programa. Abaixo trs instrues do comando system(): System (atr) Color: Altera as cores de fundo da tela e das letras. Os atributos de cor so especificados por dois dgitos hexadecimais. System (atr) Pause: Executa uma pausa na execuo do programa ate ser pressionada uma tecla qualquer e apresenta a mensagem Pressione qualquer tecla para continuar.... System (atr) Title: Altera o titulo da janela do programa, caso seja omitido o titulo ser o endereo do arquivo executvel gerado. Relatrio 3 Aplicativo bsico: #include<stdio.h> #include<stdlib.h> #include <conio.h>

main(){ int i, n, cont; float n1=0, n2=0, tot=0; double exp=0; char resposta = 's', op; printf("\n"); while (resposta == 's' || resposta == 'S'){ printf(" CALCULADORA \n\n"); printf(" (+) - Soma \n"); printf(" (-) - Subtracao \n"); printf(" (*) - Multiplicacao \n"); printf(" (/) - Divisao \n"); printf(" (S) - Sair \n"); printf("\n Digite a opcao que deseja realizar: "); scanf(" %c", &op); n1 = 0; n2 = 0; tot = 0; cont = 0; n = 0; i = 0; switch (op) { case '+': printf("\n Digite um numero: "); scanf("%f", &n1); printf("\n Digite outro numero: "); scanf("%f", &n2); tot=n1+n2; printf("\n %.1f %c %.1f = %.1f", n1, op, n2, tot); break; case '-': printf("\n Digite um numero: "); scanf("%f", &n1); printf("\n Digite outro numero: "); scanf("%f", &n2); tot=n1-n2; printf("\n %.1f %c %.1f = %.1f", n1, op, n2, tot); break; case '*': printf("\n Digite um numero: "); scanf("%f", &n1); printf("\n Digite um numero: "); scanf("%f", &n2);

tot=n1*n2; printf("\n %.1f %c %.1f = %.1f", n1, op, n2, tot); break; case '/': printf("\n Digite um numero: "); scanf("%f", &n1); printf("\n Digite um numero: "); scanf("%f", &n2); if(n2 == 0) printf("\n Erro na divisao, o segundo numero deve ser diferente de 0!"); else { tot=n1/n2; printf("\n %.1f %c %.1f = %.1f", n1, op, n2, tot); } break; case 'S': case 's': break; default: printf("\n Operador invalido!!"); } if(op != 's' && op != 'S') { printf("\n\nDeseja fazer outra operacao? [S/N] "); scanf(" %c", & resposta); while (resposta != 'S' && resposta != 's' && resposta != 'N' && resposta != 'n') { printf("Digite apenas S ou N."); printf("\n\nDeseja fazer outra operacao? [S/N] "); scanf(" %c", & resposta); } } else { resposta = 'n'; } } } Relatrio 4 Algoritmos Avanados: #include<stdio.h> #include<stdlib.h> #include <conio.h> #include <math.h> main(){ int i, n, cont;

float n1=0, n2=0, tot=0; double exp=0; char resposta = 's', op; system("title CALCULADORA ATPS "); // Apresenta o Titulo na janela system("color 1E"); // Cor do programa fica em azul printf("\n"); while (resposta == 's' || resposta == 'S'){ printf(" CALCULADORA \n\n"); printf(" (+) - Soma \n"); printf(" (-) - Subtracao \n"); printf(" (*) - Multiplicacao \n"); printf(" (/) - Divisao \n"); printf(" (E) - Exponencial \n"); printf(" (R) - Raiz Quadrada \n"); printf(" (P) - Porcentagem \n"); printf(" (S) - Sair \n"); printf("\n Digite a opcao que deseja realizar: "); scanf(" %c", &op); n1 = 0; n2 = 0; tot = 0; cont = 0; n = 0; i = 0; switch (op){ case '+': printf("\n Digite um numero: "); scanf("%f", &n1); printf("\n Digite outro numero: "); scanf("%f", &n2); tot=n1+n2; printf("\n %.1f %c %.1f = %.1f", n1, op, n2, tot); break; case '-': printf("\n Digite um numero: "); scanf("%f", &n1); printf("\n Digite outro numero: "); scanf("%f", &n2); tot=n1-n2; printf("\n %.1f %c %.1f = %.1f", n1, op, n2, tot); break; case '*': printf("\n Digite um numero: "); scanf("%f", &n1); printf("\n Digite um numero: "); scanf("%f", &n2);

tot=n1*n2; printf("\n %.1f %c %.1f = %.1f", n1, op, n2, tot); break; case '/': printf("\n Digite um numero: "); scanf("%f", &n1); printf("\n Digite um numero: "); scanf("%f", &n2); if(n2 == 0) printf("\n Erro na divisao, o segundo numero deve ser diferente de 0!"); else { tot=n1/n2; printf("\n %.1f %c %.1f = %.1f", n1, op, n2, tot); } break; case 'E': case 'e': printf("\n Digite o numero BASE: "); scanf("%f", &n1); printf("\n Digite o numero do EXPOENTE: "); scanf("%f", &n2); exp = pow (n1,n2); printf("\n %.1f ^ %.1f = %.1g", n1, n2, exp); break; case 'P': case 'p': printf("\n Digite um numero: "); scanf("%f", &n1); printf("\n Digite a porcentagem: "); scanf("%f", &n2); tot = n1*(n2/100); printf("\n %.1f porcento de %.1f = %.1f", n2, n1, tot); break; case 'R': case 'r': i = 0; tot = 1; printf("\n Digite um numero para raiz quadrada: "); scanf("%f", &n1); tot = sqrt (n1); printf("\n Raiz quadrada de %f eh %f", n1, tot); break; case 'S': case 's': break; default: printf("\n Operador invalido!!"); } if(op != 's' && op != 'S') { printf("\n\nDeseja fazer outra operacao? [S/N] "); scanf(" %c", & resposta); while (resposta != 'S' && resposta != 's' && resposta != 'N' && resposta != 'n') { printf("Digite apenas S ou N."); printf("\n\nDeseja fazer outra operacao? [S/N] ");

scanf(" %c", & resposta); } } else{ resposta = 'n'; } system("pause"); // Para o sistema e aguarda um comando para continuar system("cls"); // Limpa a tela e volta a tela inicial } } Relatrio 5 Aplicativo Final: TELA INICIAL

USANDO A FUNO SOMA

USANDO A FUNO SUBTRAO

USANDO A FUNO MULTIPLICAO

USANDO A FUNO DIVISO

USANDO A FUNO EXPONENCIAL

USANDO A FUNO RAIZ QUADRADA

USANDO A FUNO PORCENTAGEM