Listão 1: LP
1) Faça um programa que encontre os divisores de um número qualquer e em seguida
encontre o maior divisor primo do número. O programa deve exibir a resposta para os
números de 100 à 1000000.
2) A formatação de números é de caráter regional e facilita a leitura do mesmo. Um
número no Brasil é formatado usando como delimitador de milhar o símbolo “.” e como
delimitador de casas decimais o símbolo “,”. Assim, o número 100000220230,90 se
transforma quando formatado em: 100.000.220.230,90. Em linguagem C é normal que o
delimitador oficial de casa decimal seja o . e que o , não seja usado.
Assim, sabendo deste problema, escreva um programa em C para formatar números no
padrão brasileiro, utilizando “.” e “,” conforme exemplo do enunciado. É proibido usar
bibliotecas prontas.
3) Escreva um programa em C para gerar sequências de X dezenas aleatórias, que variam
entre 1 e 60. As sequências possuem dezenas que podem se repetir no máximo R vezes
em todo o resultado. A quantidade N de sequências, assim como X e R devem ser
informados pela entrada padrão. Cada sequência deve ser numerada por um inteiro i, que
varia entre 1, ... N. No final, as sequencias devem ser apresentadas na tela para o usuário.
4) Um número palíndromo é aquele que é igual quando lido em qualquer sentido. O
maior palíndromo feito a partir do produto de dois números de dois dígitos é 9009 = 91 ×
99. Escreva um programa para encontrar o maior palíndromo feita a partir do produto de
dois números de 3 dígitos.
5) Um usuário deseja digitar um código HTML como entrada de um programa, e esse
programa irá filtrar o conteúdo de todas as TAGS <p> do código. Exemplo:
Entrada:
<h>Teste</p>
<img src=.../><p>apenas um exemplo</p>
Resposta:
apenas um exemplo
Toda tag <p> é finalizada por </p>. Sabendo que podem existir outras informações no
texto digitado (devem ser descartadas) e quem em uma mesma linha podem existir
infinitas tags <p>, escreva o programa que o usuário tanto deseja.
6) Escreva um programa para implementar o Jogo da Velha. Neste jogo, uma matriz 3x3
é definida, e o objetivo é preencher em qualquer direção uma sequencia de O’s ou X’s. A
sua implementação deve permitir a iteração de dois jogadores, que irão escolher a posição
onde deverá ficar a jogada, informando a posição na matriz. Caso exista algum vencedor,
o programa deve informar quem ganhou, e perguntar se um novo jogo deve ser iniciado.
Se a matriz estiver completa e não houver um vencedor, o programa deve apenas
informar o empate e se os jogadores desejam começar um novo jogo.
7) Um professor deseja calcular a nota das provas dos alunos da seguinte maneira: o
aluno que recebeu a melhor avaliação terá sua nota mudada para 10. O segundo melhor,
terá uma proporção da melhor nota de 10. Até que o último, que obteve a pior avaliação,
terá nota 6.0. Escreva um programa que receba os seguintes dados: quantidade de alunos,
nome dos alunos, nota de cada um deles. Depois calcule os novas notas conforme o
critério solicitado e exiba na tela os resultados.
8) Considere um vetor organizado na forma de pais e filhos. Assim, a posição 0 é pai das
posições 1 e 2. A posição 1 é dito filho a esquerda de 0. A posição 2 é dita filho a direita
de 0. As posições 1 e 2 também possuem filhos. Os filhos de 1 estão nas posições 3 e 4.
Os filhos de 2 estão na posição 5 e 6. As denominações dos filhos são as mesmas, ou
seja, sempre existe um filho a esquerda e um a direita.
O filho a esquerda significa que é menor que o pai (em valor). O filho a direita significa
que é maior ou igual ao pai (em valor).
Este vetor NÃO pode ser acessado em sequencia. SEMPRE para acessar qualquer
posição do vetor O ALGORITMO DEVE PERCORRER A HIERARQUIA conforme
acima.
Considere o vetor com o tamanho fixo de 100 elementos. Os seus elementos são do tipo
inteiro. O vetor está parcialmente preenchido e obedece as regras da hierarquia.
a) Implemente uma busca recursiva de um dado valor informado pelo usuário no vetor
explanado acima.
b) Implemente a inserção de um novo elemento neste vetor. Obedeça todas as
restrições.
9) Escreva um programa para calcular o conjunto união, intersecção e diferença de dois
conjuntos A e B, ambos com 100 elementos cada, representados numa matriz 10x10,
informados pelo usuário ou inseridos aleatoriamente.
10) Uma imagem é composta por uma sequencia de inteiros (caso possua apenas um
canal). Cada número destes que varia entre 0 – 255 representa a intensidade de um ponto,
informação utilizada para gerar cor. Uma forma (nerd) de estilizar uma imagem é criar
uma representação ascii da mesma. Convertendo os valores da faixa de 0-255 para a-z
sendo que o valor 0 na imagem também deve ser representado por 0 em ascii (única
exceção).
Escreva um algoritmo em que represente este processo sendo que o usuário deve
informar a letra inicial e a letra final, sendo que a letra pode ser minúscula ou maiúscula
(dentro do espaço de a à Z) Dicas: lembrando que o espaço de 0-255 (256) é muito maior
a-z (27), portanto deverá ser feito um processo de amostragem.
11) Um determinada sequência de números pode ser associada a alturas atingidas em uma
curva. Faça um programa que obtenha quantos picos essa curva teve. O tamanho máximo
da entrada é 10.
Exemplo de entrada:
40 0 -41 0 41 42 20
Resposta:
2
12) Dado uma sequência qualquer de números (de tamanho 100), escreva um programa
que capture a frequência de ocorrência de cada número. Cada número não excede o valor
de 20000.
13) Dado a matriz 20x20 abaixo, quatro números estão marcado em vermelho na
diagonal.
08
49
81
52
22
24
32
67
24
21
78
16
86
19
04
88
04
20
20
01
02
49
49
70
31
47
98
26
55
36
17
39
56
80
52
36
42
69
73
70
22
99
31
95
16
32
81
20
58
23
53
05
00
81
08
68
16
36
35
54
97
40
73
23
71
60
28
68
05
09
28
42
48
68
83
87
73
41
29
71
38
17
55
04
51
99
64
02
66
75
22
96
35
05
97
57
38
72
78
83
15
81
79
60
67
03
23
62
73
00
75
35
71
94
35
62
25
30
31
51
00
18
14
11
63
45
67
12
99
76
31
31
89
47
99
20
39
23
90
54
40
57
29
42
89
02
10
20
26
44
67
47
07
69
16
72
11
88
01
69
00
60
93
69
41
44
26
95
97
20
15
55
05
28
07
03
24
34
74
16
75
87
71
24
92
75
38
63
17
45
94
58
44
73
97
46
94
62
31
92
04
17
40
68
36
33
40
94
78
35
03
88
44
92
57
33
72
99
49
33
05
40
67
56
54
53
67
39
78
14
80
24
37
13
32
67
18
69
71
48
07
98
53
01
22
78
59
63
96
00
04
00
44
86
16
46
08
82
48
61
78
43
88
32
40
36
54
08
83
61
62
17
60
52
26
55
46
67
86
43
52
69
30
56
40
84
70
40
14
33
16
54
21
17
26
12
29
59
81
52
12
48
03
71
28
20
66
91
88
97
14
24
58
77
79
32
32
85
16
01
50
04
49
37
66
35
18
66
34
34
09
36
51
04
33
63
40
74
23
89
77
56
13
02
33
17
38
49
89
31
53
29
54
89
27
93
62
04
57
19
91
62
36
36
13
12
64
94
63
33
56
85
17
55
98
53
76
36
05
67
08
00
65
91
80
50
70
21
72
95
92
57
58
40
66
69
36
16
54
48
A multiplicação desses números é igual a 26 × 63 × 78 × 14 = 1788696.
Escreva um programa para descobrir qual o maior valor da multiplicação de 4 números
adjacentes na matriz acima, tomando em consideração as direções para cima, para baixo,
para esquerda, para direita e diagonais.
14) Percorrendo o triangulo abaixo a partir do topo e se movendo em posições adjacentes,
a soma máxima de elementos é 23
3
74
246
8593
3 + 7 + 4 + 9 = 23.
Escreva o mesmo algoritmo para o triangulo abaixo
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
15) 145 é um número curioso, ele pode ser decomposto em fatoriais de seus dígitos 1! +
4! + 5! = 1 + 24 + 120 = 145.
Encontre todos os números que obedecem essa regra.
OBS.: 1 e 2 não estão incluídos
Download

Lista 7b