📘 Exercícios — Capítulo 2#

Bases da Programação#

← Voltar


Exercícios Propostos#

1. Escreva um algoritmo em prosa para a tarefa de fazer uma ligação telefônica a partir de um smartphone, garantindo que não haja ambiguidades nos passos.

2. Classifique os seguintes identificadores como válidos ou inválidos de acordo com as regras de formação: _saldo, 2lugar, valor total, distância, preco_final, A123 e while.

3. Melhore a legibilidade da seguinte expressão aritmética renomeando as variáveis x, y e z para nomes significativos: z = (x * y) / 100 (dica: imagine que é um cálculo de comissão de vendas).

4. Converta o identificador calculoMediaFinal do estilo lowerCamelCase para o estilo snake_case.

5. Explique, com base no conceito de case sensitive, por que o Python trataria Salario, salario e SALARIO como três variáveis distintas.

6. Em Python, ao executarmos x = 10 e depois x = 20, o valor 10 é substituído na mesma posição de memória ou um novo objeto é criado? Justifique com base no mecanismo de referências.

7. O que acontece com um objeto na memória quando ele perde todas as suas referências (nomes associados)? Descreva o mecanismo de coleta de lixo (garbage collection).

8. Identifique o tipo de dado Python (inteiro, ponto flutuante, complexo, booleano ou string) para cada valor a seguir: 5, 5.0, 5j, "5", True e 5.3e10.

9. Qual será o resultado da operação de divisão inteira x = -7 // 2 em Python? Explique por que o resultado difere de linguagens como C.

10. Escreva uma expressão em Python para calcular o resto da divisão de 15 por 4 e outra para calcular 2 elevado à potência 10.

11. Crie um pequeno programa que utilize a atribuição compacta para somar o valor 5 a uma variável contador que já possui o valor 10.

12. Explique por que a operação print(0.1 + 0.2 == 0.3) pode retornar False em Python, mencionando a natureza da representação de ponto flutuante.

13. Utilize o caractere de contrabarra (\) para escrever uma única instrução de atribuição em Python que ocupe três linhas no código-fonte.

14. Escreva um código Python que teste se uma variável x está entre os valores 10 e 20 (inclusive) usando a sintaxe de comparação encadeada.

15. Demonstre como incluir aspas duplas dentro de uma string que já está delimitada por aspas simples em Python.

16. O que diferencia a tipagem estática (usada em C/Java) da tipagem dinâmica do Python quanto à declaração de variáveis?.

17. Por que é uma convenção comum entre programadores escrever nomes de constantes (como PI) inteiramente em letras maiúsculas, se o Python não proíbe a alteração de seus valores?.

18. Escreva uma expressão booleana que use o operador != para verificar se o nome de um usuário não é igual a “admin”.

19. Refine o algoritmo de busca em dicionário (Seção 2.3) adicionando um passo que trate o caso de o dicionário estar completamente vazio.

20. No contexto da busca binária, se tivermos um universo de 1.000.000 de elementos, qual é o número máximo aproximado de passos necessários para encontrar um item?.