Você está na página 1de 3

08/09/2022 22:42 Algoritmos e Programação de Computadores - Listas

Listas
1. Escreva uma função que lê uma matriz do teclado e
guarda-a como uma lista de listas.
m × n

2. Escreva uma função que receba duas listas de mesmo tamanho e


devolva 0 se são iguais, -1 se o
primeiro vier antes
lexicograficamente, e +1 caso contrário.
3. Faça um algoritmo que leia uma lista N. A seguir, encontre o
menor elemento de N e a sua posição
dentro da lista, mostrando: “O
menor elemento de N é”, M, “e sua posição dentro da lista é:”, P.
4. Escreva um algoritmo que leia duas listas de 10 posições e faça a
multiplicação dos elementos de
mesmo índice, colocando o resultado em um
terceira listas. Mostre a lista resultante.
5. Faça um algoritmo que leia uma lista S e uma variável A. A
seguir, mostre o produto da variável A pela
lista.
6. Faça um algoritmo que leia uma lista K. Troque a seguir, todos
os elementos de ordem ímpar da lista
com os elementos de ordem par
imediatamente posteriores.
7. Escreva um algoritmo que leia e mostre uma lista de 20 números. A
seguir, conte quantos valores pares
existem na lista.
8. Escrever um algoritmo que lê 2 listas X e Y de mesmo tamanho. Crie, a
seguir, um lista Z que seja
a) a diferença entre X e Y;
b) a soma entre X e Y;
c) o produto entre X e Y;
Escreva o lista Z a cada cálculo.
9. Faça um algoritmo que leia uma lista G de 10 elementos caractere que
representa o gabarito de uma
prova. A seguir, para cada um dos 20 alunos
da turma, leia a lista de respostas (R) do aluno e conte o
número de
acertos. Mostre o nº de acertos do aluno e uma mensagem APROVADO, se a
nota for maior
ou igual a 6; e mostre uma mensagem de REPROVADO, caso
contrário.
10. Codifique um programa que faça um deslocamento à esquerda de
tamanho m vezes (m lido via teclado)
em uma lista de inteiros de
tamanho n (n lido via teclado). Por exemplo a seguinte figura
apresenta uma
lista de tamanho 5, no qual se realiza um deslocamento
de tamanho 3.

11. Dada uma lista de inteiros de tamanho n, imprima a maior sequencia


(com maior quantidade de
elementos) estritamente crescente. Por
exemplo, na lista: 10 20 3 4 5 6 7 50 10 100 200 300 2 3.
A maior sequencia é: 3 4 5 6 7 50 , pois possui 6 elementos.
12. Crie uma função que recebe uma lista e seu tamanho por parâmetro
além de dois números inteiros e i j

que são índices da lista


(ou seja ). A função deve então trocar os
elementos das posições
0 ≤ i, j ≤ n i

e entre si.
j

13. Faça um programa que lê uma lista de 30 inteiros e guarda a lista na


ordem inversa que foi lido em um
outra lista de saída.
14. Faça uma função que recebe uma lista de inteiros como parâmetro e,
ao final da execução da função, a
lista esteja invertida. Utilize
a seguinte idéia: troque os elementos da posição 0 e 29 entre si,
depois da
posição 1 e 28 etc. Pense bem no critério de parada.

https://www.ic.unicamp.br/~lehilton/cursos/1s2020/mc102qr/fixacao/06-listas.html 1/3
08/09/2022 22:42

onde é o número de elementos.


n

SelectionSort
InsertionSort
BubbleSort

SelectionSort
InsertionSort
BubbleSort



Algoritmos e Programação de Computadores - Listas

15. Escreva uma função que recebe uma lista de inteiros como parâmetro
e devolve a soma dos números
pares desta lista.
16. Faça uma função que recebe uma lista de números reais por
parâmetro e devolve o desvio padrão dos
números do vetor usando a
seguinte fórmula:

