EXERCÍCIOS DE PROGRAMAÇÃO PARA A NOTA P1
Atividade Programação
| Nome | Matrícula |
|---|---|
| Luana Ribeiro Soares | 202016720 |
A atividade foi elaborada em linguagem c.
Arquivo com toda a atividade: MD2.zip
Recursão Matemática
#include <stdio.h>
int fatorial(int n) {
if (n == 0) {
return 1;
} else {
return n * fatorial(n - 1);
}
}
int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
void imprime_naturais(int n) {
if (n > 0) {
imprime_naturais(n - 1);
printf("%d ", n);
}
}
int soma_naturais(int n) {
if (n == 0) {
return 0;
} else {
return n + soma_naturais(n - 1);
}
}
int main (){
int opcao, n;
do{
printf("Digite um numero: ");
scanf("%d", &n);
printf("1. o calculo de n! utilizando recursividade (exemplo teste 5!)\n");
printf("2. a sequencia de Fibonacci\n");
printf("3. a impressao recursiva dos numeros naturais de 1 a n (exemplo teste 1 a 10)\n");
printf("4. um metodo recursivo que receba como entrada um numero inteiro positivo n e retorne 1 + 2 + 3 + 4 + ...+ n\n");
printf("5. Sair\n");
printf("Digite a opcao: ");
scanf("%d", &opcao);
switch (opcao) {
case 1:
printf("%d! = %d\n", n, fatorial(n));
break;
case 2:
printf("Fibonacci(%d) = %d\n", n, fibonacci(n));
break;
case 3:
imprime_naturais(n);
printf("\n");
break;
case 4:
printf("Soma dos naturais de 1 a %d = %d\n", n, soma_naturais(n));
break;
case 5:
break;
default:
printf("Opcao invalida\n");
}
} while (opcao !=5);
return 0;
}
Divisibilidade
#include <stdio.h>
int mdc(int a, int b) {
if (b == 0) {
return a;
} else {
return mdc(b, a % b);
}
}
int mmc(int a, int b) {
return a * b / mdc(a, b);
}
int main() {
int a, b;
printf("Digite dois numeros: ");
scanf("%d %d", &a, &b);
printf("MDC(%d, %d) = %d\n", a, b, mdc(a, b));
printf("MMC(%d, %d) = %d\n", a, b, mmc(a, b));
return 0;
}
Aritmética Modular
#include <stdio.h>
void tabela_adicao_modular(int n) {
int i, j;
printf("Tabela Z_%d para adicao modular\n", n);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d + %d = %d\n", i, j, (i + j) % n);
}
}
}
void tabela_multiplicacao_modular(int n) {
int i, j;
printf("Tabela Z_%d para multiplicacao modular\n", n);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d * %d = %d\n", i, j, (i * j) % n);
}
}
}
int main() {
int n;
printf("Digite um numero: ");
scanf("%d", &n);
tabela_adicao_modular(n);
tabela_multiplicacao_modular(n);
return 0;
}