Laços de Repetição

  1. $ \bigstar$ Faça um algoritmo para exibir os números 1, 4, 9, 16, 25, 36, ..., 10000.

    Solução (algoritmo): LRSerieQuadrado.alg

  2. $ \bigstar$ Imprimir da primeira até a décima potência dos números de 2 até 5 inclusive.

    SOLUçãO: LRPOTENCIA.C.

    Solução (algoritmo): LRImprimirPotencia.alg

    Solução (algoritmo): LRImprimirPotencia2.alg

  3. $ \bigstar$ Criar um algoritmo que leia idade e sexo (0-masculino,1-feminino)de várias pessoas. Calcule e imprima a idade média,total de pessoas do sexo feminino com idade entre 30-45 inclusive e o número total de pessoas do sexo masculino. O algoritmo termina quando se digita 0 para idade.

  4. $ \bigstar$ Escreva um algoritmo para ler vários números inteiros e positivos, até que seja lido um número menor que zero. Para cada número mostrar seu dobro.

  5. $ \bigstar\bigstar$ Faça um algoritmo para ler diversos caracteres informados pelo dispositivo de entrada. Depois imprima:

    a) a quantidade total de letras 'A' e 'Z' informadas;

    b) a quantidade de caracteres informados;

    c) a quantidade de consoantes;

    d) a maior letra informada (de acordo com a ordem alfabética) (considere que o usuário irá digitar todas as letras em caixa alta);

    e) a quantidade de pontos de exclamação informados;

    A condição de término da leitura é o caractere '#'.

  6. $ \bigstar$ Ler vários números e informar quantos números entre 100 e 200 foram digitados. Quando o valor 0 (zero) for lido, o algoritmo deverá cessar sua execução.

    SOLUçãO: LRTESTAINTERVALO.C.

    SOLUçãO: LRTESTAINTERVALO2.C.

  7. $ \bigstar\bigstar$ Crie um algoritmo que leia vários valores inteiros e positivos e imprima a média dos números múltiplos de 3. Considere como flag (critério de parada) um valor negativo ou nulo.

    Solução (algoritmo): LRMediaMultiplos3.alg

  8. $ \bigstar\bigstar$ A série matemática Fibonacci, que possui o nome de um grande matemático do século XIII, especialista em números, é uma série na qual cada número é igual à soma dos dois números precedentes: 1 mais 1 é igual a 2, 1 mais 2 é igual a 3, 2 mais 3 é igual a 5, 3 mais 5 é igual a 8, 5 mais 8 é igual a 13, e assim por diante. A sequência de Fibonacci é muito útil aos naturalistas (botânicos, zoólogos, etc...), pois muitas coisas da natureza estão dispostas de acordo com tal série. Dados os dois primeiros números da série (1 e 1), imprimir os vinte primeiros números da sequência de Fibonacci.

    SOLUçãO: LRFIBONACCI.C.

    Solução (algoritmo): serieFibonacci.alg

  9. $ \bigstar\bigstar$ Escreva um algoritmo que imprima o n primeiros termos da série de Fibonacci. O valor de n será digitado pelo usuário.

  10. $ \bigstar\bigstar$ Escreva um algoritmo que leia um valor inteiro n e teste se esse valor pertence à série de Fibonacci.

  11. $ \bigstar\bigstar$ A série de Ricci difere da série de Fibonacci porque os dois primeiros termos podem ser definidos pelo usuário. Imprima os n primeiros termos da série de Ricci. O valor de n será digitado pelo usuário.

    Solução (algoritmo): LRSerieRicci.alg

  12. $ \bigstar\bigstar$ A série de Fetuccine difere da série de Ricci porque o termo de posição par é resultado da subtração dos dois anteriores. Os termos ímpares continuam sendo o resultado da soma dos dois elementos anteriores. Imprima os n primeiros termos da série de Fetuccine.

  13. $ \bigstar\bigstar$ Considere a série abaixo e faça o que se pede:

    1, 4, 4, 2, 5, 5, 3, 6, 6, 4, 7, 7, ...

    Escreva um algoritmo que seja capaz de gerar os N termos dessa série. Esse número N deve ser lido do teclado.

    Solução (algoritmo): LRImprimeSerieTripla.alg

  14. $ \bigstar\bigstar$ Reescreva o exercício anterior, mas considere que o usuário irá digitar a posição do elemento pesquisado. Portanto, não é necessário escrever todos os elementos da série, mas apenas o elemento da posição pesquisada. Por exemplo, se o usuário digitar 11, o algoritmo deve imprimir apenas o valor 7 (uma vez que esse valor corresponde ao elemento da décima primeira posição).

    Solução (algoritmo): LRBuscaElementoSerieTripla.alg

  15. $ \bigstar$ Escreva um algoritmo para calcular e escrever uma tabela de graus Celsius em função de graus Farenheit, com graus Celsius variando de 0 até 100.

    Solução (algoritmo): LRConversaoTemperatura.alg

  16. $ \bigstar$ Escreva um algoritmo que leia números digitados pelo usuário até que este digite um valor negativo. Neste momento, o algoritmo deverá apresentar o maior valor digitado.

    SOLUçãO: LRMAIORPOSITIVO.C.

    SOLUçãO (ALGORITMO): LRMAIORVALORPOSITIVO.ALG.

  17. $ \bigstar\bigstar$ Escreva um algoritmo para calcular e escrever o n-ésimo termo da série abaixo, onde o valor de N é será informado pelo usuário. A série é: 5, 6, 11, 12, 17, 18, 23, 24, etc. Se de N for igual a 3, deve ser impresso o valor 11. Se o valor de N for igual 5, deve ser impresso o valor 17. Se o valor de N for igual a 8, deve ser impresso o valor 24.

  18. $ \bigstar\bigstar$ Escreva um algoritmo que leia um número inteiro que seja um valor binário. Se o usuário digitar, por exemplo, o valor 1101, o algoritmo deverá apresentar na tela o valor 13. Caso o usuário digite um valor que não seja binário (com valores diferentes de 1s e 0s), o algoritmo deverá apresentar uma mensagem na tela informando tal característica.

  19. $ \bigstar\bigstar$ Ler 2 valores A e B. Se A for igual a B, devem ser lidos novos valores para A e B. Se A for menor que B, deve-se calcular e imprimir a soma dos números ímpares existentes entre A (inclusive) e B (inclusive). Se A for maior que B, deve-se calcular e imprimir a média aritmética dos múltiplos de 3 existentes entre A (inclusive) e B (inclusive). OBS: Considere que só serão informados valores inteiros positivos.

    SOLUçãO: LRCOMPARAAB.C.

    Comentários: neste exercício, deve-se observar que os valores de A e B devem ser incluídos. Se forem digitados valores iguais, o programa deve permitir que o usuário digite dois valores novamente, até que estes sejam diferentes. Não há limitação do número de vezes que o usuário poderá digitar os dois valores iguais. O exercício foi resolvido usando o comando for. Tente dar uma outra solução, mas agora utilizando apenas o comando while.

  20. $ \bigstar$ Escreva um programa que leia números digitados pelo usuário e informe se são pares ou ímpares. A flag (ponto de parada) é o valor zero.

    SOLUçãO: LRTESTAPARIMPAR.C.

    SOLUçãO (ALGORITMO): LRTESTAPARIMPAR.ALG.

  21. $ \bigstar$ Criar um algoritmo em que leia os limites inferior e superior de um intervalo e imprima todos os números pares no intervalo aberto e o seu somatório. Suponha que os dados digitados são para um intervalo crescente, ou seja, o primeiro valor é menor que o segundo.

  22. $ \bigstar$ Construa um programa que apresente os 100 primeiros números ímpares.

    SOLUçãO: LRSOMAIMPARES.C.

  23. $ \bigstar$ Construa um programa que apresente os 100 primeiros números de uma Progressão Aritmética, sendo lidos o primeiro termo e a razão.

    Solução (algoritmo): LR100TermosPA.alg

  24. $ \bigstar$ Ler 10 valores e escrever quantos destes valores são negativos.

    SOLUçãO: LR10NEGATIVOS.C.

    SOLUçãO (ALGORITMO): LRQTDEVALORESNEGATIVOS.ALG.

  25. $ \bigstar$ Calcular e imprimir a soma dos N primeiros números pares onde N é um número inteiro, que deve ser lido pelo teclado.

    SOLUçãO (ALGORITMO): LRSOMANUMEROSPARES.ALG.

  26. $ \bigstar\bigstar$Escreva um algoritmo que lê um número e verifique se o número é real ou inteiro (considere que o usuário irá digitar apenas números positivos).

    SOLUçãO (ALGORITMO): LRTESTANUMEROS.ALG.

  27. $ \bigstar\bigstar$Escreva um algoritmo que receba vários números e verifique se eles são ou não quadrados perfeitos. O algoritmo termina a execução quando for digitado um número menor ou igual a 0 (um número é quadrado perfeito quando tem um número inteiro como raiz quadrada).

  28. $ \bigstar\bigstar$Escreva um algoritmo que forneça quantos números devem existir em sequência a partir do 1 (1,2,3,4,...) para que a sua soma ultrapasse a 100 o mínimo possível.

    SOLUçãO: LRSOMA100.C.

    SOLUçãO (ALGORITMO): LRTESTASOMATORIA.ALG.

    Comentários: a resposta do exercício é 14, ou seja, é necessário somar 1, 2, 3, ..., e 14 para obter o valor 105, que corresponde ao menor valor que ultrapassa 100. Neste exercício, não haverá entrada de dados, mas apenas processamento e saída.

  29. $ \bigstar$ Escreva um algoritmo para repetir a leitura de um número enquanto o valor fornecido for diferente de 0. Para cada número fornecido, imprimir se ele é NEGATIVO ou POSITIVO. Quando o número 0 for fornecido a repetição deve ser encerrada sem imprimir mensagem alguma.

    SOLUçãO (ALGORITMO): LRTESTAPOSITIVONEGATIVO.ALG.

  30. $ \bigstar\bigstar$ Escreva um algoritmo que verifique a validade de uma senha fornecida pelo usuário. A senha válida é o número 1234. Se a senha informada pelo usuário for inválida, a mensagem ACESSO NEGADO deve ser impressa e repetida a solicitação de uma nova senha até que ela seja válida. Caso contrário, deve ser impressa a mensagem ACESSO PERMITIDO junto com um número que representa quantas vezes a senha foi informada.

    SOLUçãO (ALGORITMO): LRTESTASENHA.ALG.

  31. $ \bigstar$ Escreva um algoritmo para verificar se um determinado número digitado pelo usuário é primo.

    SOLUçãO: LRVERIFICAPRIMO.C.

    SOLUçãO (ALGORITMO): TESTARPRIMO.ALG.

  32. $ \bigstar\bigstar$ Escreva um algoritmo que determine se dois valores inteiros e positivos A e B são primos entre si (dois números inteiros são ditos primos entre si caso não exista divisor comum aos dois números, com exceção do valor 1).

    SOLUçãO: LRTESTAPRIMOSENTRESI.C.

    SOLUçãO (ALGORITMO): LRTESTAPRIMOSENTRESI.ALG

  33. $ \bigstar\bigstar$ Leia 100 valores. A seguir, para cada valor, mostre se o valor é primo ou não. Em caso negativo, mostre quantos divisores o número possui.

    SOLUçãO (ALGORITMO): VERIFICAPRIMOS.ALG.

  34. $ \bigstar\bigstar$ Escreva um algoritmo para ler um número inteiro do usuário e exibir o maior número primo que seja menor do que o número digitado.

    Solução (algoritmo): LRMaiorPrimoAnterior.alg

  35. $ \bigstar\bigstar$ Calcular e imprimir a soma dos 100 primeiros números primos.

    Solução (algoritmo): LRSoma100Primos.alg

  36. $ \bigstar$ Faça um algoritmo que leia 20 números e imprima a soma dos números cujos quadrados são menores do que 225.

    Solução (algoritmo): LRSerieQuadrados.alg

  37. $ \bigstar\bigstar$ Fatoração é a decomposição de um número inteiro em seus números primos. Escreva um programa em C que calcule os fatores de um número digitado pelo usuário. Por exemplo, se o usuário digitar o valor 12, o programa deverá exibir os valores 2, 2 e 3. Lembrando que 2 x 2 x 3 = 12.

    SOLUçãO(1): LRFATORESPRIMOSA.C.

    SOLUçãO(2): LRFATORESPRIMOSB.C.

    SOLUçãO(3): LRFATORESPRIMOSC.C.

  38. $ \bigstar\bigstar$ Leia uma quantidade de valores para X indeterminadamente (parar quando o valor digitado para X for igual a zero). Para cada valor lido, mostrar se este valor é primo ou não.

  39. $ \bigstar\bigstar$ Escreva um algoritmo que leia dois números inteiros e positivos e verifique se estes números são amigáveis. Dois números são amigáveis quando a soma dos divisores de um é igual ao outro número, excluindo o próprio número. Os números 220 e 284 são exemplos de números amigáveis.

    SOLUçãO (ALGORITMO): LRTESTAAMIGAVEIS.ALG.

  40. $ \bigstar\bigstar\bigstar$ Escreva um algoritmo para encontrar todos os pares de números amigáveis entre 1 e 100000. Um par de números é amigável quando cada um deles é igual à soma dos divisores do outro, com exceção do próprio número. Os números 220 e 284 são exemplos de números amigáveis.

  41. $ \bigstar\bigstar$ Escreva um algoritmo que sorteie um número de 0 a 100 e que permita que o usuário (sem conhecer o número sorteado) tente acertar. Caso não acerte, o programa deve imprimir uma mensagem informando se o número sorteado é maior ou menor que a tentativa feita. Ao acertar o número, o algoritmo deve imprimir a quantidade de tentativas feitas.

  42. $ \bigstar\bigstar$ Escreva um algoritmo para calcular o Máximo Divisor Comum (MDC) entre dois números inteiros.

    SOLUçãO: LRMDC.C.

  43. $ \bigstar\bigstar$ Supondo que a população de um país A seja da ordem de 9.000 habitantes com uma taxa anual de crescimento de 3% e que a população de um país B seja, aproximadamente, de 20.000 habitantes com taxa anual de crescimento de 1.5%. Faça um programa que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou se iguale à população do país B, mantidas estas taxas de crescimento.

  44. $ \bigstar\bigstar$ Escreva um algoritmo que leia dois números inteiros e imprima o seu Mínimo Múltiplo Comum (MMC).

    SOLUçãO: LRMDC.C.

    COMENTáRIOS: ESSA SOLUçãO EMPREGA O CáLCULO DO MDC. EXISTEM OUTRAS MANEIRAS DE SE CALCULAR O MMC.

  45. $ \bigstar\bigstar$ Escreva um algoritmo para exibir os n primeiros múltiplos simultâneos de dois números dados.

    Solução (algoritmo): LRExibeMultiplosSimultaneos.alg

  46. $ \bigstar$ Criar um algoritmo que leia um número (NUM) e então imprima os múltiplos de 3 e 5, ao mesmo tempo, no intervalo fechado de 1 a NUM.

    SOLUçãO: LRTESTAMULTIPLOS35.C.

  47. $ \bigstar\bigstar\bigstar$ (Prova EST/2010-2) (Prova EST/2014-1) Escreva um algoritmo que permita que o usuário digite valores inteiros e positivos. O usuário deverá digitar números até totalizar 10 valores primos. Enquanto isto não ocorrer, o usuário deverá digitar outros valores. Para cada valor primo digitado, imprima esse valor na tela. Ao final, imprima a quantidade (total) de números digitados.

    Solução (algoritmo): LRContadorPrimos.alg

    Solução: LRContadorPrimos.c

  48. $ \bigstar\bigstar$ Escreva um algoritmo que realize o produto de A (número inteiro) por B (número inteiro), ou seja, A * B, através de adições (somas). Esses dois valores são passados pelo usuário através do teclado.

    Solução (algoritmo): LRTesta10Primos.alg

  49. $ \bigstar\bigstar$ (Prova EST/2010-2) Escreva um algoritmo que imprima uma tabela comparativa entre as temperaturas Celsius e Farenheit (de -100 até 100 graus). A impressão deve seguir o padrão abaixo:

    Celsius Farenheit
    -100 -148
    -99 -146.2
    ... ...

    Após a impressão dessa tabela comparativa, imprima, se houver, as temperaturas em que os valores são iguais nas escalas Celsius e Farenheit. Quando isto ocorrer, o algoritmo deve imprimir a seguinte mensagem: “As temperaturas Celsius e Farenheit são iguais em <valor> graus.”

    Solução (algoritmo): LRImprimirTabelaTemperaturas.alg

  50. $ \bigstar\bigstar$ (Prova EST/2010-2) Fatoração é a decomposição de um número inteiro em seus números primos. Escreva um programa em C que calcule os fatores de um número digitado pelo usuário. Por exemplo, se o usuário digitar o valor 12, o programa deverá exibir os valores 2, 2 e 3. Ou, se o usuário digitar o valor 30, o programa deverá exibir os valores 2, 3 e 5. Lembrando que 2 x 3 x 5 = 30.

    SOLUçãO: LRDECOMPOSICAOPRIMOS.C.

  51. $ \bigstar$ Construa um algoritmo que, dado um conjunto de valores inteiros e positivos, determine qual o menor valor do conjunto. O final do conjunto de valores é conhecido através do valor zero, que não deve ser considerado.

  52. $ \bigstar$ Construa um algoritmo que, dado um conjunto de valores inteiros e positivos, determine qual é o menor e o maior valor do conjunto. O final do conjunto de valores é conhecido através do valor -5 , que não deve ser considerado.

  53. $ \bigstar\bigstar$ Escreva um algoritmo para calcular w = 2a + 3b + 7 para todas as possibilidades, a seguir:

    O algoritmo deverá mostrar na tela os valores de a, b e w.

  54. $ \bigstar$ Considere a seguinte informação: "A tem o dobro da idade que B tinha quando A tinha a idade que B tem. Quando B tiver a idade de A, somarão 81 anos." Escreva um algoritmo para calcular as idades de A e B no método da força bruta.

  55. $ \bigstar$ Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria qualquer preço. O monge, necessitando de alimentos, indagou à rainha sobre o pagamento, se poderia ser feito com grãos de trigo dispostos em um tabuleiro de xadrez (que possui 64 casas), de tal forma que o primeiro quadro deveria conter apenas um grão e os quadros subseqüentes, o dobro do quadro anterior. A rainha achou o trabalho barato e pediu que o serviço fosse executado, sem se dar conta de que seria impossível efetuar o pagamento. Faça um algoritmo para calcular o número de grãos que o monge esperava receber.

  56. $ \bigstar\bigstar$ Escreva um algoritmo para calcular e mostrar a soma de todos os números 4 do dominó.

  57. $ \bigstar\bigstar\bigstar$ Em uma eleição presidencial, existem quatro candidatos. Os votos são informados através de código. Os dados utilizados para a escrutinagem obedecem à seguinte codificação:

    Elabore um algoritmo que calcule e escreva:

  58. $ \bigstar\bigstar$ Construa um algoritmo que leia um conjunto de dados contendo altura e sexo (masculino e feminino) de 50 pessoas e depois calcule e escreva:

  59. $ \bigstar\bigstar\bigstar$ Calcule o imposto de renda de um grupo de contribuintes considerando que os dados de cada contribuinte, número do CPF, número de dependentes e renda mensal são valores fornecidos pelo usuário. Para cada contribuinte será feito um desconto de 5% de salário mínimo por dependente.

    Os valores da alíquota para cálculo do imposto são:

    Renda líquida Alíquota
    até 2 salários mínimos isento
    2..3 salários mínimos 5%
    3..5 salários mínimos 10%
    5..7 salários mínimos 15%
    acima de 7 salários mínimos 20%

    O último valor, que não será considerado, terá o CPF igual a zero. Deve ser fornecido o valor atual do salário mínimo.

  60. $ \bigstar\bigstar\bigstar$ Foi realizada uma pesquisa de algumas características físicas da população de uma certa região, a qual coletou os seguintes dados referentes a cada habitante para serem analisados: - sexo (masculino ou feminino); - cor dos olhos (azuis, verdes, castanhos); - cor dos cabelos (louros, castanhos, pretos); - idade.

    Faça um algoritmo que determine e escreva: - a maior idade dos habitantes; - a percentagem de indivíduos do sexo feminino cuja a idade está entre 18 e 35 anos (inclusive) e que tenham olhos verdes e cabelos louros. - final do conjunto de habitantes é reconhecido pelo valor -1 entrada como idade.

  61. $ \bigstar$ Fulano tem 1,50 metro e cresce 2 centímetros por ano, enquanto Ciclano tem 1,10 metro e cresce 3 centímetros por ano. Construa um algoritmo que calcule e imprima quantos anos serão necessários para que Ciclano seja maior que Fulano. O algoritmo deverá exibir a altura de cada um a cada ano até que a condição exigida seja alcançada.

    Solução (algoritmo): LRFulanoCiclano.alg

  62. $ \bigstar$ Dois carros (X e Y) saem de uma mesma cidade. O carro X sai com velocidade constante de 60 Km/h e o segundo carro com velocidade constante de 90 Km/h. A seguir faça a leitura de uma distância (em quilômetros) e calcule quanto tempo leva para o carro mais veloz tomar essa distância do outro carro.

  63. $ \bigstar\bigstar$ Considerando 3 carros (X,Y e Z) que saem de uma cidade A. A seguir, considerando que o caminho a percorrer pelo carro X é de 360 Km, pelo carro Y é de 270 Km e pelo carro Z é de 310 KM, faça a leitura da velocidade dos 3 carros e mostre o tempo em horas que cada um deles levará para percorrer seu percurso.

  64. $ \bigstar\bigstar\bigstar$ Realizou-se uma pesquisa para determinar o índice de mortalidade infantil em um certo período. Construa um algoritmo que leia o número de crianças nascidas no período e, depois, num número indeterminado de vezes, o sexo de uma criança morta (masculino, feminino) e o número de meses de vida da criança. Como finalizador, teremos a palavra "fim" no lugar do sexo da criança. Determine e imprima: - a porcentagem de crianças mortas no período; - a porcentagem de crianças do sexo masculino mortas no período; - a porcentagem de crianças que viveram dois anos ou menos no período.

  65. $ \bigstar\bigstar\bigstar$ Um cinema que possui capacidade de 100 lugares está sempre com ocupação total. Certo dia cada espectador respondeu a um questionário, no qual constava: - sua idade; - sua opinião em relação ao filme, segundo: ótimo = ***** bom = **** regular = *** ruim = ** péssimo = * Elabore um algoritmo que, lendo estes dados, calcule e imprima: - a quantidade de respostas ótimo; - a diferença percentual entre respostas bom e regular; - a média de idade das pessoas que responderam ruim; - a percentagem de respostas péssimo e a maior idade que utilizou esta opção; - a diferença de idade entre a maior idade que respondeu ótimo e a maior idade que respondeu ruim.

  66. $ \bigstar\bigstar\bigstar$ Suponha que exista um prédio sem limites de andares, ou seja, um prédio infinito, onde existam três elevadores denominados: A, B e C. Para otimizar o sistema de controle dos elevadores, foi realizado um levantamento no qual cada usuário respondia: - o elevador que utilizava com maior freqüência; - o andar ao qual se dirigia; - o período que utilizava o elevador, entre: - M = matutino; - V = vespertino; - N = noturno.

    Construa um algoritmo que calcule e imprima: - qual é o andar mais alto a ser utilizado; - qual é o elevador mais freqüentado e em que horário se encontra seu maior fluxo; - qual o horário mais usado de todos e a que elevador pertence; - qual a diferença percentual entre o mais usado dos horários e o menos usado (especificando qual o menos usado); qual a percentagem sobre o total de serviços prestados do elevador de média utilização.

  67. $ \bigstar$ Faça um algoritmo para ler um valor numérico e calcular e escrever o seu fatorial.

    SOLUçãO: LRFATORIAL.C.

    Solução (algoritmo): LRFatorial.alg

  68. $ \bigstar\bigstar$ Faça um algoritmo que leia um conjunto não determinado de valores para M (parar quando o valor digitado for igual a 0). Para cada valor lido, se este valor for par, mostre quantos divisores ele possui. Se for ímpar, mostre o fatorial de M.

    Solução (algoritmo): LRTestaDivisoresFatorial.alg

  69. $ \bigstar\bigstar$ Escreva algoritmo que apresente todos fatoriais cujo resultado seja inferior a um dado valor que é lido pelo teclado.

    Solução (algoritmo): LRIntervaloFatoriais.alg

  70. $ \bigstar\bigstar$ (Prova EST/2011-1) Escreva um algoritmo que leia um valor numérico e verifique se este número corresponde ao cálculo do fatorial de um valor. Se sim, exiba qual é esse número. Caso contrário, apresente uma mensagem informando que o valor não corresponde a um fatorial. Exemplo: se o usuário digitar 120, o algoritmo deve apresentar a mensagem informando que esse valor corresponde ao fatorial de 5, pois (5 x 4 x 3 x 2 x 1 = 120). Se o usuário digitar 100, por exemplo, o algoritmo deve apresentar uma mensagem informando que esse número não corresponde a nenhum cálculo de fatorial.

    SOLUçãO (ALGORITMO): LRTESTAFATORIAL.ALG

  71. $ \bigstar\bigstar$ Escrever um algoritmo que leia um valor em Reais (moeda). A seguir, calcule o menor número de notas possíveis no qual o valor pode ser decomposto. As notas consideradas são de 100, 50, 20, 10, 5, 2 e 1. A seguir, mostre o valor lido e a relação de notas necessárias. Neste caso, considere que o usuário nunca irá digitar valores com centavos.

  72. $ \bigstar\bigstar$ Uma das maneiras de se conseguir a raiz quadrada de um número é subtrair do número os ímpares consecutivos a partir de 1, até que o resultado da subtração seja menor ou igual a zero. O número de vezes que se conseguir fazer a subtração é a raiz quadrada exata (resultado 0) ou aproximadamente (resultado negativo).

    Ex: 16

    16-1=15-3=12-5=7-7=0

    raiz de 16 é 4.

    Faça um algoritmo que calcule a raiz quadrada de um número digitado pelo usuário utilizando o método citado acima.

  73. $ \bigstar\bigstar$ Elabore um algoritmo que obtenha o número inteiro que mais se aproxima da raiz quadrada de um número fornecido pelo usuáro.

    SOLUçãO: LRINTEIRORAIZ.C.

  74. $ \bigstar\bigstar$ Escreva um algoritmo que calcule a raiz quadrada de um número digitado pelo usuário. Não utilize a função sqrt fornecida pela linguagem C.

    SOLUçãO: LRRAIZQUADRADA.C.

    Comentários: o método utilizado para resolver esse exercício é o Método Babilônico. Maiores informações sobre a lógica do método pode ser encontrada em http://pt.wikipedia.org/wiki/Raiz_quadrada.

  75. $ \bigstar$ Supondo que a população de um país A seja 90 milhões de habitantes, crescendo com uma taxa anual de 3.5% e que a população de um país B seja 140 milhões de habitantes, crescendo a uma taxa anual de 1%. Faça um algoritmo que calcule e mostre quantos anos serão necessários para que a população do país A ultrapasse a população do país B.

  76. $ \bigstar$ Faça um algoritmo para ler dois valores inteiros. O primeiro valor digitado representa o primeiro elemento de uma progressão aritmética, e o segundo valor digitado representa a razão. Calcule e mostre os 10 elementos seguintes.

  77. $ \bigstar$ Faça um algoritmo para ler um número menor que 1000 e calcular e mostrar todos os números ímpares maiores que o número lido e menores que 1000.

  78. $ \bigstar\bigstar$ Leia a hora inicial e a hora final de um jogo. A seguir calcule a duração do jogo, sabendo que o mesmo pode começar em um dia e terminar em outro, tendo uma duração máxima de 24 horas.

  79. $ \bigstar\bigstar$ Escreva um algoritmo que calcule a soma dos 100 primeiros números inteiros.

    SOLUçãO: LRSOMA100INTEIROS.C.

  80. $ \bigstar$ Escreva um algoritmo que calcule e mostre a soma dos número pares de 1 até 100.

  81. $ \bigstar$ Apresente todos os números divisíveis por 5 que sejam maiores do que 0 e menores ou iguais a 200.

  82. $ \bigstar$ Escreva um algoritmo que leia 10 valores quaisquer. A seguir, mostre quantos deles estão dentro do intervalo [10,20] e quantos estão fora do intervalo, mostrando essas informações.

  83. $ \bigstar\bigstar$ Escreva um algoritmo que leia um número e diga se este número é perfeito ou não. Um número perfeito é aquele que é igual à soma de seus divisores, excluindo o próprio número. Exemplos: 1 + 2 + 3 = 6 e 1 + 2 + 4 + 7 = 28.

    SOLUçãO: LRTESTANUMEROPERFEITO.C.

    Solução (algoritmo): LRNumerosPerfeitos.alg

  84. $ \bigstar\bigstar$ Fazer um programa que leia uma frase de até 50 caracteres e escreva como resultado o número de vogais, consoantes e espaços em branco existentes na frase. Lembre-se que, normalmente, espaço em branco é considerado como um caracter.

  85. $ \bigstar\bigstar$ Escreva um algoritmo que leia dois números (X e Y) e depois imprima a soma dos números ímpares entre eles.

    SOLUçãO: LRSOMAIMPARESINTERVALO.ALG.

  86. $ \bigstar\bigstar$ Escrever um algoritmo que lê um valor para X e calcula e mostra os 20 primeiros termos da série:

    primeiro termo: $ \dfrac{1}{x}$; segundo termo: $ \dfrac{1}{x}$ + $ \dfrac{1}{x^2}$; terceiro termo: $ \dfrac{1}{x} + \dfrac{1}{x^2} + \dfrac{1}{x^3}$; e assim por diante.

  87. $ \bigstar\bigstar$ Faça um algoritmo para ler dois números inteiros e calcular e mostrar o valor resultante se elevarmos a base representada pelo primeiro à potência representada pelo segundo.

  88. $ \bigstar\bigstar$ Escreva um algoritmo para mostrar os números entre 1000 e 2000 que quando divididos por 11 dão resto igual a 5.

    SOLUçãO: LRCONTANUMEROSESPECIFICOS.C.

  89. $ \bigstar\bigstar$ Escreva um algoritmo que calcule e escreva o valor de S:

    $\displaystyle S = \frac{1}{1} + \frac{1}{2} + \frac{1}{3} + \frac{1}{4} + ... + \frac{1}{100}$ (0.11)

    Solução (algoritmo): LRSomatoria100.alg

  90. $ \bigstar\bigstar$ Faça um algoritmo para calcular e mostrar a soma dos 50 primeiros elementos da série:

    $\displaystyle \frac{1000}{1} - \frac{997}{2} + \frac{994}{3} - \frac{991}{4} + ...$ (0.12)

    Solução (algoritmo): LRSomatorio50.alg

  91. $ \bigstar\bigstar$ Prepare um algoritmo que calcule o valor de H, sendo que ele é determinado pela série

    $\displaystyle H = \frac{1}{1} + \frac{3}{2} + \frac{5}{3} + \frac{7}{4} + ... + \frac{99}{50}$ (0.13)

    SOLUçãO: LRSERIEH.C.

    COMENTáRIOS: DEVE-SE OBSERVAR A NECESSIDADE DE CONVERTER A VARIáVEL NUM PARA O TIPO FLOAT, POIS A DIVISãO DE DOIS INTEIROS EM C é UM VALOR INTEIRO. A LINGUAGEM FAZ UMA CONVERSãO AUTOMáTICA.

  92. $ \bigstar\bigstar$ Elabore um algoritmo que determine o valor de S, onde:

    $\displaystyle S = \frac{1}{1} - \frac{2}{4} + \frac{3}{9} - \frac{4}{16} + \frac{5}{25} - \frac{6}{36} + ... - \frac{10}{100}$ (0.14)

    Solução (algoritmo): LRSomatorio10.alg

  93. $ \bigstar\bigstar$ Escreva um algoritmo que calcule e escreva a soma dos n primeiros termos da seguinte série:

    $\displaystyle \frac{2}{500} - \frac{5}{450} + \frac{2}{400} - \frac{5}{350} + ...$ (0.15)

    SOLUçãO (ALGORITMO): LRSERIEALTERNADA.ALG.

  94. $ \bigstar\bigstar$ Escreva um algoritmo para calcular uma tabela com o sen(x), com x variando de 0 a 90 graus. Utilize cinco parcelas e depois dez primeiras parcelas para calcular e faça a comparação de precisão do cálculo.

    $\displaystyle sen (x) = x - \frac{x^3}{3!} + \frac{x^5}{5!} - ...$ (0.16)

  95. $ \bigstar\bigstar$ Escreva um algoritmo que calcule o valor aproximado de PI utilizando a fórmula abaixo:

    $\displaystyle PI = \sqrt[3]{H * 32}, onde:$ (0.17)

    $\displaystyle H = \frac{1}{1^3} - \frac{1}{3^3} + \frac{1}{5^3} - \frac{1}{7^3} + \frac{1}{9^3} - ...$ (0.18)

    Solução: LRCalculoValorPI.c

  96. $ \bigstar\bigstar$ Na Matemática, uma série é uma sequência de números que possui uma lei de formação. Faça um algortimo para calcular a soma da série abaixo, onde N é fornecido pelo usuário.

    $\displaystyle H = \frac{1}{2} + \frac{1}{4} + \frac{1}{6} + ... + \frac{1}{2N}$ (0.19)

  97. $ \bigstar\bigstar$ Escreva um algoritmo para testar se um número digitado pelo usuário é ou não defectivo. Número defectivo é aquele cuja soma dos seus divisores é menor que o próprio número. Por exemplo, 10 é um número defectivo, pois a somatória dos seus divisores (1, 2, 5) é menor que o próprio número (8<10). Já o número 12 não é defectivo, pois a somatória dos seus divisores (1, 2, 3, 4, 6) é maior que o próprio número (16>12).

  98. $ \bigstar\bigstar\bigstar$ (Prova monitoria UEA/2011) Escreva um algoritmo para exibir os 10 primeiros números defectivos. Número defectivo é aquele cuja soma dos seus divisores é menor que o próprio número. Por exemplo, 10 é um número defectivo, pois a somatória dos seus divisores (1, 2, 5) é menor que o próprio número (8<10). Já o número 12 não é defectivo, pois a somatória dos seus divisores (1, 2, 3, 4, 6) é maior que o próprio número (16>12).

    SOLUçãO (ALGORITMO): LRNUMEROSDEFECTIVOS.ALG

  99. $ \bigstar\bigstar$ Escrever um algoritmo que mostra os números primos entre 100 e 200, bem como a soma destes números.

    SOLUçãO (ALGORITMO): LREXIBESOMA100PRIMOS.ALG

  100. $ \bigstar$ Mostre o que será impresso pelos algoritmos abaixo:

    a)

    algoritmo "teste"
    var
         X,I:inteiro
    inicio
         I<-1
         Enquanto( I<20) faca
              X<- quad(I)
              escreva(I,X);
               I<-I+2
               escreva("Passei por aqui!")
           fimenquanto
           escreva("Ufa, cheguei aqui")
    fimalgoritmo
    

    b)

    algoritmo "teste"
    var
        X,Y:inteiro
    Inicio
        X<-0
        Y<-30
        enquanto (X<10) faca
             X<-X+1
             Y<-Y-1
        fimenquanto
        escrever(X)
        escrever(Y)
    fimalgoritmo
    

  101. $ \bigstar\bigstar$ Escreva um algoritmo que lê um valor N inteiro e positivo e que calcula e escreve o valor da constante matemática e, onde:

    $\displaystyle e = 1 + \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + ... + \frac{1}{N!}$ (0.20)

    SOLUçãO (ALGORITMO): LRCALCULOCONSTANTEE.ALG

  102. $ \bigstar\bigstar\bigstar$ Em uma competição de saltos ornamentais 6 (seis) juízes informam notas reais variando de 0 a 10. Para se calcular a nota final do atleta deve-se excluir a maior e a menor nota dos juízes e então a nota final será calculada pela média aritmética das 4 (quatro) notas restantes. Faça um algoritmo para ler a quantidade de atletas para os quais serão calculadas a nota final de cada atleta. Considere que para cada atleta deve ser informado além das notas o seu número de competidor (inteiro positivo). O algoritmo deverá imprimir o número de cada atleta e sua respectiva nota final, da seguinte forma:

    A nota final do atleta x é igual a y.

    Onde: x representa o número de cada atleta e y representa a nota final de cada atleta.

    OBS: A mensagem de saída deve ser apresentada uma embaixo da outra.

    SOLUçãO (ALGORITMO): LRCALCULONOTASATLETAS.ALG

  103. $ \bigstar\bigstar$ Escreva um algoritmo em que o usuário irá digitar valores numéricos até que seja digitado um valor primo. Quando o usuário digitar um número primo, o algoritmo deve encerrar a execução e deve apresentar uma mensagem informando a quantidade de números digitados (incluindo o próprio número primo). A mensagem deve seguir o formato: “Foram digitados <total> números.”.

    SOLUçãO (ALGORITMO): LRCONTADORNUMEROS.ALG

  104. $ \bigstar\bigstar$ (Prova EST/2011-3) Escreva um programa em C que leia uma quantidade indeterminada de valores inteiros e positivos (a leitura será interrompida quando o usuário digitar zero). Para cada valor lido, o programa deverá exibir uma mensagem informando se este número é ou não primo. Ao final da execução, o programa deverá exibir a quantidade de números primos que foram digitados.

    SOLUçãO: LRCONTADORPRIMOS.C.

  105. $ \bigstar\bigstar$ (Prova EST/2012-1) Um número excessivo ou abundante é aquele cuja soma dos seus divisores (excluído o próprio número) é maior do que ele mesmo. Por exemplo, o número 12 é abundante, pois se somarmos os seus divisores (1, 2, 3, 4 e 6) obteremos o valor 16 e este é maior do que o próprio número. Já o número 10 não é excessivo, pois a somatória dos seus divisores (1, 2 e 5) é menor do que 10. Escreva um algoritmo que permita a leitura de um valor a partir do teclado e imprima uma mensagem informando se o número digitado é ou não excessivo.

    SOLUçãO (ALGORITMO): LRNUMEROSABUNDANTES.ALG

  106. $ \bigstar\bigstar$ (Prova EST/2012-2) Escreva um programa em C que leia uma quantidade indeterminada de números inteiros e informe a média dos números pares lidos. O programa interrompe quando entramos com um número menor que 1.

    SOLUçãO: LRCONTAPARES.C.

  107. $ \bigstar\bigstar$ (Prova EST/2013-1) Gottfried Wilhelm von Leibniz, utilizando-se da série de Taylor, criou uma fórmula que gera o valor de pi. Escreva um algoritmo que, utilizando a série descrita abaixo, imprima o valor de pi. A quantidade de parcelas será informada pelo usuário. Vale observar que quanto maior for o número de parcelas maior será a precisão de pi.

    Figure: Série para cálculo de pi.
    \includegraphics{pi.eps}

    SOLUçãO (ALGORITMO): LRSERIEPI.ALG

  108. $ \bigstar\bigstar$ (Prova EST/2013-1) Escreva um algoritmo que leia um valor numérico e um símbolo. Caso o símbolo seja um dos valores relacionados abaixo, efetue a operação correspondente. Se o usuário digitar um símbolo inválido, apresente a seguinte mensagem: “<valor digitado> não corresponde a uma opção válida”. Utilize o comando escolha na seleção da operação.

    p Testar se o número digitado é um número perfeito, ou seja, se o número é igual à soma de seus divisores (excluído o próprio número). Exemplo: 6 (1 + 2 + 3).
    i Testar se o número digitado é um número levemente imperfeito, ou seja, se o número é igual à soma de seus divisores menos a unidade (excluído o próprio número). Exemplos: 4 (1 + 2 = 4 – 1) ou 8 (1 + 2 + 4 = 8 – 1).

    SOLUçãO (ALGORITMO): LRESCOLHANUMPERFEITOS.ALG

  109. $ \bigstar\bigstar\bigstar$ (Prova UEA/2013.2) Escreva um programa em C que imprima os quinhentos primeiros termos da série abaixo:

    Série: 2, 7, 3, 4, 21, 12, 8, 63, 48, 16, 189, 192, 32, 567, 768, …

    Dica: os três primeiros números da série são 2, 7 e 3. Os próximos números são multiplicados por 2, 3 e 4, respectivamente. Assim, obteve-se depois 4, 21 e 12. Novamente multiplica-se por 2, 3 e 4, obtendo-se 8, 63 e 48.

    SOLUçãO1: LRGERASERIEESPECIAL.C.

    SOLUçãO2: LRGERASERIEESPECIAL2.C.

  110. $ \bigstar\bigstar\bigstar$ Escreva um programa em C que imprima a série abaixo.

    Série: 2, 7, 3, 4, 21, 12, 8, 63, 48, 16, 189, 192, 32, 567, 768, …

    O usuário digitará a quantidade de números que deverão aparecer na tela.

    Dica: os três primeiros números da série são 2, 7 e 3. Os próximos números são multiplicados por 2, 3 e 4, respectivamente. Assim, obteve-se depois 4, 21 e 12. Novamente multiplica-se por 2, 3 e 4, obtendo-se 8, 63 e 48.

Tiago Eugenio de Melo 2014-03-31