Buscar

Trabalho de subrotina e recursão

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Ceará - UFC 
Centro de ciências – CC 
Departamento de Computação – DC 
Fundamentos de Programação 
 
Exercício: Estrutura de Repetição 
Objetivos: Introduzir as principais estruturas de repetição. 
 ALICE BARROS FREIRE Matrícula: 471490 
JOSE LUCAS SIQUEIRA FREITAS Matrícula: 475167 
JULYANA XAVIER MARTINS Matrícula: 485324 
 
1 ) 
- Passagem de parâmetro por valor. 
#include <stdio.h> 
#include <stdlib.h> 
int numero() { 
 int num; 
 printf("Digite o número para ser convertido: "); 
 scanf("%d", &num); 
 return num; 
} 
int main () { 
 int bin[8]; 
 int i; 
 int num=numero(); 
 for (i = 7; i >= 0; i--) 
 { 
 if (num % 2 == 0) 
 bin[i] = 0; 
 else 
 bin[i] = 1; 
 num = num / 2; 
 } 
 for (i = 0; i < 8; i++) 
 printf("%d", bin[i]); 
 printf("\n"); 
 return 0; 
} 
 
 
 
 
2) 
#include<stdio.h> 
#include <math.h> 
int mult (int a, int b){ 
 int s=0; 
 for (int i=0; i<a; i++){ 
 s=s+b; 
 } 
return s; 
} 
int main (){ 
 int a, b, s; 
 scanf("%d", &a); 
 scanf("%d", &b); 
 s=mult(a,b); 
 printf("%d", s); 
 return 0; 
} 
3) 
#include<stdio.h> 
#include<math.h> 
int some(int m, int n); 
int main(){ 
 int m,n,soma; 
 scanf("%d %d",&m,&n); 
 soma=some(m,n); 
 printf("%d",soma); 
 return 0; 
} 
int some(int m, int n){ 
 int sum=m; 
 for(int i=1;i<=n;i++){ 
 sum++; 
 } 
 return sum; 
} 
 
4 ) 
- Função sem passagem de parâmetro e com retorno. 
#include<stdio.h> 
int multiplicacao() { 
 int n1, n2, s1=0, s2=0, mult; 
 int i, j; 
 printf("Digite n1:"); 
 scanf("%d", &n1); 
 printf("Digite n2:"); 
 scanf("%d", &n2); 
 for(i=0; i<n1; i++) 
 { 
 s1=s1+1; 
 } 
 for(j=0; j<n2; j++) 
 { 
 s2=s2+1; 
 } 
 mult=s1*s2; 
 return mult; 
} 
 int main() { 
 int resposta; 
 resposta=multiplicacao(); 
 printf("A multiplicacao eh:%d", resposta); 
 return 0; 
 } 
 
 
5) 
#include <stdio.h> 
int produto(int n1, int n2) { 
 if (n2== 0){ 
 return n2; 
 } 
 else{ 
 return n1 + produto(n1,n2-1); 
 } 
} 
int main(){ 
 int x, n, result; 
 printf("forneca valores a semrem x e n: "); 
 scanf("%d %d", &x, &n); 
 result=produto(x,n); 
 printf("resultado= %d",result); 
 return 0; 
} 
 
 
6) 
#include<stdio.h> 
#include<math.h> 
int fatorial(int n) { 
 int i,fat; 
 fat=n; 
 if (n > 0) 
 { 
 fat = fat*fatorial(n-1); 
 return fat; 
 } 
 else 
 { 
 fat = 1; 
 return fat; 
 } 
} 
void gera_combinacoes(int c,int l,int n, char comb[][23],char subset[]) { 
 int i,j,k,w,nrep; 
 char new_subset[n-1]; 
 if (n > 1) 
 { 
 nrep = fatorial(n)/n; 
 for (i=0;i<n;i++) 
 { 
 for (j=0;j<nrep;j++) 
 { 
 comb[l][c]=subset[i]; 
 l+=1; 
 } 
 w = 0; 
 for (k=0;k<n;k++) 
 { 
 if (subset[k] != subset[i]) 
 { 
 new_subset[w] = subset[k]; 
 w++; 
 } 
 } 
 gera_combinacoes(c+1,l-j,n-1,comb,new_subset); 
 } 
 } 
 else 
 { 
 comb[l][c]=subset[0]; 
 } 
} 
int main() { 
 int n,ncomb,c,l,i,j; 
 char alpha[23]={'a','b','c','d','e','f','g','h','i','j','l','m','n','o','p','q','r','s','t','u','v','x','z'}; 
 printf("\nDigite o valor de n (n primeiras letras): "); 
 scanf("%d",&n); 
 char subset[n]; 
 for (i=0;i<n;i++) 
 { 
 subset[i]=alpha[i]; 
 } 
 printf("\nConjunto considerado: \n"); 
 for (i=0;i<n;i++) 
 { 
 printf("%c ",subset[i]); 
 } 
 ncomb = fatorial(n); 
 char comb[ncomb][23]; 
 c = 0; 
 l = 0; 
 gera_combinacoes(c,l,n,comb,subset); 
 printf("\n%d sequencias geradas: \n",ncomb); 
 for (i=0;i<ncomb;i++) 
 { 
 for (j=0;j<n;j++) 
 { 
 printf("%c ",comb[i][j]); 
 } 
 printf("\n"); 
 } 
} 
 
