Buscar

lista sub-rotinas

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 11 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 11 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 9, do total de 11 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

Prévia do material em texto

QUESTÕES ERRADAS : 5 , 7
1.1. Impressão de um número natural em base binária.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int basebinaria(int n);
int produtoincr(int n){
int base=0,i=0;
while(n>0){
base=base+pow(10,i)*(n%2);
i=i+1;
n=n/2;
}
return base;
}
int main(){
int n,b;
scanf("%d",&n);
b=produtoincr(n);
printf("%d",b);
return 0;
}
1.2.Multiplicação de dois números naturais, através de somas sucessivas (Ex.: 6 ∗ 4 =
4 + 4 + 4 + 4 + 4 + 4).
#include<stdio.h>
int s (int a, int b)
{
int soma;
for(int i=0;i<a;i++){
soma=soma+b;
}
return(soma);
}
int main (void)
{
int x,z,soma=0;
scanf("%d %d",&x,&z);
soma=s(x, z);
printf("%d",soma);
}
1.3. Soma de dois números naturais, através de incrementos sucessivos.
#include <stdio.h>
#include <stdlib.h>
int soma(int n,int m)
{
int s=n;
for(int i=0;i<m;i++)
s=s+1;
return s;
}
int main(){
int n,m,s;
scanf("%d",&n);
scanf("%d",&m);
s=soma(n,m);
printf("%d",s);
return 0;
}
1.4. Multiplicação de dois números naturais, através de incrementos sucessivos.
#include<stdio.h>
#include<stdlib.h>
int soma1(int m)
{
int s=0;
for(int i=0;i<m;i++)
s=s+1;
return s;
}
int produtoincr (int n, int m){
int s=0;
for (int i=0;i<n;i++)
s=s+soma1(m);
return s;
}
int main ()
{
int n,m,s;
scanf("%d",&n);
scanf("%d",&m);
s=produtoincr(n,m);
printf("%d",s);
return 0;
}
1.5.Implemente uma função recursiva que, dados dois números inteiros x e n, calcula
o valor de x * n.
#include<stdio.h>
int potrecursivo (int x,int n){
if(n==0)
return 1;
else
return x*n;
}
int main (int argc,char*argv[]){
int val1,val2,resultado;
printf("Digite o valor da base: \n");
scanf("%d",&val1);
printf("Digite o valor da potencia: \n");
scanf("%d",&val2);
resultado=potrecursivo(val1,val2);
printf("O resultado de %d\n",resultado);
}
1.6. Dado um número n, gere todas as possíveis combinações com as n primeiras
letras do alfabeto. Ex.: n = 3. Resposta: ABC, ACB, BAC, BCA, CAB, CBA.
#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[][26],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[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','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];
}
ncomb = fatorial(n);
char comb[ncomb][26];
c = 0;
l = 0;
gera_combinacoes(c,l,n,comb,subset);
printf("\n");
for (i=0;i<ncomb;i++)
{
for (j=0;j<n;j++)
{
printf("%c ",comb[i][j]);
}
printf("\n");
}
}
1.7. Gere todas as possíveis combinações para um jogo da MegaSena com 6 dezenas.
#include<stdio.h>
#include<stdlib.h>
void gera_combinacoes(int a, int b, int c, int d, int e, int f, int cont)
{
cont=0;
for(a=1;a<=60;a++)
{
for(b=1;b<=60;b++)
{
for(c=1;c<=60;c++)
{
for(d=1;d<=60;d++)
{
for(e=1;e<=60;e++)
{
for(f=1;f<=60;f++)
{
if((a<b && b<c) && (c<d && d<e) && e<f)
{
cont++;
printf("\n%d. [%d %d %d %d %d %d]",cont,a,b,c,d,e,f);
}
}
}
}
}
}
}
}
int main(void)
{
int a, b, c, d, e, f, cont;
gera_combinacoes(a, b, c, d, e, f, cont);
}
1.8. Gere o termo de ordem n da série de Fibonacci.
#include<stdio.h>
#include<stdlib.h>
int fib(int n){
if (n==1 || n==2)
return n-1;
return (fib(n-1)+fib(n-2));
}
int main(){
int n, res;
scanf ("%d",&n);
res = fib(n+1);
printf ("%d",res);
}
1.9. Gere a série de Fibonacci até o termo de ordem n.
#include<stdio.h>
#include<stdlib.h>
int fib(int n){
if(n==1 || n==2)
return n-1;
return (fib(n-1)+fib(n-2));
}
int main(){
int n, res, i;
scanf ("%d",&n);
for (i=1;i<=n;i++)
{
res = fib(i+1);
printf ("%d ",res);
}
}
1.10. Calcule o somatório dos n primeiros números inteiros.
#include<stdio.h>
int main ()
{
int n,h;
int funcao(int N);
printf("Digite o valor de N:");
scanf("%d",&n);
h=funcao(n);
printf("%d",h);
return 0;
}
int funcao(int N)
{
int i,soma=0;
for(i=0;i<N;i++)
{
soma=soma+i;
}
return soma;
}
1.11. Calcule a soma de todos os valores de um array de reais.
#include<stdio.h>
int main ()
{
int a,i;
float h;
float funcao(float vet[],int A);
printf("Digite a quantidade de termos:");
scanf("%d",&a);
float vetor[a];
for(i=0;i<a;i++)
{
printf("Termo:");
scanf("%f",&vetor[i]);
}
h=funcao(vetor,a);
printf("%f",h);
return 0;
}
float funcao(float vet[],int A)
{
float soma=0;
int i;
for(i=0;i<A;i++)
{
soma=soma+vet[i];
}
return soma;
}
1.12. Encontre o maior elemento de um array de inteiros.
#include<stdio.h>
int main ()
{
int i,n,h;
int funcao(int vetor[],int N);
printf("Digite o total de termos:");
scanf("%d",&n);
int vetor[n];
for(i=0;i<n;i++)
{
printf("Digite o termo:");
scanf("%d",&vetor[i]);
}
h=funcao(vetor,n);
printf("Maior valor:%d",h);
return 0;
}
int funcao(int vetor[],int N)
{
int i,maior;
for(i=0;i<N;i++)
{
if(i==0 || maior<vetor[i])
{
maior=vetor[i];
}
}
return maior;
}
1.13. Inverta os elementos de um vetor.
#include<stdio.h>
#include<stdlib.h>
void inverte_vetor (int v[], int s[], int x)
{
int i;
int t;
t = x - 1;
for (i=0;i<x;i++)
{
s[i]=v[t-1];
t--;
}
}
int main()
{
int v[100], i, n, x=0;
for (i=0;i<100;i++)
v[i] = 0;
while (n != 0)
{
printf("Digite o %d elemento do vetor ou 0 pra parar: ", x+1);
scanf("%d", &n);
v[x] = n;
x++;
}
printf("\n");
int s[x];
inverte_vetor (v, s, x);
for (i=0;i<x;i++)
{
if (s[i]!=0)
printf("%d ", s[i]);
}
}
1.14. Implemente uma solução para o problema das Torres de Hanói com 4 pinos.
1.15. Um palíndromo é uma palavra que é igual a si mesma lida de trás para
frente. Escreva uma solução que determine se uma palavra é um
palíndromo.
#include <stdio.h>
#include <string.h>
int main()
{
char a[100];
int TAM,h;
int funcao(char vetor[],int tamanho);
printf("DIGITE A PALAVRA: ");
scanf("%s",a);
printf("Palavra digitada: %s",a);
TAM=strlen(a);
printf("\nTamanho: %d",TAM);
h= funcao(a,TAM);
if (h == 0)
{
printf("\nPALINDROME");
}
else
{
printf("\nNAO E PALINDROME");
}
return 0;
}
int funcao(char vetor[],int tamanho)
{
int I, J, ACHOU;
J=tamanho-1;
ACHOU=0;
for (I=0;I<tamanho;I++)
{
if (vetor[I] != vetor[J])
ACHOU=1;
J=J-1;
}
return ACHOU;
}

Outros materiais