P. 1
Lista de Exercicios Funções Linguagem C

Lista de Exercicios Funções Linguagem C

4.75

|Views: 16.918|Likes:
Publicado porJoelXR
Lista de Exercicios Funções Linguagem C
Lista de Exercicios Funções Linguagem C

More info:

Published by: JoelXR on Jul 14, 2008
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/12/2013

pdf

text

original

CEFET-CE - Engenharia da Computa¸˜o ca Grupo de Estudo - Linguagem C Lista de Exerc´ ıcios - Fun¸˜es co

25 de junho de 2008
1. Escreva um fun¸˜o que retorne o menor n´mero entre n´meros de ponto flutuante. ca u u 2. Escreva uma fun¸˜o que utilize um valor inteiro e retorna o n´mero com seus digitos invertidos. Por ca u exemplo, dado o n´mero 7631, a fun¸˜o deve retornar 1367. u ca 3. Escreva um programa que simule o lan¸amento de uma moeda. Para cada lan¸amento da moeda, o c c programa deve imprimir Cara ou Coroa. Deixe o programa lan¸ar a moeda 100 vezes e conte o n´mero c u de vezes que cada lado da moeda aparece. Imprima os resultados. O programa deve chamar uma fun¸˜o ca separada jogada que n˜o utiliza argumentos e retorna 0 para coroa e 1 para cara. Nota: Se o programa a simular realisticamente o lan¸amento da moeda, cada da moeda deve aparecer aproximadamente metade c do tempo, totalizando 50 caras e 50 coroas. 4. Escreva um programa que fa¸a o jogo de ’advinhar um n´mero’ da forma que se segue: Seu programa c u escolhe um n´mero para ser advinhado selecionando um inteiro aleatoriamente no intervalo de 1 a 1000. u O programa ent˜o escreve: a Tenho um numero de 1 a 1000 Voce pode advinhar meu numero? Por favor, digite seu primeiro palpite. O jogador digita ent˜o o primeiro palpite. O programa uma das resposta seguintes: a 1. 2. 3. Execelente! Voce adivinhou o numero! Muito baixo. Tente novamente. Muito alto. Tente novamente.

Se o palpite do jogador estiver incorreto, seu programa deve fazer um loop at´ que o jogador acerte o e n´mero. Seu programa deve continuar dizendo Muito baixo ou Muito alto para ajudar o jogador u a ’chegar’ na resposta correta. Nota: A t´cnica de busca utilizada nesse programa ´ chamada pesquisa e e bin´ria. a 5. A s´rie de Fibonacci e

0, 1, 1, 2, 3, 5, 8, 13, 21, ... come¸a com ostermos 0 e 1 e tem a propriedade de que cada termo subseq¨ente ´ a soma dos dois termos c u e precedentes. (a) Escreva uma fun¸˜o n˜o-recursiva fibonacci(n) que calcula n-´simo n´mero de Fibonacci. ca a e u u (b) Determinie o maior n´mero de Fibonacci que pode ser impresso em seu sistema. Modifique o programa do item anterior para usar double em vez de int para calcular e retornar os n´meros de u Fibonacci. Deixe o programa rodar at´ que seja encerrado por atingir um n´mero excessivamente e u alto. 6. O maior divisor comum dos inteiros x e y ´ o maior inteiro que divide precisamente x e y. Escreva e uma fun¸˜o recursiva mdc que retorne o maior divisor comum de x e y. O maior divisor comum de x ca e y ´ definido recursivamente como se segue: Se y for igual a 0, ent˜o o mdc (x, y) ´ x; de outra e a e forma mdc (x, y) ´ mdc (y, x % y) onde % ´ o operador resto (modulus). e e ca a 7. Escreva uma fun¸˜o distancia) que calcule a distˆncia entre dois pontos (x1 , y1 ) e (x2 , y2 ). Todos os n´meros e valores de retorno devem ser do tipo float. u

1

8. O que faz o seguinte programa? int misterio (int, int); main() { int x, y; printf ("Entre com dois inteiros:"); scanf ("%d%d", &x, &y); printf ("O resultado e %d \n", misterio (x, y)); return 0; } /*O parametro b deve ser um inteiro positivo para evitar recursao infinita */ int misterio (int a, int b) { if (b == 1) return a; else return a + misterio (a, b - 1); } 9. Escreva uma fun¸˜o recursiva potencia(base, expoente) que, quando chamada, retorna baseexpoente ca Por exemplo, potencia(3, 4) = 3 * 3 * 3 * 3). Assuma que expoente ´ um inteiro maior e igual a 1. Sugest˜o: A etapa de recurs˜o usaria o relacionamento baseexpoente = base.baseexpoente−1 e a a a condi¸˜o de encerramento ocorre quando expoente for igual a 1 porque: base1 = base ca 10. Todo estudante de computa¸˜o deve lidar com determinados problemas cl´ssicos, e o problema das Torres ca a Han´i ´ um dos mais famosos. Diz a lenda que em um templo no Extremo Oriente os sacredotes est˜o o e a tentando mover um pilha de discos de um pino para outro. A pilha inicial tinha 64 discos colocados em um pino e organizados na ordem decrescente, da base para o topo. Os sacerdotes est˜o tentando mover a a pilha desse pino para um segundo pino com a restri¸˜o de que exatamente um discodeve ser movido de ca cada vez e em nenhum momento um disco maior pode ser colocado sobre um menor. H´ um terceiro pino a dispon´ para coloca¸˜o tempor´ria dos discos. Teoricamente o mundo terminar´ qundo os sacerdotes ıvel ca a a terminarem a sua tarefa, portanto h´ pouco est´ a ımulo para facilitarmos os seus esfor¸os. c Vamos assumir que os sacerdotes est˜o tentando mover os discos do pino 1 para o pino 3. Desejamos a desenvolver um algoritmo que imprimir´ a seq¨ˆncia exata de transferˆncias de discos de um pino para a ue e outro. Se fˆssemos solucionar este problema com os m´todos convencionais, rapidamente nos encontrariamos o e perdidos lidando com os discos. Em vez disso, se solucionarmos o problema com a recurs˜o em mente, ele a se torna imediatamente vi´vel. Mover n discos pode ser considerado em termos de mover apenas n − 1 a discos (da´ a recurs˜o) como se segue: ı a • Mova n − 1 discos no pino 1 para o pino 2, usando o pino 3 como ´rea de armazenamento tempor´rio. a a • Mova o ultimo disco (o maior) do pino 1 para o pino 3. ´ • Mova os n − 1 discos do pino 2 para o pino 3, usando o pino 1 como ´rea de armazenamento a tempor´rio. a O processo termina quandoa ultima tarefa envolver mover n = 1 disco, i.e., o caso b´sico. Isso ´ realizado ´ a e movendo simplesmente o disco para o destino final, sem a necessidade de um ´rea de armazenamento a tempor´rio. a Escreva um programa recursivo para resolver o problema que receba os seguintes parˆmetros? a • • • • O n´mero de discos a serem movidos u O pino no qual esses discos est˜o colocados inicialmente a O pino para o qual essa pilha deve ser movida E o pino usado como ´rea de armazenamento tempor´rio a a

Seu programa deve imprimir instru¸˜es precisas e necess´rias para mover os discos do pino inicial para o co a pino de destino. Por exemplo, para mover um pilha de trˆs discos do pino 1 para o pino 3, se programa deve imprimir a e seguinte seq¨ˆncia de comandos: ue 1 3/1 2/3 2/1 3/2 1/2 3/1 3

2

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->