1
14. Escreva um programa que leia um número natural na base binária, e o
transforme para a base decimal.
16. Escreva um programa que dado x segundos fornecidos pelo usuário, transforme-
os em horas e minutos quando possı́vel. Ex.: 3670 segundos = 1h 1min
10seg; 65 segundos = 0h 1min 5seg; 43 segundos = 0h 0min 43seg.
Desvios Condicionais
1. Escreva um programa para ler três números reais quaisquer e imprimir estes
números em ordem numérica crescente.
2. Todos que querem aprender a jogar golfe se deparam com diversas es-
quisitices (como qualquer jogo inventado pelos britânicos). Uma dessas
esquisitices é o jeito de contar o número de tacadas que um jogador pre-
cisou para colocar a bola no buraco. Existe um “par” para cada buraco, e
praticamente todos os resultados são relativos ao par (o par é o número de
tacadas que um jogador razoável precisa para colocar a bola no buraco). Se
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, três a menos, ou menos
tacadas, double eagle. Além disso, as tacadas espetaculares em que o jo-
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
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
número de tacadas que o jogador precisou, imprime o nome da jogada que
fez o jogador.
2
6. Escreva um programa para ler três valores inteiros, imprimir os valores lidos
e determinar o valor que não é o maior e que não é o menor dos três valores
lidos.
7. Escreva um programa para ler quatro valores reais, imprimir os valores lidos
e determinar:
10. Dado n inteiro positivo, dizemos que n é perfeito se for igual à soma de seus
divisores positivos diferentes de n. Exemplo: 6 é perfeito, pois 1+2+3 = 6.
Escreva um programa que verifique se um dado número inteiro positivo é
perfeito
12. Escreva um programa para identificar os pares de números menores que 500
tais que o segundo seja igual a 1 mais duas vezes o primeiro. Exemplo: 3 e
7.
14. Escreva um programa para ler dois números inteiros e determinar se eles
são primos gêmeos. Dois números são primos gêmeos se eles são primos e
existe uma diferença de dois (2) entre eles (11 e 13 são primos gêmeos).
15. Escreva um programa que leia três números naturais, e verifique se eles
podem formar os lados de um triângulo retângulo.
3
17. Escreva um programa para ler vinte números inteiros e determinar se cada
um desses números é par ou ı́mpar.
18. Escreva um programa para ler e imprimir 3 valores reais. O programa deve
informar se esses valores formam um triângulo e o tipo de triângulo. O
triângulo poderá ser:
(a) considerar M como sendo o mês do ano, iniciando com março com M
= 1 e janeiro e fevereiro sendo os meses 11 e 12 do ano anterior;
(b) considerar D como sendo o dia do mês;
(c) considerar A como sendo o ano do século;
(d) considerar S como sendo o século anterior. O ı́ndice do dia (Domingo
= 0, Segunda = 1, ..., Sábado = 6) é dado pelo resto da divisão de
(13M - 1)/5 + A/4 + S/4 por 7, considerando apenas a parte inteira
de cada uma das divisões.
22. Faça um programa que leia a idade de uma pessoa e informe sua classe
eleitoral: não eleitor (abaixo de 16 anos), eleitor obrigatório (entre 18 e 65
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 operações.
Os dados devem ser lidos na forma:
4
24. No Brasil existe o CPF (Cadastro de Pessoas Fı́sicas) que serve para iden-
tificar cada indivı́duo no paı́s. O número do CPF é composto de 11 dı́gitos,
sendo os dois últimos os dı́gitos de verificação. A fórmula para verificar a
validade do número do CPF é simples e é explicada abaixo. Vamos tomar
como exemplo o número 123.456.789-09.
26. Escreva um programa que leia um ponto (x,y) do plano cartesiano e diga
se o mesmo está dentro da circunferência de raio 3 e centro no ponto (0,0).
5
27. Escreva um programa que leia um ponto (x,y) do plano cartesiano e diga se
o mesmo está dentro da circunferência de raio a ser fornecido pelo usuário
e centro no ponto (0,0).
28. Escreva um programa para ler um número inteiro com até 6 dı́gitos e de-
terminar seu correspondente em algarismos romanos.
Laços
1. Escreva um programa para ler um número inteiro n e imprimir o valor lido
e os n primeiros números ı́mpares positivos.
6
11. Escreva um programa para ler os coeficientes de várias equações do se-
gundo grau e determinar, para cada uma das equações, suas raı́zes reais,
caso existam. Quando a equação não possuir raı́zes reais, o programa deve
informar esta ocorrência. O processamento deve ser encerrado quando o
primeiro valor lido, de uma determinada equação, for nulo, sem considerar
este grupo de valores nos cálculos.
13. Escreva um programa para ler seguidamente valores inteiros até que seja
lido um valor negativo. Para cada valor lido, exceto o último, o programa
deve determinar seu fatorial.
14. Escreva um programa que imprima os seis primeiros pares de primos gêmeos.
Dois números são primos gêmeos se eles são primos e existe uma diferença
de dois (2) entre eles (11 e 13 são primos gêmeos).
17. Para n alunos de uma determinada classe são dadas as 3 notas das provas.
Calcular a média aritmética das provas de cada aluno, a média da classe,
o número de aprovados e o número de reprovados (critério de aprovação:
média maior ou igual a cinco).
18. Escreva um programa para ler dez grupos de três valores inteiros cada,
imprimir os valores lidos identificando o valor que não é o maior e que não
é o menor para cada um dos grupos de três valores.
20. Escreva um programa para ler três números inteiros e imprimir todos os
múltiplos do primeiro que estejam compreendidos entre o segundo e o ter-
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 Máximo Divisor Comum para cada um dos quinze pares de valores.
7
23. Escreva um programa que leia um número inteiro qualquer e determine se
esse número é perfeito ou não. Um número é perfeito quando a soma de
seus divisores, excetuando-se o próprio número, for igual ao número.
26. Escreva um programa para cálculo do Mı́nimo Múltiplo Comum entre dois
números inteiros lidos da unidade padrão de entrada.
27. Escreva um programa para ler um número inteiro n e a seguir ler n pares
de valores inteiros. Para cada um dos n pares de valores o programa deve
determinar seu Mı́nimo Múltiplo Comum.
28. Escreva um programa para ler vários grupos de dois valores inteiros até
encontrar dois valores iguais. O programa deve imprimir cada par de valores
acompanhado de seu Mı́nimo Múltiplo Comum.
29. Escreva um programa para ler vários grupos de três valores inteiros e de-
terminar o valor que não é o maior e que não é o menor para cada um dos
grupos. O processamento deve ser encerrado quando um dos três valores
for negativo.
31. Escreva um programa que leia dois valores inteiros a e b (a sempre par e
menor que b), calcule o produtório dos números pares compreendidos entre
1
Exemplo em código Pascal.
8
a e b, inclusive. O programa deve imprimir o produtório e a quantidade de
elementos que compõem o produtório.
32. Escreva um programa para identificar os números amigáveis menores que
2000. Dois números são amigáveis quando cada um é igual à soma dos
divisores do outro número (excluindo apenas o próprio número). Exemplo:
220 e 284 são números amigáveis pois a soma dos divisores de 220 (1, 2, 4,
5, 10, 11, 20, 22, 44, 55, 110) é igual a 284 e a soma dos divisores de 284
(1, 2, 4, 71, 142) é igual a 220.
33. Criar um algoritmo que imprima a tabela de conversão Celsius-Fahrenheit,
em intervalos de 1 grau, numa faixa de temperaturas especificada pelo
usuário. O algoritmo deve solicitar ao usuário o limite inferior e o lim-
ite superior da faixa de temperaturas (em graus Celsius). O valor fornecido
pelo usuário será um inteiro. Fórmula de conversão: F = 1.8*C + 32. Ex-
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 média ar-
itmética de k valores reais lidos da unidade padrão de entrada. O programa
deve imprimir os valores lidos e a sua média aritmética.
35. Escreva um programa para ler um valor inteiro k e calcular a média ar-
itmética de k valores reais lidos da unidade padrão de entrada. O programa
deve imprimir o fatorial de cada número par positivo fornecido.
36. Escreva um programa para ler um número inteiro k, e a seguir ler k números
inteiros, imprimir os valores lidos e determinar a média aritmética dos val-
ores ı́mpares e a média aritmética dos valores pares existentes entre os
valores lidos.
37. Escreva um programa para determinar todos os números de 3 algarismos,
cujas somas dos cubos dos algarismos sejam iguais ao próprio número. Ex-
emplo: 153 = 1 + 5 + 3 .
38. Escreva um programa para determinar todos os números de 4 algarismos
que possam ser separados em dois números de dois algarismos que somados
e elevando-se a soma ao quadrado obtenha-se o próprio número. Exemplo:
3025 = (30 + 25) = 55.
39. Escreva um programa para ler e imprimir a idade de um grupo de 20 pes-
soas. Ao final, o programa deve determinar a pessoa mais idosa, a mais
jovem, e a média das idades do grupo de pessoas.
9
40. Dado n e dois números naturais i e j diferentes de 0, imprimir em ordem
crescente os n primeiros naturais que são múltiplos de i ou de j ou de ambos.
Exemplo: Para n = 6 , i = 2 e j = 3 a saı́da deverá ser : 0,2,3,4,6,8
41. Escreva um programa que leia dois inteiros m e n, imprima os valores lidos
e determine os n primeiros múltiplos de m.
46. Escreva um programa para ler seguidamente vários valores inteiros até en-
contrar um valor negativo ou nulo. Para cada um dos valores lidos, exceto
o último, o programa deve informar se o valor é primo ou não.
47. Dada uma seqüencia de n números inteiros, determinar a soma dos números
pares.
48. Uma loja de discos anota diariamente durante o mês de março a quantidade
de discos vendidos. Determinar em que dia desse mês ocorreu a maior venda
e qual foi a quantidade de discos vendida nesse dia.
49. Escreva um programa que leia um conjunto de pontos (x,y) do plano carte-
siano e diga se os mesmos estão ou não dentro da circunferência de raio a
ser fornecido pelo usuário e centro no ponto (0,0).
52. Escreva um programa que leia 10 pares de números inteiros (m, n) e para
cada par de valores:
10
53. Escreva um programa para determinar o fatorial de dez números inteiros
quaisquer, lidos do teclado.
55. Escreva um programa para ler dez grupos de valores para A, B e C (variáveis
do tipo REAL). Para cada grupo de valores o programa deve imprimir os
valores lidos e as raı́zes da equação Ax2 + Bx + C = 0.
56. Escreva um programa para ler quatro valores reais, imprimir o maior dos
quatro valores e os valores lidos na seqüência em que foram fornecidos.
57. Escreva um programa para calcular uma aproximação para Pi. A aprox-
imação pode ser obtida de Pi = 4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 + ...
O programa deve encerrar o processamento quando a variação no valor
calculado for inferior a 0.0001.
58. Escreva programas para cálculo da soma 1 - 1/2 + 1/3 - 1/4 + ... + 1/9999
- 1/10000 por adição dos termos: da esquerda para a direita; da direita para
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.
59. Escreva um programa para calcular uma aproximação para cosseno(x), onde
x é um valor inteiro lido da unidade padrão de entrada. A aproximação
pode ser obtida de cos(x) = 1 - x/2! + x/4! - x/6! ... O programa deve
encerrar o processamento quando a variação no valor calculado for inferior
a 0.001.
60. Escreva um programa para calcular uma aproximação para seno(x), onde x
é um valor inteiro lido da unidade padrão de entrada. A aproximação pode
ser obtida de: sen(x) = x - x/3! + x/5! - x/7! + ... O programa deve
encerrar o processamento quando a variação no valor calculado for inferior
a 0.001.
61. Escreva um programa para calcular uma aproximação para exp(x), onde x
é um número qualquer lido da unidade padrão de entrada. A aproximação
pode ser obtida de: exp(x) = 1 + x + x/2! + ... + x/i!. O programa deve
encerrar o processamento quando a variação no valor calculado for inferior
a 0.0001.
11
o usuário digita um valor inicial de x maior que o valor inicial de y. Caso
isto não aconteça, solicitar novos valores ao usuário até que a condição seja
satisfeita.
63. Escreva um programa que imprima a tabela abaixo:
64. Qualquer número natural de quatro algarismos pode ser dividido em duas
dezenas formadas pelos seus dois primeiros e dois últimos dı́gitos. Exemp-
los: 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 for-
madas pela divisão acima. Exemplo: raiz de 9801 = 99 = 98 + 01. Portanto
9801 é um dos números a ser impresso.
65. Escreva um programa que leia um número inteiro n e imprima n vezes as
informações do seu cartão pessoal.
66. Escreva um programa para gerar os cinqüenta primeiros termos da série: 1,
1, 2, 4, 3, 9, 4, 16, 5, 25, 6, 36, ...
67. Escreva um programa para gerar os cinqüenta primeiros termos da série: 2,
4, 4, 16, 6, 36, 8, 64, ..., e determinar a sua soma.
68. Escreva um programa para gerar os cinqüenta primeiros termos da série: 1,
2, 4, 7, 11, 16, 22, ...
69. Escreva um programa para gerar os cinqüenta primeiros termos da série: 1
+ n, 2 * n, 3 + n, 4 * n, ..., onde n é um valor lido da unidade padrão de
entrada.
70. Escreva um programa para gerar os quinze primeiros termos da série de
FIBONACCI: 1, 1, 2, 3, 5, 8, 13, ...
71. Escreva um programa para imprimir os termos da série de FIBONACCI
menores que 10000.
72. Escreva um programa para ler um número desconhecido de valores reais e
imprimir todos os valores lidos, a soma dos valores lidos e a média aritmética
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 número inteiro n e, a seguir, gerar os n
primeiros termos da série de FIBONACCI com auxı́lio da fórmula:
√
ci (1 + 5)
f i = round( √ ), onde c = (3)
5 2
Vetores (Arrays)
1. Dada uma seqüência de n números, imprimi-la na ordem inversa à da
leitura.
13
5. Dados dois vetores x e y, ambos com n elementos, determinar o produto
escalar desses vetores.
10. Escreva um programa para ler um valor inteiro k e calcular a média ar-
itmética de k valores reais lidos da unidade padrão de entrada. O programa
deve imprimir os valores lidos e a sua média aritmética.
11. Escreva um programa para ler um valor inteiro k e calcular a média ar-
itmética de k valores reais lidos da unidade padrão de entrada. O programa
deve imprimir o fatorial de cada número par positivo fornecido.
12. Escreva um programa para ler quatro valores reais, imprimir o maior dos
quatro valores e os valores lidos na seqüência em que foram fornecidos.
13. Escreva um programa para ler oito valores reais, imprimir os valores lidos
e determinar:
14
(c) a soma de todos os valores lidos.
14. Escreva um programa para ler cinqüenta valores inteiros aleatórios, im-
primir os valores lidos e determinar o maior dos valores lidos.
15. Escreva um programa para ler cinqüenta valores inteiros aleatórios, im-
primir os valores lidos e determinar o menor dos valores lidos e sua posição
no conjunto.
16. Escreva um programa para ler um número n e a seguir ler n valores inteiros,
imprimir os valores lidos e determinar o maior e o menor dos n valores.
26. Escreva um programa para gerar um calendário para um mês qualquer, lido
do teclado, de um ano localizado entre 1900 e 2200, inclusive. O programa
lê apenas o ano e o mês que o usuário deseja visualizar na tela e gera o
calendário armazenando-o em array de duas dimensões antes de exibi-lo.
15
27. Escreva um programa para ler dois vetores de 15 componentes inteiros cada
e determinar o conjunto união para os conjuntos lidos.
28. Escreva um programa para ler dois vetores de 15 componentes inteiros dis-
tintos cada e determinar o conjunto intersecção para os conjuntos lidos.
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 posições de entrada.
32. Escreva um programa para ler um grupo de 100 valores inteiros, imprimir
os valores lidos e imprimir os valores pares em ordem numérica crescente.
33. Escreva um programa para ler uma matriz 10 x 10 de números reais, im-
primir a matriz lida e determinar a soma e a média aritmética dos compo-
nentes da matriz.
35. Escreva um programa para ler um vetor com 100 componentes reais e trans-
ferir estes componentes para uma matriz 10 x 10 onde a i-ésima linha é for-
mada pelos elementos cujas posições no conjunto terminam por i. Imprimir
o vetor e a matriz.
36. Escreva um programa para ler uma matriz 10 x 10 de números reais, im-
primir a matriz como foi lida e também com os componentes das colunas
classificados em ordem decrescente para cada coluna isoladamente.
38. Escreva um programa para ler uma matriz de ordem 8 de números reais,
imprimir a matriz lida e imprimir a matriz com todos os componentes clas-
sificados, na seqüência das linhas, em ordem crescente.
16
39. Escreva um programa para ler uma matriz de ordem 8 de números reais,
imprimir a matriz lida e imprimir a matriz com os componentes de cada
uma das linhas classificados em ordem crescente.
49. Escreva um programa para ler duas matrizes de ordem 4 de números in-
teiros, imprimir as matrizes lidas e determinar a matriz soma correspon-
dente.
50. Escreva um programa para ler duas matrizes de ordem 4 de números in-
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 números inteiros,
imprimir a matriz lida e determinar a matriz transposta correspondente.
52. Escreva um programa para ler uma matriz de ordem 6 de números inteiros,
imprimir a matriz lida e determinar a matriz transposta correspondente.
Restrição: o programa deve utilizar uma única área para armazenar a ma-
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 são iguais a 1 e os demais
são iguais a zero.
54. Escreva um programa para gerar e imprimir uma matriz de ordem 15 onde
todos os elementos acima da diagonal secundária são iguais a 1 e os demais
são iguais a zero.
55. Escreva um programa para ler uma matriz de ordem 3, de números reais,
imprimir a matriz lida e calcular e imprimir seu determinante.
56. Escreva um programa para determinar aquele que seria o penúltimo nome
da classificação alfabética num grupo de vários nomes e sua posição relativa
de entrada.
57. Escreva um programa para ler um número real com até 10 dı́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 várias pessoas. O pro-
grama deve dividir os nomes da lista em grupos, cada grupo correspondendo
a um sobrenome existente na lista. Lembre-se que
(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
Funções e Procedures
1. Considerando um vetor de 15 componentes inteiros, escreva procedures (ou
funções quando for o caso2 ) para:
• imprimir o conteúdo das posições pares do vetor
• atribuir a cada componente o valor da sua posição no vetor
• atribuir a cada componente o valor do componente seguinte e o valor
do primeiro componente ao último componente.
2. Escreva um programa para
• ler 10 nomes de pessoas (aleatórios)
• imprimir os nomes lidos
• imprimir os nomes em ordem alfabética inversa.
A seguir, o programa deve solicitar ao usuário que forneça nomes a partir
do teclado e verificar se cada um dos nomes informados se encontra ou
não entre os 10 nomes. O processamento deve ser encerrado quando for
digitado o seu nome, informando se o mesmo foi ou não encontrado na lista
dos nomes. Seu programa deve usar subprogramas sempre que necessário e
deve utilizar um algoritmo eficiente para a busca do nome na lista.
3. Escrever um programa para determinar todos os números primos menores
que um dado n (limitado a 10.000), utilizando o algoritmo do Crivo de
Eratóstenes: para encontrar todos os primos menores que n, basta eliminar
os múltiplos dos números menores que a raiz quadrada de n (não esquecendo
o número 1).
4. Um número a é dito permutação de um número b se os dı́gitos de
a formam uma permutação dos dı́gitos de b. Exemplo: 5412434 é uma
permutação de 4321445, mas não é uma permutação de 4312455. Obs.:
Considere que o dı́gito 0 (zero) não aparece nos números. Com base destas
informações:
(a) Faça uma função/procedure contadı́gitos que dados um inteiro n e um
inteiro d, 0 < d ≤ 9, devolve quantas vezes o dı́gito d aparece em n.
(b) Usando a função/procedure do item anterior, faça um programa que
lê dois inteiros positivos a e b e responda se a é permutação de b.
5. Construa uma função/procedure encaixa que receba como parâmetros dois
inteiros positivos a e b. Esta função/procedure deve verificar se b corre-
sponde aos últimos dı́gitos de a. Ex.:
2
Os conceitos de função e procedure na linguagem de programação PASCAL são parecidos,
porém diferentes.
19
a b
567890 890 encaixa
1243 1243 encaixa
2457 245 não encaixa
457 2457 não encaixa
a b
567890 678 b é segmento de a
1243 2212435 a é segmento de b
235 236 um não é segmento do outro
20
10. Faça uma função/procedure angulo que recebe um ponto de coordenadas
cartesianas reais (x,y), com x ≥ 0 e y ≥ 0 e devolve o ângulo formado pelo
vetor (x,y) e o eixo horizontal. Exemplos: observe a figura abaixo e verifique
que os ângulos correspondentes aos pontos marcados é aproximadamente
(0,1) - 90 graus, (2,2) - 45 graus, (1,4) - 75 graus, (5,1) - 11 graus.
Note que a função/procedure só calcula o arco tangente de números entre
0 e 1, e o valor devolvido é o ângulo em radianos (π = 3.14 radianos =
180 graus). Calcule também ³o ´valor do ângulo pedido ³(em´ graus), use a
x π x
seguinte fórmula: α = arctan y caso y < x, 2 - arctan y caso contrário.
21
3. Escreva um programa para ler dois números reais longos não sinalizados,
ambos terminados por ] e determinar sua soma (o resultado deve estar
disponı́vel para uso, não apenas para ser impresso). Não conhecemos a
quantidade de dı́gitos de nenhum dos números lidos (o limite é a memória
disponı́vel em sua máquina).
6. Escreva uma rotina que acrescente um elemento ao final de uma lista en-
cadeada.
9. Escreva uma rotina que inverta uma lista, de forma que o último elemento
se torna o primeiro, e etc.;
10. Escreva uma rotina que remova o último elemento de uma lista.
11. Escreva uma rotina que remova o n-ésimo elemento de uma lista.
12. Escreva uma rotina que remova o penúltimo elemento de uma lista.
13. Escreva uma rotina que combine duas listas ordenadas em uma única lista
ordenada.
14. Escreva uma rotina que forme uma lista contendo a união de duas listas.
15. Escreva uma rotina que forme uma lista contendo a intersecção de duas
listas.
16. Escreva uma rotina que insira um elemento depois do n-ésimo elemento de
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 cres-
cente.
22
19. Escreva uma rotina que retorne a soma dos inteiros de uma certa lista.
20. Escreva uma rotina que retorne o número de elementos em uma lista.
21. Escreva uma rotina que mova um certo nodo k n posições para a frente em
uma lista.
22. Escreva uma rotina que faça uma cópia de uma lista.
23. Escreva uma rotina que troque o n-ésimo elemento pelo m-ésimo elemento
de uma lista encadeada.
24. Escreva uma rotina que troque o n-ésimo elemento pelo m-ésimo elemento
de uma lista duplamente encadeada.
Recursividade
1. Dado um vetor de inteiros e um número qualquer informados pelo usuário.
Escreva um programa para retornar a posição deste número no vetor. O
programa deve retornar -1 caso não encontre o elemento.
23
discos para movê-los da torre A para a torre C, utilizando a torre B como
auxiliar, movendo um disco por vez.
7. Série de Fibonacci!!!!!!!
8. Escreva uma rotina que acrescente um elemento ao final de uma lista en-
cadeada.
10. Escreva uma rotina que libere todos os nodos em uma lista;
11. Escreva uma rotina que inverta uma lista, de forma que o último elemento
se torna o primeiro, e etc.;
12. Escreva uma rotina que remova o último elemento de uma lista.
13. Escreva uma rotina que remova o n-ésimo elemento de uma lista.
14. Escreva uma rotina que remova o penúltimo elemento de uma lista.
15. Escreva uma rotina que combine duas listas ordenadas em uma única lista
ordenada.
16. Escreva uma rotina que forme uma lista contendo a união de duas listas.
17. Escreva uma rotina que forme uma lista contendo a intersecção de duas
listas.
18. Escreva uma rotina que insira um elemento depois do n-ésimo elemento de
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 cres-
cente.
21. Escreva uma rotina que retorne a soma dos inteiros de uma certa lista.
24
22. Escreva uma rotina que retorne o número de elementos em uma lista.
23. Escreva uma rotina que mova um certo nodo k n posições para a frente em
uma lista.
24. Escreva uma rotina que faça uma cópia de uma lista.
25. Escreva uma rotina que troque o n-ésimo elemento pelo m-ésimo elemento
de uma lista encadeada.
26. Escreva uma rotina que troque o n-ésimo elemento pelo m-ésimo elemento
de uma lista duplamente encadeada.
Registros (Structures)
1. Escreva um programa para ler vários grupos de 5 valores reais cada e calcu-
lar a média ponderada destes valores, sabendo-se que o primeiro valor tem
peso 4, o segundo e o terceiro têm peso 2 e os dois últimos têm peso 1. O
processamento encerra quando for lido um grupo com todos os valores neg-
ativos, sem considerar este grupo de valores nos cálculos. Para cada grupo
de valores, o programa imprime os valores lidos e a média ponderada.
25