ATPS - Programação Estruturada I
-
Upload
jeancarlos -
Category
Documents
-
view
213 -
download
0
description
Transcript of ATPS - Programação Estruturada I
FACULDADE ANHANGUERA DE TAUBATÉ – UNIDADE II
ATIVIDADES PRÁTICAS SUPERVISIONADAS
Programação Estruturada I
2º Bimestre / 2013
Curso: Ciência da Computação
Semestre: 1º e 2º - Turma A – Ano: 2013
1
ETAPA 3.
Passo 4.
Redigir o relatório 4 – Algoritmos Avançados. Contendo a descrição das técnicas utilizadas para realizar as opções: Fatorial, Exponenciação e Raiz quadrada.
Fatorial.
A variável fat é inicializada como valor 1 e recebe-se do usuário o valor a ser calculado (num). Um laço for (), com decremento de 1, inicializa o seu contador (i) com o valor a ser calculado, que será decrementado a cada iteração. Na primeira iteração, a variável fat acumula seu valor atual, que é 1 multiplicado pelo valor da variável i. Nas demais iterações, fat acumula o produto do seu valor atual com o valor de i decrementado, até que i seja igual a 1.
Exponenciação.
Uso da função pow(a,b) da biblioteca <math.h>. É uma double, com a e b; também double. Por usar inteiros, fez uso da conversão (casting), como na figura 5 (A): (int)pow(2,10), fazendo uso da variável tipo “double”.
Raiz quadrada.
Uso da função sqrt() da biblioteca <math.h>, que calcula a raiz quadrada de um número, como na figura 5 (B): (int)sqrt(81), fazendo assim, a radiciação da variável (valor1).
2
ETAPA 4.
Passo 3.
Redigir o relatório 5 – Aplicativo Final. Contendo o código fonte e telas do aplicativo avançado, que utiliza as estruturas de iteração e as estruturas de dados compostas para complementar o aplicativo com as funcionalidades propostas nas etapas 3 e 4.
#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <conio.h>#include <string.h>
int main(){ system("color 1E"); system("title C A L C U L A D O R A");
char operation, binario[8]; int value1, value2, result, i, aux, sum; int binarioMap[8] = {128, 64, 32, 16, 8, 4, 2, 1}; double aux1, aux2;
while(operation != 'S') { printf("\t\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB\n"); printf("\t\t\t\xBA C A L C U L A D O R A \xBA\n"); printf("\t\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC\n\n"); printf("\t(+) - Soma\t\t(P) - Porcentagem\n"); printf("\t(-) - Subtracao\t\t(F) - Fatorial\n"); printf("\t(*) - Multiplicacao\t(B) - Conversao Binario -> Decimal\n"); printf("\t(/) - Divisao\t\t(D) - Conversao Decimal -> Binario\n"); printf("\t(E) - Exponenciacao\t(S) - Sair\n");
3
printf("\t(R) - Raiz Quadrada\n"); printf("\n\tOpcao: ");
operation = getche();
switch(operation = toupper(operation)) {
case '+' : printf("\n\n\tS O M A"); printf("\n\n\tPrimeiro valor: "); scanf("%d", &value1); printf("\tSegundo valor: "); scanf("%d", &value2);
result = value1 + value2;
printf("\n\t%d + %d = %d\n\n", value1, value2, result); break;
case '-' : printf("\n\n\tS U B T R A C A O"); printf("\n\n\tPrimeiro valor: "); scanf("%d", &value1); printf("\tSegundo valor: "); scanf("%d", &value2);
result = value1 - value2;
printf("\n\t%d - %d = %d\n\n", value1, value2, result); break;
case '*' : printf("\n\n\tM U L T I P L I C A C A O"); printf("\n\n\tPrimeiro valor: "); scanf("%d", &value1); printf("\tSegundo valor: "); scanf("%d", &value2);
4
result = value1 * value2;
printf("\n\t%d x %d = %d\n\n", value1, value2, result); break;
case '/' : printf("\n\n\tD I V I S A O"); printf("\n\n\tPrimeiro valor: "); scanf("%d", &value1); printf("\tSegundo valor: "); scanf("%d", &value2);
if (value2 == 0) { printf("\n\n\tErro divisao por zero\n\n"); break; }
result = value1 / value2;
printf("\n\t%d / %d = %d\n\n", value1, value2, result); break;
case 'E' : printf("\n\n\tE X P O N E N C I A C A O"); printf("\n\n\tBase: "); scanf("%d", &value1); printf("\tExpoente: "); scanf("%d", &value2);
result = value1;
for (i = 1; i < value2; i++) { result *= value1; }
printf("\n\t%d elevado a %d = %d\n\n", value1, value2, result); break;
case 'R' :
5
printf("\n\n\tR A I Z Q U A D R A D A"); printf("\n\n\tValor: "); scanf("%d", &value1); result=sqrt(value1); printf("\n\tRaiz quadrada de %d = %d\n\n\n", value1,result); break;
case 'P' : printf("\n\n\tP O R C E N T A G E N"); printf("\n\n\tValor: "); scanf("%d", &value1); printf("\tPorcentagem: "); scanf("%d", &value2);
result = (value1 * value2) / 100;
printf("\n\t%d %% de %d = %d\n\n", value2, value1, result); break;
case 'F' : printf("\n\n\tF A T O R I A L"); printf("\n\n\tValor: "); scanf("%d", &value1);
for (i = value1, result = 1; i > 1; i--) { result *= i; }
printf("\n\tO Fatorial de %d e = %d\n\n", value1, result); break;
case 'B' : printf("\n\n\tBINARIO PARA DECIMAL"); printf("\n\n\tDigite o numero binario (8 bits): "); scanf("%s", &binario);
result = 0;
for ( i = 0; i < 8; i++) {
6
if (binario[i] == '1') { result += binarioMap[i]; } }
printf("\n\tEquivalente em decimal = %d", result);
printf("\n\n");
break;
case 'D' : printf("\n\n\tDECIMAL PARA BINARIO"); printf("\n\n\tDigite o numero decimal (<256): "); scanf("%d", &value1);
result = value1;
for ( i = 0; i <= 7; i++) { if (result % 2 == 0) { binario[i] = '0'; } else { binario[i] = '1'; result /= 2; }
}
printf("\n\tEquivalente em binario = %d", result);
for ( i = 7; i >= 0; i--) { printf("%c", binario[i]); }
printf("\n\n");
7
break;
case 'S' : printf("\n\n\tPrograma finalizado\n\n"); break;
default: printf("\n\n\tOpcao invalida\n\n"); break; }
printf("\t"); system("pause"); system("cls");
}
return 0;}
8
Fonte de pesquisas.
https://docs.google.com/file/d/
0B114oKTDsLjnTTFQY0c1SWJvSGc/edit?usp=sha
ring
https://docs.google.com/file/d/
0B114oKTDsLjnQWQwYnhtWjFTLTA/edit?usp=s
haring
http://www.juliobattisti.com.br/tutoriais/katiaduarte/
cbasico006.asp
http://marceloweb.info/introdução-à-linguagem-c-
tutorial-i/
http://diegodonah.wordpress.com/2009/09/05/binario-
para-decimal/
9