Você está na página 1de 6

Lista de Ex.

Teórica #2
– Introdução à Computação –
Prof. Marcos Roriz

Discente:
Matrícula:
Turma:

Questão 1. (1.0)
Considere a declaração abaixo, feita em Python:
lista = [10, 20, 30, 40]
for i in lista:
print(i)
Escreva o mesmo código utilizando a estrutura while:
Resposta:

lista = [10, 20, 30, 40]


count = 0
while (count < len(lista)):
print(lista[count])
count = count + 1

Questão 2. (2.0)
Com relação a Strings, vetores de caracteres, julgue os itens subsequentes como Certo
ou Errado. Caso o item esteja errado, justifique e aponte o erro.

(a) As strings possuem uma estrutura mais próxima a de listas do que de tuplas.
(b) A função input() retorna uma string.
(c) Dada a string s = "Volvo", o valor de retorno da função len(s) é 5.
(d) Dado os seguintes comandos:
marca = input().split()
print(marca[1][2])
Se o usuário entrou com a palavra “Hyundai HB20” como entrada o valor de saída é
“B”.
Resposta:

(a) Certo, pois as strings são listas de caracteres.


(b) Certo, a função input() permite solicitar que o usuário insira dados e retorna
uma referência aos dados informados na forma de uma string.
(c) Certo, pois cada letra da string representa uma posição na lista, ou seja, 5 letras
= tamanho 5.
(d) Errado, a saída será ‘’2’’, pois o split vai separar a entrada quando encontrar
um espaço, ou seja, marca = ['Hyundai', 'HB20'], logo, ao imprimir marca[1][2]
estaremos buscando pelo segundo elemento da lista (posição 1) e dentro desse
elemento buscaremos o terceiro caractere (posição 2).

Questão 3. (2.0)
Um sistema de informações geográficas computadorizado está representando o perfil
de uma montanha através de uma sequência de números inteiros, na qual não há dois
números consecutivos iguais, como ilustrado na figura abaixo para três montanhas. Os
números representam a altura da montanha ao longo de uma certa direção.

O gerente do sistema de informações geográficas pesquisou e encontrou uma maneira


de identificar se uma sequência de números inteiros representa uma montanha com
mais de um pico, ou com apenas um pico. Ele observou que, como não há números
consecutivos iguais, se houver três números consecutivos na sequência, tal que o
número do meio é menor do que os outros dois números, então a montanha tem mais
de um pico. Caso contrário, a montanha tem apenas um pico. De forma mais rigorosa,
se a sequência é
A = [A1, A2, A3, ..., AN−2, AN−1, AN], ele quer saber se há uma posição i, para 2 ≤ i ≤ N − 1,
tal que Ai − 1 > Ai e Ai < Ai + 1.
Tarefa. Para ajudar o gerente, escreva um algoritmo em pseudocódigo que determina se
a dada sequência de números inteiros representando a montanha possui mais de um
pico, ou se tem um pico apenas.
Entrada. A primeira linha da entrada contém um inteiro N, representando o tamanho
da sequência. A segunda linha contém N inteiros Ai, com 1 ≤ i ≤ N, representando a
sequência de alturas da montanha.
Saída. Seu algoritmo deve escrever uma linha contendo o caractere “S” se há mais de
um pico, ou o caractere “N” se há apenas um pico.
Exemplos de Entrada e Saída.

Entrada: Saída:
8 N
23567542
8 S
23654632
Resposta:

saida = 'N'
n = input()
n = int(n)
entrada = input().split()
str = [int(a) for a in entrada]
for i in range(1, n-1):
if (str[i-1] > str[i] and str[i] < str[i+1]):
saida = 'S'
print(saida)

