Você está na página 1de 26

Universidade Federal de Campina Grande Departamento de Sistemas e Computaao c Ps-Graduaao em Informtica o c a

Problemas para resoluo em Pascal/C ca

Elthon Allex da Silva Oliveira Camilo de Lelis Gondim Medeiros

Campina Grande - 2005

Questes o
Operadores e Variveis (Entrada e Sa de dados) a da
1. Faa um programa que imprima o produto de dois nmeros quaisquer, lidos c u do teclado. 2. Faa um programa que imprima a raiz quadrada de um nmero qualquer c u lido do teclado. 3. Faa um programa para calcular a idade de uma pessoa em dias, dado o c nmero de anos. O nmero de anos deve ser lido do teclado. Considere 1 u u ano = 365 dias. 4. Faa um programa para calcular a idade de uma pessoa horas, dado o c nmero de anos. O nmero de anos deve ser lido do teclado. Considere 1 u u ano = 365 dias e 1 dia = 24 horas. 5. Escreva um programa que solicite 3 nmeros reais e imprima a mdia aru e itmtica destes nmeros. e u 6. Faa um programa que tome o valor de uma conta de restaurante (valor c lido do teclado) e imprima o valor total a ser pago, considerando que o restaurante cobra 10% para o garom. c 7. Faa um programa que pea ao usurio a quilometragem atual, a quilomec c a tragem anterior, os litros consumidos e informe a taxa de consumo (quilmetros o por litro) de um automvel. o 8. Criar um programa que converta uma dada temperatura de Celsius para Fahrenheit. Frmula de converso: F = 1.8*C + 32. o a 9. Faa um programa que tome os tamanhos dos catetos de um tringulo c a 2 + c2 ). retngulo e mostre na tela o valor de sua hipotenusa (h = b a 10. Faa um programa que calcule a rea (r2 ) de um c c a rculo a partir do valor do per metro (valor dado pelo usurio - 2r). Obs.: =3.1416 a 11. Faa um programa que calcule o volume de um prisma de base circular. O c usurio deve fornecer o raio da base e a altura do prisma. a 12. Faa um programa que leia um valor em polegadas e apresente a mensagem: c x polegadas correspondem a y cent metros. Obs.: 1=2.54cm 13. Escreva um programa para ler os coecientes de uma equao do segundo ca grau (ax2 + bx + c = 0) e determinar suas ra reais, caso existam. zes b b2 4ac b + b2 4ac , x2 = (1) x1 = 2a 2a

14. Escreva um programa que leia um nmero natural na base binria, e o u a transforme para a base decimal. 15. Escreva um programa que leia um nmero natural na base decimal, e o u transforme para a base binria. a 16. Escreva um programa que dado x segundos fornecidos pelo usurio, transformea os em horas e minutos quando poss vel. Ex.: 3670 segundos = 1h 1min 10seg; 65 segundos = 0h 1min 5seg; 43 segundos = 0h 0min 43seg. 17. Escreva um programa que transforme um dado peso em toneladas para o seu peso em arrobas. 1 arroba equivale a 15 Kg.

Desvios Condicionais
1. Escreva um programa para ler trs nmeros reais quaisquer e imprimir estes e u nmeros em ordem numrica crescente. u e 2. Todos que querem aprender a jogar golfe se deparam com diversas esquisitices (como qualquer jogo inventado pelos britnicos). Uma dessas a esquisitices o jeito de contar o nmero de tacadas que um jogador pree u cisou para colocar a bola no buraco. Existe um par para cada buraco, e praticamente todos os resultados so relativos ao par (o par o nmero de a e u tacadas que um jogador razovel precisa para colocar a bola no buraco). Se a o jogador precisar de uma tacada a menos que o par, dizemos que fez um birdie. Se foram duas a menos, ele fez um eagle, trs a menos, ou menos e tacadas, double eagle. Alm disso, as tacadas espetaculares em que o joe gador acerta a bolinha na primeira tacada recebem o nome de hole-in-one. Se ele precisar de uma a mais que o par, fez um bogey, duas a mais ou mais tacadas, double bogey. Voc o caddy do jogador (aquele que carrega os ee tacos e anota os resultados) e se confunde todo com esses nomes. Assim, voc deve escrever um programa que dado o par para um buraco e o e nmero de tacadas que o jogador precisou, imprime o nome da jogada que u fez o jogador. 3. Escreva um programa para ler cinco valores inteiros aleatrios, imprimir os o valores lidos e determinar o maior dos valores lidos. 4. Escreva um programa para ler cinco valores inteiros aleatrios, imprimir o os valores lidos e determinar o menor dos valores lidos e sua posiao no c conjunto. 5. Escreva um programa para ler cinco nmeros inteiros, imprimir os nmeros u u lidos e determinar a diferena entre os dois maiores nmeros lidos. c u

6. Escreva um programa para ler trs valores inteiros, imprimir os valores lidos e e determinar o valor que no o maior e que no o menor dos trs valores a e a e e lidos. 7. Escreva um programa para ler quatro valores reais, imprimir os valores lidos e determinar: (a) a mdia dos nmeros positivos; e u (b) a mdia dos nmeros negativos; e u (c) a soma de todos os valores lidos. 8. Dizemos que um nmero natural triangular se ele produto de trs u e e e nmeros naturais consecutivos. Exemplo: 120 triangular, pois 4*5*6 = u e 120. Dado n natural, vericar se n triangular. e 9. Escreva um programa para ler um nmero inteiro qualquer e determinar se u ele primo. e 10. Dado n inteiro positivo, dizemos que n perfeito se for igual ` soma de seus e a divisores positivos diferentes de n. Exemplo: 6 perfeito, pois 1+2+3 = 6. e Escreva um programa que verique se um dado nmero inteiro positivo u e perfeito 11. Escreva um programa para determinar se um nmero inteiro de quatro u d gitos pal e ndromo perfeito. Um nmero pal u e ndromo perfeito quando pode ser lido da direita para a esquerda sem alterar seu valor, tal como 1661. 12. Escreva um programa para identicar os pares de nmeros menores que 500 u tais que o segundo seja igual a 1 mais duas vezes o primeiro. Exemplo: 3 e 7. 13. Escreva um programa para determinar um nmero inteiro n tal que n + u 3n + 5 seja divis por 121. vel 14. Escreva um programa para ler dois nmeros inteiros e determinar se eles u so primos gmeos. Dois nmeros so primos gmeos se eles so primos e a e u a e a existe uma diferena de dois (2) entre eles (11 e 13 so primos gmeos). c a e 15. Escreva um programa que leia trs nmeros naturais, e verique se eles e u podem formar os lados de um tringulo retngulo. a a 16. Escreva um programa que leia um nmero inteiro qualquer e determine se u o nmero que foi lido par ou u e mpar.

17. Escreva um programa para ler vinte nmeros inteiros e determinar se cada u um desses nmeros par ou u e mpar. 18. Escreva um programa para ler e imprimir 3 valores reais. O programa deve informar se esses valores formam um tringulo e o tipo de tringulo. O a a tringulo poder ser: a a (a) equiltero - quando os trs lados forem iguais; a e (b) issceles - quando dois dos lados forem iguais e o (c) escaleno - quando os trs lados forem distintos. e 19. Escreva um programa para ler um nmero inteiro e um natural k. Calcular u k n . 20. Escreva um programa que leia as coordenadas (x1 , y1 ), (x2 , y2 ), e (x3 , y3 ) representando os vrtices de um tringulo em um sistema de coordenadas e a cartesianas, leia as coordenadas (x4 , y4 ) de um ponto qualquer e determine se o ponto est ou no dentro do tringulo. O programa tambm deve a a a e escrever todas as coordenadas na tela. 21. Escreva um programa para determinar o dia da semana referente a uma data qualquer do Calendrio Gregoriano. A data deve ser lida no formato a dia-ms-ano. O Reverendo Zeller desenvolveu o seguinte algoritmo com esse e objetivo: (a) considerar M como sendo o ms do ano, iniciando com maro com M e c = 1 e janeiro e fevereiro sendo os meses 11 e 12 do ano anterior; (b) considerar D como sendo o dia do ms; e (c) considerar A como sendo o ano do sculo; e (d) considerar S como sendo o sculo anterior. O e ndice do dia (Domingo = 0, Segunda = 1, ..., Sbado = 6) dado pelo resto da diviso de a e a (13M - 1)/5 + A/4 + S/4 por 7, considerando apenas a parte inteira de cada uma das divises. o 22. Faa um programa que leia a idade de uma pessoa e informe sua classe c eleitoral: no eleitor (abaixo de 16 anos), eleitor obrigatrio (entre 18 e 65 a o anos) e eleitor facultativo (entre 16 e 18 anos e acima dos 65 anos). 23. Escreva um programa que simule uma calculadora simples com 4 operaes. co Os dados devem ser lidos na forma: operando1 operador operando2 O programa deve imprimir o resultado da operao. ca

24. No Brasil existe o CPF (Cadastro de Pessoas F sicas) que serve para identicar cada indiv duo no pa O nmero do CPF composto de 11 d s. u e gitos, sendo os dois ultimos os d gitos de vericaao. A frmula para vericar a c o validade do nmero do CPF simples e explicada abaixo. Vamos tomar u e e como exemplo o nmero 123.456.789-09. u Primeiro D gito Vericador Primeiro calculamos a soma da multiplicao dos 9 primeiros d ca gitos por 10, 9, 8, ... , 3, 2, respectivamente. Ou seja: Soma = (1*10) + (2*9) + ... + (8*3) + (9*2). Em seguida, dividimos e multiplicamos por 11 (ao multiplicarmos utilizamos o valor inteiro da diviso): Valor = (Soma/11) a * 11. Por m, subtra mos Valor de Soma: Resultado = Soma - Valor. Note que acabamos de realizar o mdulo de Soma e 11. As duas operaes o co anteriores podem ser substitu das por Resultado = Soma mdulo 11. Agora o analisamos Resultado: Se Resultado for igual ` 1 ou ` 0, ento o 1o d a a a gito vericador 0; e Caso contrrio, o 1o d a gito vericador o resultado da subtrao de e ca Resultado de 11. Segundo D gito Vericador Primeiro calculamos a soma da multiplicao dos 9 primeiros d ca gitos por 11, 10, 9, ... , 4, 3, respectivamente e em seguida somamos com (Digito1 *2), sendo que Digito1 o valor encontrado para o 1o d e gito vericador. Ou seja: Soma = (1*11) + (2*10) + ... + (8*4) + (9*3) + (Digito1*2). O resto semelhante ao que foi feito anteriormente. Dividimos e multiplicamos e por 11 (ao multiplicarmos utilizamos o valor inteiro da diviso): Valor = a (Soma/11) * 11. Por m, subtra mos Valor de Soma: Resultado = Soma - Valor. Agora analisamos Resultado: Se Resultado for igual ` 1 ou ` 0, ento o 2o d a a a gito vericador 0; e Caso contrrio, o 2o d a gito vericador o resultado da subtrao de e ca Resultado de 11. No nosso exemplo (123.456.789-09) o nmero vlido. Escreva um prou e a grama que dado um nmero de CPF, vericar se o d u gito vericador e vlido ou no. a a 25. Uma pessoa aplicou um capital de x reais a juros mensais de z durante um ano. Escreva um programa que determine o montante ao nal do ano. 26. Escreva um programa que leia um ponto (x,y) do plano cartesiano e diga se o mesmo est dentro da circunferncia de raio 3 e centro no ponto (0,0). a e

27. Escreva um programa que leia um ponto (x,y) do plano cartesiano e diga se o mesmo est dentro da circunferncia de raio a ser fornecido pelo usurio a e a e centro no ponto (0,0). 28. Escreva um programa para ler um nmero inteiro com at 6 d u e gitos e determinar seu correspondente em algarismos romanos. 29. Escreva um programa para ler um nmero em algarismos romanos e deteru minar seu correspondente em algarismos arbicos. a

Laos c
1. Escreva um programa para ler um nmero inteiro n e imprimir o valor lido u e os n primeiros nmeros u mpares positivos. 2. Escreva um programa para ler um nmero inteiro n e outro m. O programa u deve imprimir os n primeiros nmeros mltiplos de m. u u 3. Escreva um programa para ler um nmero inteiro n e outro m. O prou grama deve imprimir os n primeiros nmeros mltiplos de m, excluindo-se u u os mltiplos de 3. u 4. Escreva um programa para ler um nmero inteiro n e imprimir os n primeiros u nmeros pares positivos. u 5. Escreva um programa para ler um nmero inteiro k e imprimir os k primeiros u nmeros u mpares positivos e sua soma. 6. Escreva um programa para ler um nmero inteiro k e imprimir os k primeiros u nmeros pares positivos e sua soma. u 7. Escreva um programa para ler vinte nmeros inteiros e determinar se cada u um desses nmeros par ou u e mpar. 8. Escreva um programa que calcule a mdia de uma seqncia de nmeros e ue u reais positivos inseridos pelo usurio. A entrada de dados termina quando a o nmero digitado for negativo. u 9. Escreva um programa para ler vrios pares de nmeros, um n inteiro e um a u natural k. A cada par lido deve-se calcular e mostrar nk .A leitura deve ser encerrado quando k for menor que zero. 10. Escreva um programa para determinar todos os nmeros pal u ndromos perfeitos do intervalo [1000, 9999]. Um nmero pal u e ndromo perfeito quando pode ser lido da direita para a esquerda sem alterar seu valor, tal como 1661.

11. Escreva um programa para ler os coecientes de vrias equaoes do sea c gundo grau e determinar, para cada uma das equaes, suas ra co zes reais, caso existam. Quando a equao no possuir ra reais, o programa deve ca a zes informar esta ocorrncia. O processamento deve ser encerrado quando o e primeiro valor lido, de uma determinada equaao, for nulo, sem considerar c este grupo de valores nos clculos. a 12. Escreva um programa para ler dois nmeros inteiros m e n e, a seguir, u imprimir os nmeros pares existentes no intervalo [m, n]. u 13. Escreva um programa para ler seguidamente valores inteiros at que seja e lido um valor negativo. Para cada valor lido, exceto o ultimo, o programa deve determinar seu fatorial. 14. Escreva um programa que imprima os seis primeiros pares de primos gmeos. e Dois nmeros so primos gmeos se eles so primos e existe uma diferena u a e a c de dois (2) entre eles (11 e 13 so primos gmeos). a e 15. Escreva um programa para ler um nmero inteiro qualquer e determinar u todos os seus divisores exatos. 16. Escreva um programa para determinar todos os pares de primos gmeos e menores que n, sendo n um valor lido do teclado. 17. Para n alunos de uma determinada classe so dadas as 3 notas das provas. a Calcular a mdia aritmtica das provas de cada aluno, a mdia da classe, e e e o nmero de aprovados e o nmero de reprovados (critrio de aprovao: u u e ca mdia maior ou igual a cinco). e 18. Escreva um programa para ler dez grupos de trs valores inteiros cada, e imprimir os valores lidos identicando o valor que no o maior e que no a e a o menor para cada um dos grupos de trs valores. e e 19. Escreva um programa para determinar todos os nmeros perfeitos existentes u entre 2 e 1000. Um nmero perfeito quando a soma de seus divisores, u e excetuando-se o prprio nmero, for igual ao nmero. o u u 20. Escreva um programa para ler trs nmeros inteiros e imprimir todos os e u mltiplos do primeiro que estejam compreendidos entre o segundo e o teru ceiro, inclusive. Assuma que primeiro segundo terceiro. 21. Escreva um programa para ler vinte valores inteiros e imprimir cada um dos valores acompanhados de todos os seus divisores exatos. 22. Escreva um programa para ler quinze pares de valores inteiros e determinar o Mximo Divisor Comum para cada um dos quinze pares de valores. a

23. Escreva um programa que leia um nmero inteiro qualquer e determine se u esse nmero perfeito ou no. Um nmero perfeito quando a soma de u e a u e seus divisores, excetuando-se o prprio nmero, for igual ao nmero. o u u 24. Escreva um programa para determinar o nmero de combinaoes de n obu c jetos tomados p a p, a partir de valores de n e p lidos da unidade padro a de entrada. n! n Cp = (2) p!(n p)! 25. Escreva um programa para ler dois nmeros inteiros e determinar se eles u so primos relativos. Dois nmeros so primos relativos (ou primos entre a u a si) quando eles no tm nenhum divisor comum (excetuando-se a unidade). a e 26. Escreva um programa para clculo do M a nimo Mltiplo Comum entre dois u nmeros inteiros lidos da unidade padro de entrada. u a 27. Escreva um programa para ler um nmero inteiro n e a seguir ler n pares u de valores inteiros. Para cada um dos n pares de valores o programa deve determinar seu M nimo Mltiplo Comum. u 28. Escreva um programa para ler vrios grupos de dois valores inteiros at a e encontrar dois valores iguais. O programa deve imprimir cada par de valores acompanhado de seu M nimo Mltiplo Comum. u 29. Escreva um programa para ler vrios grupos de trs valores inteiros e dea e terminar o valor que no o maior e que no o menor para cada um dos a e a e grupos. O processamento deve ser encerrado quando um dos trs valores e for negativo. 30. Faa um programa para o jogo de adivinhar um nmero. O computac u dor deve sortear um nmero entre 0 e 100 e pedir para o usurio tentar u a adivinhar este nmero. O usurio vai dizer o seu palpite, e o computador u a deve responder, se ele maior ou menor que o nmero que ele sorteou. e u O programa termina somente quando o usurio acertar exatamente qual o a nmero que o computador tinha sorteado, escrevendo uma mensagem de u felicitaoes para o nosso usurio e indicando o nmero total de tentativas c a u feitas. Dica: para gerar um nmero qualquer entre 0 e 100, use um cou mando como o deste exemplo indicado logo a seguir. Exemplo: numero sorteado := random (100); { 0 numero sorteado < 100 } 1 31. Escreva um programa que leia dois valores inteiros a e b (a sempre par e menor que b), calcule o produtrio dos nmeros pares compreendidos entre o u
1

Exemplo em cdigo Pascal. o

a e b, inclusive. O programa deve imprimir o produtrio e a quantidade de o elementos que compem o produtrio. o o 32. Escreva um programa para identicar os nmeros amigveis menores que u a 2000. Dois nmeros so amigveis quando cada um igual ` soma dos u a a e a divisores do outro nmero (excluindo apenas o prprio nmero). Exemplo: u o u 220 e 284 so nmeros amigveis pois a soma dos divisores de 220 (1, 2, 4, a u a 5, 10, 11, 20, 22, 44, 55, 110) igual a 284 e a soma dos divisores de 284 e (1, 2, 4, 71, 142) igual a 220. e 33. Criar um algoritmo que imprima a tabela de converso Celsius-Fahrenheit, a em intervalos de 1 grau, numa faixa de temperaturas especicada pelo usurio. O algoritmo deve solicitar ao usurio o limite inferior e o lima a ite superior da faixa de temperaturas (em graus Celsius). O valor fornecido pelo usurio ser um inteiro. Frmula de converso: F = 1.8*C + 32. Exa a o a emplo: valores lidos: 50 52 sa da: 50 122 51 123.8 52 125.6 34. Escreva um programa para ler um valor inteiro k e calcular a mdia are itmtica de k valores reais lidos da unidade padro de entrada. O programa e a deve imprimir os valores lidos e a sua mdia aritmtica. e e 35. Escreva um programa para ler um valor inteiro k e calcular a mdia are itmtica de k valores reais lidos da unidade padro de entrada. O programa e a deve imprimir o fatorial de cada nmero par positivo fornecido. u 36. Escreva um programa para ler um nmero inteiro k, e a seguir ler k nmeros u u inteiros, imprimir os valores lidos e determinar a mdia aritmtica dos vale e ores mpares e a mdia aritmtica dos valores pares existentes entre os e e valores lidos. 37. Escreva um programa para determinar todos os nmeros de 3 algarismos, u cujas somas dos cubos dos algarismos sejam iguais ao prprio nmero. Exo u emplo: 153 = 1 + 5 + 3 . 38. Escreva um programa para determinar todos os nmeros de 4 algarismos u que possam ser separados em dois nmeros de dois algarismos que somados u e elevando-se a soma ao quadrado obtenha-se o prprio nmero. Exemplo: o u 3025 = (30 + 25) = 55. 39. Escreva um programa para ler e imprimir a idade de um grupo de 20 pessoas. Ao nal, o programa deve determinar a pessoa mais idosa, a mais jovem, e a mdia das idades do grupo de pessoas. e

40. Dado n e dois nmeros naturais i e j diferentes de 0, imprimir em ordem u crescente os n primeiros naturais que so mltiplos de i ou de j ou de ambos. a u Exemplo: Para n = 6 , i = 2 e j = 3 a sa dever ser : 0,2,3,4,6,8 da a 41. Escreva um programa que leia dois inteiros m e n, imprima os valores lidos e determine os n primeiros mltiplos de m. u 42. Escreva um programa para ler um nmero inteiro n e imprimir os n primeiros u nmeros primos. u 43. Escreva um programa para determinar os nmeros primos do intervalo [501, u 1500]. 44. Escreva um programa para determinar os nmeros primos do intervalo [m, u n], onde m e n so valores lidos da unidade padro de entrada. a a 45. Escreva um programa para ler um nmero inteiro qualquer e vericar se u o nmero lido primo. Em caso armativo, o programa deve imprimir o u e fatorial do nmero. Caso o nmero no seja primo, imprimir todos os seus u u a divisores. 46. Escreva um programa para ler seguidamente vrios valores inteiros at ena e contrar um valor negativo ou nulo. Para cada um dos valores lidos, exceto o ultimo, o programa deve informar se o valor primo ou no. e a 47. Dada uma seqencia de n nmeros inteiros, determinar a soma dos nmeros u u u pares. 48. Uma loja de discos anota diariamente durante o ms de maro a quantidade e c de discos vendidos. Determinar em que dia desse ms ocorreu a maior venda e e qual foi a quantidade de discos vendida nesse dia. 49. Escreva um programa que leia um conjunto de pontos (x,y) do plano cartesiano e diga se os mesmos esto ou no dentro da circunferncia de raio a a a e ser fornecido pelo usurio e centro no ponto (0,0). a 50. Dada uma seqencia de n nmeros inteiros, determinar a quantidade de u u nmeros mltiplos de 3. u u 51. Escreva um programa para ler um nmero inteiro qualquer e determinar u seu fatorial. 52. Escreva um programa que leia 10 pares de nmeros inteiros (m, n) e para u cada par de valores: (a) imprima os valores lidos; (b) imprima os n primeiros mltiplos de m. u

10

53. Escreva um programa para determinar o fatorial de dez nmeros inteiros u quaisquer, lidos do teclado. 54. Escreva um programa para imprimir uma tabela de temperaturas em graus Clsius e equivalentes em Fahrenheit, de 0 C a 100 C. e 55. Escreva um programa para ler dez grupos de valores para A, B e C (variveis a do tipo REAL). Para cada grupo de valores o programa deve imprimir os valores lidos e as ra da equaao Ax2 + Bx + C = 0. zes c 56. Escreva um programa para ler quatro valores reais, imprimir o maior dos quatro valores e os valores lidos na seqncia em que foram fornecidos. ue 57. Escreva um programa para calcular uma aproximao para Pi. A aproxca imaao pode ser obtida de Pi = 4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 + ... c O programa deve encerrar o processamento quando a variao no valor ca calculado for inferior a 0.0001. 58. Escreva programas para clculo da soma 1 - 1/2 + 1/3 - 1/4 + ... + 1/9999 a - 1/10000 por adio dos termos: da esquerda para a direita; da direita para ca a esquerda; positivos e dos termos negativos, separadamente, da esquerda para a direita; positivos e dos termos negativos, separadamente, da direita para a esquerda. O resultado com dez casas decimais 0.6930971830. e 59. Escreva um programa para calcular uma aproximao para cosseno(x), onde ca x um valor inteiro lido da unidade padro de entrada. A aproximao e a ca pode ser obtida de cos(x) = 1 - x/2! + x/4! - x/6! ... O programa deve encerrar o processamento quando a variaao no valor calculado for inferior c a 0.001. 60. Escreva um programa para calcular uma aproximaao para seno(x), onde x c um valor inteiro lido da unidade padro de entrada. A aproximao pode e a ca ser obtida de: sen(x) = x - x/3! + x/5! - x/7! + ... O programa deve encerrar o processamento quando a variaao no valor calculado for inferior c a 0.001. 61. Escreva um programa para calcular uma aproximao para exp(x), onde x ca um nmero qualquer lido da unidade padro de entrada. A aproximaao e u a c pode ser obtida de: exp(x) = 1 + x + x/2! + ... + x/i!. O programa deve encerrar o processamento quando a variaao no valor calculado for inferior c a 0.0001. 62. Dado um pa A, com x milhes de habitantes e uma taxa de natalidade s o de 1% ao ano, e um pa B, com y milhes de habitantes e uma taxa de s o natalidade de 1,25% ao ano, calcular e imprimir o tempo necessrio para a que a populaao do pa B ultrapasse a populaao do pa A. Suponha que c s c s

11

o usurio digita um valor inicial de x maior que o valor inicial de y. Caso a isto no acontea, solicitar novos valores ao usurio at que a condio seja a c a e ca satisfeita. 63. Escreva um programa que imprima a tabela abaixo:
Nmero u 1.5 2.5 . . . . . . . . . . 99.5 Quadrado 2.25 6.25 . . . . . . . . . . 9900.25 Cubo 3.375 15.625 . . . . . . . . . . 985074.875 Raiz Quadrada 1.2247 1.5811 . . . . . . . . . . 9.9749 Raiz Cbica u 1.1447 1.3572 . . . . . . . . . . 4.6338

64. Qualquer nmero natural de quatro algarismos pode ser dividido em duas u dezenas formadas pelos seus dois primeiros e dois ultimos d gitos. Exemplos: 1297: 12 e 97; 5314: 53 e 14. Escreva um programa que imprime todos os milhares (4 algarismos) cuja raiz quadrada seja a soma das dezenas formadas pela diviso acima. Exemplo: raiz de 9801 = 99 = 98 + 01. Portanto a 9801 um dos nmeros a ser impresso. e u 65. Escreva um programa que leia um nmero inteiro n e imprima n vezes as u informaoes do seu carto pessoal. c a 66. Escreva um programa para gerar os cinqenta primeiros termos da srie: 1, u e 1, 2, 4, 3, 9, 4, 16, 5, 25, 6, 36, ... 67. Escreva um programa para gerar os cinqenta primeiros termos da srie: 2, u e 4, 4, 16, 6, 36, 8, 64, ..., e determinar a sua soma. 68. Escreva um programa para gerar os cinqenta primeiros termos da srie: 1, u e 2, 4, 7, 11, 16, 22, ... 69. Escreva um programa para gerar os cinqenta primeiros termos da srie: 1 u e + n, 2 * n, 3 + n, 4 * n, ..., onde n um valor lido da unidade padro de e a entrada. 70. Escreva um programa para gerar os quinze primeiros termos da srie de e FIBONACCI: 1, 1, 2, 3, 5, 8, 13, ... 71. Escreva um programa para imprimir os termos da srie de FIBONACCI e menores que 10000. 72. Escreva um programa para ler um nmero desconhecido de valores reais e u imprimir todos os valores lidos, a soma dos valores lidos e a mdia aritmtica e e dos valores. O processamento encerra quando um mesmo valor for lido duas vezes consecutivas, sem considerar uma destas leituras no processamento.

12

73. Escreva um programa para ler um nmero inteiro n e, a seguir, gerar os n u primeiros termos da srie de FIBONACCI com aux da frmula: e lio o (1 + 5) ci f i = round( ), onde c = (3) 2 5 74. Escreva um programa para imprimir os termos da srie de FIBONACCI e menores que n e maiores que m, ambos os valores lidos do teclado. 75. Dado um natural n, escreva um programa que determine o nmero harmnico u o Hn denido por: n 1 Hn = (4) k=1 k 76. Dado um nmero natural n, escreva um programa que determine os n u primeiros nmeros harmnicos maiores que 2 (dois). u o 77. Dado dois naturais m e n, escreva um programa que determine todos os nmeros harmnicos entre os dois. u o

Vetores (Arrays)
1. Dada uma seqncia de n nmeros, imprimi-la na ordem inversa ` da ue u a leitura. 2. Dada uma seqncia x0 + x1 ,...,+ xk1 de nmeros inteiros, determiue u nar uma subseqncia crescente de comprimento mximo. Exemplo: na ue a seqncia 5, 2, 7, 1, 4, 11, 6, 9 a subseqncia sublinhada mxima e tem ue ue e a comprimento 4. 3. Faa um programa que leia um conjunto de 100 elementos numricos e os c e armazene em um vetor. Em seguida, o programa dever vericar se existem a elementos iguais a 30 no vetor e imprimir o ndice das posioes em que eles c foram encontrados. 4. Deseja-se publicar o nmero de acertos de cada aluno em uma prova em u forma de testes. A prova consta de 30 questes, cada uma com cinco altero nativas identicadas por A, B, C, D e E. Para isso so dados: a (a) carto gabarito; a (b) nmero de alunos da turma; u (c) carto de respostas para cada aluno, contendo o seu nmero e suas a u respostas.

13

5. Dados dois vetores x e y, ambos com n elementos, determinar o produto escalar desses vetores. 6. Faa um programa para resolver o seguinte problema: So dadas as coordec a nadas reais x e y de um ponto, um nmero natural n, e as coordenadas reais u de n pontos (1 < n < 100). Deseja-se calcular e imprimir sem repetiao c os raios das circunferncias centradas no ponto (x,y) que passam por pelo e menos um dos n pontos dados. Exemplo : (x,y) = (1.0, 1.0) ; n = 5. Pontos : (-1.0, 1.2) , (1.5, 2.0) , (0.0, -2.0) , (0.0, 0.5) , (4.0, 2.0). Nesse caso h a trs circunferncias de raios: 1.12, 2.01 e 3.162. Observaoes: e e c (a) Distncia entre os pontos (a,b) e (c,d) a e (a c)2 + (b d)2

(b) Dois pontos esto na mesma circunferncia se esto ` mesma distncia a e a a a do centro. 7. Escreva um programa para ler vinte valores reais aleatrios, imprimir os o valores lidos e determinar o menor dos valores lidos e a posio em que ca o mesmo foi digitado no conjunto de dados de entrada. Observe que o conjunto pode ou no, a depender do momento, ter valores repetidos e que a o programa deve estar preparado para tratar esta situao adequadamente. ca 8. Escreva um programa para ler cinqenta valores inteiros aleatrios, imu o primir os valores lidos e determinar o maior dos valores lidos. 9. Escreva um programa para ler um nmero inteiro k, e a seguir ler k nmeros u u inteiros, imprimir os valores lidos e determinar a mdia aritmtica dos vale e ores mpares e a mdia aritmtica dos valores pares existentes entre os e e valores lidos. 10. Escreva um programa para ler um valor inteiro k e calcular a mdia are itmtica de k valores reais lidos da unidade padro de entrada. O programa e a deve imprimir os valores lidos e a sua mdia aritmtica. e e 11. Escreva um programa para ler um valor inteiro k e calcular a mdia are itmtica de k valores reais lidos da unidade padro de entrada. O programa e a deve imprimir o fatorial de cada nmero par positivo fornecido. u 12. Escreva um programa para ler quatro valores reais, imprimir o maior dos quatro valores e os valores lidos na seqncia em que foram fornecidos. ue 13. Escreva um programa para ler oito valores reais, imprimir os valores lidos e determinar: (a) a mdia dos nmeros positivos; e u (b) a mdia dos nmeros negativos; e u

14

(c) a soma de todos os valores lidos. 14. Escreva um programa para ler cinqenta valores inteiros aleatrios, imu o primir os valores lidos e determinar o maior dos valores lidos. 15. Escreva um programa para ler cinqenta valores inteiros aleatrios, imu o primir os valores lidos e determinar o menor dos valores lidos e sua posiao c no conjunto. 16. Escreva um programa para ler um nmero n e a seguir ler n valores inteiros, u imprimir os valores lidos e determinar o maior e o menor dos n valores. 17. Escreva um programa para ler n nmeros inteiros, imprimir os nmeros u u lidos e determinar a diferena entre os dois maiores nmeros lidos. c u 18. Escreva um programa para leitura de um grupo de 10 valores inteiros aleatrios e impresso dos valores em ordem crescente. o a 19. Escreva um programa para leitura de um grupo de 10 valores inteiros aleatrios e impresso dos valores em ordem crescente. o a 20. Escreva um programa para ler um grupo de 50 valores reais. O programa deve imprimir o maior valor, o menor valor e os valores lidos, nesta ordem. 21. Escreva um programa para ler um grupo de 50 valores reais. O programa deve imprimir os nmeros pares. u 22. Escreva um programa para ler um grupo de 50 valores reais. O programa deve imprimir os nmeros u mpares e seus fatoriais. 23. Escreva um programa para ler um grupo de 50 valores reais. O programa deve imprimir os nmeros primos e suas ra quadradas. u zes 24. Escreva um programa para ler um grupo de 40 valores reais, imprimir os valores lidos e determinar o menor valor existente entre os 20 primeiros e o maior valor existente entre os 20 ultimos. 25. Escreva um programa que leia dois vetores A e B de 10 componentes inteiros cada um, escreva os vetores lidos e em seguida substitua A e B pelos vetores A + B e A - B, respectivamente, imprimindo-os novamente. O programa deve utilizar apenas dois arrays e imprimir os valores calculados para A e B. 26. Escreva um programa para gerar um calendrio para um ms qualquer, lido a e do teclado, de um ano localizado entre 1900 e 2200, inclusive. O programa l apenas o ano e o ms que o usurio deseja visualizar na tela e gera o e e a calendrio armazenando-o em array de duas dimenses antes de exibi-lo. a o

15

27. Escreva um programa para ler dois vetores de 15 componentes inteiros cada e determinar o conjunto unio para os conjuntos lidos. a 28. Escreva um programa para ler dois vetores de 15 componentes inteiros distintos cada e determinar o conjunto interseco para os conjuntos lidos. ca 29. Escreva um programa em para ler dois vetores de 15 componentes inteiros distintos cada e determinar o conjunto diferena para os conjuntos lidos. c 30. Escreva um programa para ler um vetor com 20 componentes reais, imprimir o vetor lido e determinar o maior e o menor componente do vetor e suas respectivas posioes de entrada. c 31. Escreva um programa para ler um grupo de 20 valores reais, imprimir os valores lidos e imprimir o grupo de valores em ordem numrica crescente. e 32. Escreva um programa para ler um grupo de 100 valores inteiros, imprimir os valores lidos e imprimir os valores pares em ordem numrica crescente. e 33. Escreva um programa para ler uma matriz 10 x 10 de nmeros reais, imu primir a matriz lida e determinar a soma e a mdia aritmtica dos compoe e nentes da matriz. 34. Escreva um programa para determinar o primeiro e o ultimo nomes da classicaao alfabtica de um grupo de vrios nomes, sem ordenar o grupo c e a de nomes. Encerrar o processamento quando encontrar a palavra acabou. 35. Escreva um programa para ler um vetor com 100 componentes reais e transferir estes componentes para uma matriz 10 x 10 onde a i-sima linha fore e mada pelos elementos cujas posioes no conjunto terminam por i. Imprimir c o vetor e a matriz. 36. Escreva um programa para ler uma matriz 10 x 10 de nmeros reais, imu primir a matriz como foi lida e tambm com os componentes das colunas e classicados em ordem decrescente para cada coluna isoladamente. 37. Escreva um programa para ler uma matriz 10 x 10 de componentes reais e transferir estes componentes, na seqncia das linhas, para um vetor de ue 100 componentes. O programa deve imprimir a matriz lida e o vetor obtido com a transferncia. e 38. Escreva um programa para ler uma matriz de ordem 8 de nmeros reais, u imprimir a matriz lida e imprimir a matriz com todos os componentes classicados, na seqncia das linhas, em ordem crescente. ue

16

39. Escreva um programa para ler uma matriz de ordem 8 de nmeros reais, u imprimir a matriz lida e imprimir a matriz com os componentes de cada uma das linhas classicados em ordem crescente. 40. Escreva um programa para ler uma matriz 10 x 10 de nmeros inteiros e u determinar o maior componente em cada coluna da matriz. 41. Escreva um programa para ler uma matriz 10 x 10 de nmeros inteiros e u determinar o menor componente em cada linha da matriz. 42. Escreva um programa para ler uma matriz 10 x 10 de nmeros inteiros e u determinar o menor componente da diagonal principal. 43. Escreva um programa para ler uma matriz 6 x 6 de nmeros inteiros e u imprimir os componentes da diagonal principal em ordem crescente. 44. Escreva um programa para ler uma matriz 6 x 6 de nmeros inteiros e u imprimir os componentes da diagonal secundria em ordem crescente. a 45. Escreva um programa para ler uma matriz 6 x 6 de nmeros inteiros e u imprimir os componentes da diagonal principal em ordem decrescente. 46. Escreva um programa para ler uma matriz 6 x 6 de nmeros inteiros e u imprimir os componentes da diagonal secundria em ordem decrescente. a 47. Escreva um programa para ler uma matriz 10 x 10 de nmeros inteiros e u determinar o maior componente da diagonal principal. 48. Escreva um programa para ler uma matriz 10 x 10 de nmeros inteiros e u determinar o segundo menor componente da diagonal principal. 49. Escreva um programa para ler duas matrizes de ordem 4 de nmeros inu teiros, imprimir as matrizes lidas e determinar a matriz soma correspondente. 50. Escreva um programa para ler duas matrizes de ordem 4 de nmeros inu teiros, imprimir as matrizes lidas e determinar a matriz produto da primeira pela segunda. 51. Escreva um programa para ler uma matriz de ordem 3 de nmeros inteiros, u imprimir a matriz lida e determinar a matriz transposta correspondente. 52. Escreva um programa para ler uma matriz de ordem 6 de nmeros inteiros, u imprimir a matriz lida e determinar a matriz transposta correspondente. Restriao: o programa deve utilizar uma unica rea para armazenar a mac a triz lida e sua transposta.

17

53. Escreva um programa para gerar e imprimir uma matriz de ordem 15 onde todos os elementos acima da diagonal principal so iguais a 1 e os demais a so iguais a zero. a 54. Escreva um programa para gerar e imprimir uma matriz de ordem 15 onde todos os elementos acima da diagonal secundria so iguais a 1 e os demais a a so iguais a zero. a 55. Escreva um programa para ler uma matriz de ordem 3, de nmeros reais, u imprimir a matriz lida e calcular e imprimir seu determinante. 56. Escreva um programa para determinar aquele que seria o penltimo nome u da classicaao alfabtica num grupo de vrios nomes e sua posiao relativa c e a c de entrada. 57. Escreva um programa para ler um nmero real com at 10 d u e gitos (duas casas decimais) representando uma quantia em reais (R$) e escrever por extenso esta quantia. 58. Escreva um programa para ler o nome completo de vrias pessoas. O proa grama deve dividir os nomes da lista em grupos, cada grupo correspondendo a um sobrenome existente na lista. Lembre-se que 59. Escreva um programa para ajudar o servio de informaoes a localizar os c c poss veis suspeitos de participarem de um determinado grupo. Segundo informaoes recebidas, o grupo realizou duas festas para cada uma das c quais convidou 100 pessoas. Pretendia, com isso, cooptar estas pessoas para que passassem a integrar o grupo. O programa deve ler as relaes co de at 100 nomes de pessoas que compareceram `s duas festas. A segunda e a relaao comea com FESTA 2 e termina aps a leitura dos 100 nomes ou c c o com a expresso m de festa. O programa deve imprimir: a (a) uma listagem das pessoas suspeitas (compareceram a pelo menos uma das festas) (b) uma listagem das pessoas menos suspeitas (compareceram a apenas uma das festas) (c) uma listagem das pessoas muito suspeitas (compareceram a ambas as festas).

18

Funoes e Procedures c
1. Considerando um vetor de 15 componentes inteiros, escreva procedures (ou funoes quando for o caso2 ) para: c imprimir o contedo das posies pares do vetor u co atribuir a cada componente o valor da sua posio no vetor ca atribuir a cada componente o valor do componente seguinte e o valor do primeiro componente ao ultimo componente. 2. Escreva um programa para ler 10 nomes de pessoas (aleatrios) o imprimir os nomes lidos imprimir os nomes em ordem alfabtica inversa. e A seguir, o programa deve solicitar ao usurio que fornea nomes a partir a c do teclado e vericar se cada um dos nomes informados se encontra ou no entre os 10 nomes. O processamento deve ser encerrado quando for a digitado o seu nome, informando se o mesmo foi ou no encontrado na lista a dos nomes. Seu programa deve usar subprogramas sempre que necessrio e a deve utilizar um algoritmo eciente para a busca do nome na lista. 3. Escrever um programa para determinar todos os nmeros primos menores u que um dado n (limitado a 10.000), utilizando o algoritmo do Crivo de Eratstenes: para encontrar todos os primos menores que n, basta eliminar o os mltiplos dos nmeros menores que a raiz quadrada de n (no esquecendo u u a o nmero 1). u 4. Um nmero a dito permutao de um n mero b se os d u e ca u gitos de a formam uma permutaao dos d c gitos de b. Exemplo: 5412434 uma e permutaao de 4321445, mas no uma permutaao de 4312455. Obs.: c a e c Considere que o d gito 0 (zero) no aparece nos nmeros. Com base destas a u informaoes: c (a) Faa uma funo/procedure contadgitos que dados um inteiro n e um c ca inteiro d, 0 < d 9, devolve quantas vezes o d gito d aparece em n. (b) Usando a funao/procedure do item anterior, faa um programa que c c l dois inteiros positivos a e b e responda se a permutao de b. e e ca 5. Construa uma funo/procedure encaixa que receba como parmetros dois ca a inteiros positivos a e b. Esta funao/procedure deve vericar se b correc sponde aos ultimos d gitos de a. Ex.:
2 Os conceitos de funo e procedure na linguagem de programao PASCAL so parecidos, ca ca a porm diferentes. e

19

a 567890 1243 2457 457

b 890 1243 245 2457

encaixa encaixa no encaixa a no encaixa a

6. Usando a funao/procedure da questo anterior, faa um programa que l c a c e dois inteiros positivos a e b e verica se o menor deles segmento do outro. e Exemplo:
a 567890 1243 235 b 678 2212435 236 b segmento de a e a segmento de b e um no segmento do outro a e

7. Uma seqncia de n nmeros inteiros no nulos dita piramidal mue u a e alternante se constitu por m segmentos: o primeiro com um elee da mento, o segundo com dois elementos e assim por diante at o m-simo, e e com m elementos. Alm disso, os elementos de um mesmo segmento devem e ser todos pares ou todos mpares e para cada segmento, se seus elementos forem todos pares ( mpares), os elementos do segmento seguinte devem ser todos mpares (pares). Por exemplo, a seqncia com n = 10 elementos: ue 12 3 7 2 10 4 5 13 5 11 piramidal 4-alternante. A seqncia com n = e ue 3 elementos: 7 10 2 piramidal 2-alternante. A seqncia com n = 8 e ue elementos: 1 12 4 3 13 5 12 6 no piramidal alternante pois o ultimo a e segmento no tem tamanho 4. Com base nestas informaaoes, escreva uma a c funao/procedure bloco que recebe como parmetro um inteiro n e l n c a e inteiros do teclado, devolvendo um dos seguintes valores: 0, se os n nmeros lidos forem pares; u 1, se os n nmeros lidos forem u mpares; -1, se entre os n nmeros lidos h nmeros com paridades diferentes. u a u 8. Usando a funao/procedure da questo anterior, escreva um programa que, c a dados um inteiro n 1 e uma seqncia de n nmeros inteiros, verica se ue u ela piramidal m-alternante. O programa deve imprimir o valor de m e ou dar a resposta no. a 9. Faa uma funo/procedure arctan que recebe o nmero real x [0,1] e c ca u devolve uma aproximao do arco tangente de x (em radianos) atravs da ca e x5 x7 x3 srie incluindo todos os termos da srie arctan(x) = x - 3 + 5 - 7 + ... e e k incluindo todos os termos da srie at | x < 0,0001 |. e e k

20

10. Faa uma funao/procedure angulo que recebe um ponto de coordenadas c c cartesianas reais (x,y), com x 0 e y 0 e devolve o ngulo formado pelo a vetor (x,y) e o eixo horizontal. Exemplos: observe a gura abaixo e verique que os ngulos correspondentes aos pontos marcados aproximadamente a e (0,1) - 90 graus, (2,2) - 45 graus, (1,4) - 75 graus, (5,1) - 11 graus. Note que a funao/procedure s calcula o arco tangente de nmeros entre c o u 0 e 1, e o valor devolvido o ngulo em radianos ( = 3.14 radianos = e a 180 graus). Calcule tambm o valor do ngulo pedido (em graus), use a e a x seguinte frmula: = arctan y caso y < x, - arctan x caso contrrio. o a 2 y 11. Faa um programa que, dados n pontos do primeiro quadrante (x 0 e y c 0) atravs de suas coordenadas cartesianas, determina o ponto que forma e o menor ngulo com o eixo horizontal. Use a funao/procedure da questo a c a anterior. 12. Escreva uma funo/procedure que recebe um nmero inteiro n > 0 e deca u volve o nmero de d u gitos de n e o primeiro d gito de n. 13. Escreva um programa que leia uma seqncia de n inteiros positivos e imue prime o nmero de d u gitos e o primeiro d gito de cada um deles.

Estruturas de dados: listas, pilhas, las, rvores a


1. Escreva um programa que use uma pilha como varivel auxiliar para inverter a a ordem dos elementos de uma certa lista. 2. Escreva um programa que leia uma srie de nmeros inteiros aleatrios e u o e armazene-os em uma lista encadeada. A lista encontra-se inicialmente vazia. O programa encerra o processamento ao ler, um aps o outro, dois o valores iguais. Valores iguais so permitidos desde que no sejam digitados a a um logo aps o outro. Imprima os valores na ordem crescente e em ordem o decrescente (use uma pilha para inverter a ordem dos elementos).

21

3. Escreva um programa para ler dois nmeros reais longos no sinalizados, u a ambos terminados por e determinar sua soma (o resultado deve estar dispon vel para uso, no apenas para ser impresso). No conhecemos a a a quantidade de d gitos de nenhum dos nmeros lidos (o limite a memria u e o dispon em sua mquina). vel a 4. Escreva um programa que manipule nmeros inteiros muito longos, nem u sempre positivos, sem impor um limite de tamanho. O programa deve ler dois nmeros inteiros, armazenar cada nmero numa lista e determinar a u u soma dos dois nmeros. Imprima os trs nmeros. u e u 5. Escreva um programa que manipule nmeros inteiros muito longos, nem u sempre positivos, sem impor um limite de tamanho. O programa deve ler dois nmeros inteiros, armazenar cada nmero numa lista e determinar a u u diferena dos dois nmeros. Imprima os trs nmeros. c u e u 6. Escreva uma rotina que acrescente um elemento ao nal de uma lista encadeada. 7. Escreva uma rotina que concatene duas listas encadeadas. 8. Escreva uma rotina que libere todos os nodos em uma lista; 9. Escreva uma rotina que inverta uma lista, de forma que o ultimo elemento se torna o primeiro, e etc.; 10. Escreva uma rotina que remova o ultimo elemento de uma lista. 11. Escreva uma rotina que remova o n-simo elemento de uma lista. e 12. Escreva uma rotina que remova o penltimo elemento de uma lista. u 13. Escreva uma rotina que combine duas listas ordenadas em uma unica lista ordenada. 14. Escreva uma rotina que forme uma lista contendo a unio de duas listas. a 15. Escreva uma rotina que forme uma lista contendo a interseco de duas ca listas. 16. Escreva uma rotina que insira um elemento depois do n-simo elemento de e uma lista. 17. Escreva uma rotina que remova cada segundo elemento de uma lista de listas de inteiros. 18. Escreva uma rotina que coloque os elementos de uma lista em ordem crescente.

22

19. Escreva uma rotina que retorne a soma dos inteiros de uma certa lista. 20. Escreva uma rotina que retorne o nmero de elementos em uma lista. u 21. Escreva uma rotina que mova um certo nodo k n posies para a frente em co uma lista. 22. Escreva uma rotina que faa uma cpia de uma lista. c o 23. Escreva uma rotina que troque o n-simo elemento pelo m-simo elemento e e de uma lista encadeada. 24. Escreva uma rotina que troque o n-simo elemento pelo m-simo elemento e e de uma lista duplamente encadeada.

Recursividade
1. Dado um vetor de inteiros e um nmero qualquer informados pelo usurio. u a Escreva um programa para retornar a posio deste nmero no vetor. O ca u programa deve retornar -1 caso no encontre o elemento. a 2. Dado um vetor de inteiros e um nmero qualquer informados pelo usurio. u a Escreva um programa para retornar a posiao da ultima ocorrncia deste c e nmero no vetor. O programa deve retornar -1 caso no encontre o eleu a mento. 3. Faa um programa para o jogo de adivinhar um nmero. O computac u dor deve sortear um nmero entre 0 e 100 e pedir para o usurio tentar u a adivinhar este nmero. O usurio vai dizer o seu palpite, e o computador u a deve responder, se ele maior ou menor que o nmero que ele sorteou. e u O programa termina somente quando o usurio acertar exatamente qual o a nmero que o computador tinha sorteado, escrevendo uma mensagem de u felicitaoes para o nosso usurio e indicando o nmero total de tentativas c a u feitas. Dica: para gerar um nmero qualquer entre 0 e 100, use um cou mando como o deste exemplo indicado logo a seguir. Exemplo: numero sorteado := random (100); { 0 numero sorteado < 100 } 3 4. Torres de Hannoi com trs discos!!!!! e 5. Escreva um programa que leia do teclado um nmero inteiro representando u a quantidade de discos em uma torre de Hannoi. O programa deve, na seqncia, informar quais os movimentos que devem ser efetuados com os ue
3

Exemplo em cdigo Pascal. o

23

discos para mov-los da torre A para a torre C, utilizando a torre B como e auxiliar, movendo um disco por vez. 6. Escreva um programa que leia do teclado um nmero inteiro representando u a quantidade de discos em uma torre de Hannoi. O programa deve, na seqncia, informar quais os movimentos que devem ser efetuados com os ue discos para mov-los da torre A para a torre C, utilizando a torre B como e auxiliar, movendo um disco por vez. Ao nal da execuo o programa ca deve informar qual o tempo gasto para a execuo (descontado o tempo de ca entrada de dados). 7. Srie de Fibonacci!!!!!!! e 8. Escreva uma rotina que acrescente um elemento ao nal de uma lista encadeada. 9. Escreva uma rotina que concatene duas listas encadeadas. 10. Escreva uma rotina que libere todos os nodos em uma lista; 11. Escreva uma rotina que inverta uma lista, de forma que o ultimo elemento se torna o primeiro, e etc.; 12. Escreva uma rotina que remova o ultimo elemento de uma lista. 13. Escreva uma rotina que remova o n-simo elemento de uma lista. e 14. Escreva uma rotina que remova o penltimo elemento de uma lista. u 15. Escreva uma rotina que combine duas listas ordenadas em uma unica lista ordenada. 16. Escreva uma rotina que forme uma lista contendo a unio de duas listas. a 17. Escreva uma rotina que forme uma lista contendo a interseco de duas ca listas. 18. Escreva uma rotina que insira um elemento depois do n-simo elemento de e uma lista. 19. Escreva uma rotina que remova cada segundo elemento de uma lista de listas de inteiros. 20. Escreva uma rotina que coloque os elementos de uma lista em ordem crescente. 21. Escreva uma rotina que retorne a soma dos inteiros de uma certa lista.

24

22. Escreva uma rotina que retorne o nmero de elementos em uma lista. u 23. Escreva uma rotina que mova um certo nodo k n posies para a frente em co uma lista. 24. Escreva uma rotina que faa uma cpia de uma lista. c o 25. Escreva uma rotina que troque o n-simo elemento pelo m-simo elemento e e de uma lista encadeada. 26. Escreva uma rotina que troque o n-simo elemento pelo m-simo elemento e e de uma lista duplamente encadeada.

Registros (Structures)
1. Escreva um programa para ler vrios grupos de 5 valores reais cada e calcua lar a mdia ponderada destes valores, sabendo-se que o primeiro valor tem e peso 4, o segundo e o terceiro tm peso 2 e os dois ultimos tm peso 1. O e e processamento encerra quando for lido um grupo com todos os valores negativos, sem considerar este grupo de valores nos clculos. Para cada grupo a de valores, o programa imprime os valores lidos e a mdia ponderada. e 2. Escreva um programa para ler os coecientes de vrias equaoes do sea c gundo grau e determinar, para cada uma das equaes, suas ra co zes reais, caso existam. Quando a equao no possuir ra reais, o programa deve ca a zes informar esta ocorrncia. O processamento deve ser encerrado quando o e primeiro valor lido, de uma determinada equaao, for nulo, sem considerar c este grupo de valores nos clculos. a

25