8) Considerando que o primeiro termo da série seja 1 
#include <stdio.h> 
long fib(int n1) { 
 if (n1==0 || n1==1){ 
 return n1-0; 
 } 
 else { 
 return fib (n1-1) + fib(n1-2); 
 } 
} 
int main(){ 
 int n; 
 long resp; 
 printf("digite a posicao n: "); 
 scanf("%d", &n); 
 resp=fib (n); 
 printf("O temo %d da serie eh: %ld",n,resp); 
 return 0; 
} 
 
9) 
#include<stdio.h> 
#include<math.h> 
void fibonacci(int N){ 
 int x=0,y=0,z=1; 
 if(N==1) 
 printf("%d",x); 
else{ 
 for(int i=1;i<=N;i++){ 
 y=x; 
 x=x+z; 
 z=y; 
 printf(" %d",x); 
} 
} 
} 
int main(){ 
int n; 
scanf("%d",&n); 
fibonacci(n); 
return 0; 
} 
 
10 ) 
- Função com passagem de parâmetro e com retorno. 
#include<stdio.h> 
int prod(int m){ 
 int soma=0, i; 
 for(i=0; i<=m; i++) 
 { 
 soma=soma+i; 
 } 
 return soma; 
} 
int main (void) 
{ 
 int m, n, soma, i; 
 printf("Digite uma quantidade:"); 
 scanf("%d", &m); 
 soma=prod(m); 
 printf("A soma dos %d inteiros primeiros:%d", m, soma); 
 return 0; 
} 
 
11) 
#include <stdio.h> 
float soma_a(float v[], int n) { 
 if ( n == 1 ) 
 return v[0]; 
 else 
 return v[n-1] + soma_a(v,n-1); 
} 
int main(){ 
int n, i; 
printf("digite o tamanho do vetor: "); 
scanf("%d", &n); 
float v[n], resp; 
printf("digite os termos do vetor: "); 
for (i=0; i<n; i++){ 
 scanf("%f", &v[i]); 
} 
resp=soma_a(v,n); 
printf("a soma do array eh %g", resp); 
return 0; 
} 
 
12) 
#include<stdio.h> 
#include<math.h> 
void somav(int vet[],int n){ 
 int maior=0; 
 for(int i=0;i<n;i++){ 
 if(vet[i]>=maior){ 
 maior=vet[i]; 
 } 
} 
printf("%d",maior); 
} 
int main(){ 
int v[50]; 
for(int i=0;i<50;i++) 
 v[i]=0; 
for (int i=0;i<7;i++) 
 scanf("%d",&v[i]); 
somav(v,50); 
return 0; 
} 
13 ) 
- Função sem passagem de parâmetro e sem retorno. 
#include <stdio.h> 
#define N 5 
int conversao() { 
 int vetOriginal[N], vetInvert[N]; 
 int i, prod[5]; 
 printf("Preencha um vetor de tamanho 5:\n"); 
 for(i = 0; i < N; i++) 
 { 
 scanf("%d", &vetOriginal[i]); 
 } 
 printf("Vetor invertido:\n"); 
 for(i = 0; i < N; i++) { 
 vetInvert[i] = vetOriginal[N-i-1]; 
 printf(" %d", vetInvert[i]); 
 } 
} 
int main() { 
 conversao(); 
 return 0; 
}

Continue navegando