Questão 4. (2.0)
Num sorteio que distribui prêmios, um participante inicialmente sorteia um inteiro N e
depois N valores. O número de pontos do participante é o tamanho da maior sequência
de valores consecutivos iguais. Por exemplo, suponhamos que um participante sorteia
N = 11 e, nesta ordem, os valores
30, 30, 30, 30, 40, 40, 40, 40, 40, 30, 30
Então, o participante ganha 5 pontos, correspondentes aos 5 valores 40 consecutivos.
Note que o participante sorteou 6 valores iguais a 30, mas nem todos são consecutivos.
Sua tarefa é ajudar a organização do evento, escrevendo um algoritmo que determina o
número de pontos de um participante.

Entrada. A primeira linha da entrada contém um inteiro N (1 ≤ N ≤ 104), o número de


valores sorteados. A segunda linha contém N valores, V 1, V2, . . . , VN, na ordem de
sorteio, separados por um espaço em branco.

Saída. Seu algoritmo deve escrever apenas uma linha, contendo apenas um inteiro,
indicando o número de pontos do participante.

Exemplos de Entrada e Saída.

Entrada: Saída:
11 5
30 30 30 40 40 40 40 40 30 30 30
14 7
1 1 1 20 20 20 20 3 3 3 3 3 3 3

Resposta:

saida = 1
aux = 1
n = input()
n = int(n)
entrada = input().split()
str = [int(a) for a in entrada]
count = 1
while (count < n):
if (str[count] == str[count-1]):
aux = aux + 1
if (aux > saida):
saida = aux
else:
aux = 1
count = count + 1
print(saida)

Questão 5. (3.0)
A crescente utilização do transporte aéreo preocupa os especialistas, que prevêem que o
congestionamento em aeroportos poderá se tornar um grande problema no futuro. Os
números atuais já são alarmantes: relatórios oficiais demonstram que na Europa, em
junho de 2017, houve uma média de 7.000 atrasos de vôos por dia.
Preocupada com a previsão dos seus especialistas em tráfego aéreo, a Associação de
Transporte Aéreo Internacional (ATAI) está começando um estudo para descobrir quais
são os aeroportos onde o tráfego aéreo pode vir a ser mais problemático no futuro.
Tarefa. Como recém contratado pela ATAI você foi encarregado de escrever um
algoritmo em pseudocódigo para determinar, a partir de uma listagem de aeroportos e
vôos, qual aeroporto possui maior probabilidade de congestionamento no futuro. Como
medida da probabilidade de congestionamento será utilizado neste estudo o número
total de vôos que chegam ou que partem de cada aeroporto.

Entrada. A entrada contém um único conjunto de teste, que deve ser lido do dispositivo
de entrada. A primeira linha contém dois números inteiros A e V, que indicam
respectivamente o número de aeroportos e o número de vôos. Os aeroportos são
identificados por inteiros de 1 a A. As V linhas seguintes contêm cada uma a
informação de um vôo, representada por um par de números inteiros positivos X e Y,
indicando que há um vôo do aeroporto X para o aeroporto Y.

Saída. Seu algoritmo deve escrever uma única linha contendo o identificador do
aeroporto que possui maior tráfego aéreo. Caso mais de um aeroporto possua este valor
máximo, você deve listar todos estes aeroportos, em ordem crescente de identificação, e
separados por pelo menos um espaço em branco.

Exemplos de Entrada e Saída.

Entrada: Saída:

57 3
13
21
32
34
45
35
25

35 12
13
12
32
12
21
Resposta:

vetor = [0]*101
aerovoos = input().split()
a = int(aerovoos[0])
v = int(aerovoos[1])
max = 0
while (a != 0 and v != 0):
max = 0
for x in range(v):
entrada = input().split()
vetor[int(entrada[0])] = vetor[int(entrada[0])] + 1
vetor[int(entrada[1])] = vetor[int(entrada[1])] + 1
for y in range(a):
if (vetor[y] > max):
max = vetor[y]
for k in range(a):
if(vetor[k] == max):
print(k, end = " ")
vetor[k] = 0
print("", end = "\n")
aerovoos = input().split()
a = int(aerovoos[0])
v = int(aerovoos[1])

Você também pode gostar