1

n − 1

(31, 41, 59, 26, 41, 58, 15, 19)


(∑ x
n

i=1
2
i

1

n
n

(∑ x i ) )

i=1

17. Modifique cada um dos seguintes algoritmos vistos em sala, para


que estes ordenem um vetor em
ordem decrescente de valor:

18. Use cada um dos algoritmos abaixo e mostre passo-a-passo, como


visto em aula, os passos para
ordenar a lista
:

19. Crie uma função para determinar o número total de inversões em uma
lista vet . Uma inversão existe
quando um elemento em uma posição
é tal que
(10, 4, 6, 1, 2)
i < j
2

. Por exemplo, na lista

vet[i] > vet[j ]

existem 4 inversões para o número 10, 2 inversões


para o número 4, 2 inversões para o
número 6, nenhuma inversão
para 1, e nenhuma para o 2. Portanto o total de inversões é 8.
Modifique o
algoritmo BubbleSort para computar o número de
inversões em uma lista.
20. Escreva um programa que lê duas strings do teclado com até 80
caracteres e informa se elas são iguais.
21. Escreva uma função que lê uma palavra do teclado e informa se ela
é palíndroma. (Exemplos de
palíndromos: ARARA, RADAR, REVIVER)
22. O histograma de um conjunto de dados é um gráfico da frequência
com que cada valor aparece.
Escreva um programa que leia uma lista
de tamanho informado pelo usuário e com valores inteiros entre
1 e
9 e imprima o histograma na mesma forma que o exemplo: para uma lista de tamanho 20 com os
valores 1, 1, 1, 1, 2, 2, 2, 3, 3, 4,
6, 7, 8, 8, 8, 9, 9, 9, 9, 9 deverá imprimir:
+---------+

|
|*
|**
|***


*|

*|

**|

**|

|**** ****|

+---------+

123456789

23. Faça uma função que devolva a soma de uma sublista


.
A[i]+. . . +A[j ]

24. Faça uma função que receba uma lista e devolva uma lista
tal que
A [i] = A[0] + A[1]+. . . +A[i] .
A
de
inteiros, isso é, retorne

25. Faça uma função que receba uma lista em devolva uma lista
tal que

A [i] = A[i − 10] + A[i − 9]+. . . +A[i] .
A
A[i. . j ]

A

A

26. Refaça as questões anteriores, mas agora a função deverá


transformar a lista de entrada. Você não
deve criar uma lista
auxiliar e a lista passado por parâmetro de entrada é o mesmo para
armazenar a
saída.

https://www.ic.unicamp.br/~lehilton/cursos/1s2020/mc102qr/fixacao/06-listas.html 2/3
08/09/2022 22:42 Algoritmos e Programação de Computadores - Listas

27. Uma lista de dimensão


x é dada. Queremos
transformar a lista de forma a obter
n (3 ≤ n ≤ 100)

somas parciais de sublistas


de tamanho , tal que cada elemento contenha a soma dos três
elementos
3

imediatamente anteriores. Isso é, se é obtido após a


transformação de , então teremos
y x

y[i] = x [i] + x [i − 1] + x [i − 2],

quando i ≥ 2 . Quando i < 2 , damos a volta na lista, isso é,


definimos
y[0] = x [0] + x [n − 1] + x [n − 2] e y[1] = x [1] + x [0] + x [n − 1].

Exemplo de entrada e saída:


x = [0, −2, 3, 2, 1, 2, 3, 1, 1, 1] ⟹ x = [2, −1, 1, 3, 6, 5, 6, 6, 5, 3]

a) Escreva um algoritmo em português ou pseudocódigo para o


problema. Você não deve utilizar outro
vetor além da lista de
entrada . x

b) Implemente o algoritmo anterior em Python.

https://www.ic.unicamp.br/~lehilton/cursos/1s2020/mc102qr/fixacao/06-listas.html 3/3

Você também pode gostar