Índice
Introdução
Esta é uma lista de exercícios oferecida para os meus alunos das aulas livres de Algoritmo e Lógica de Programação Básica em Python. É uma lista que busca a prática da lógica, do pensamento computacional, de pseudocódigo (Portugol), bem como os códigos ou algoritmos em Python no que diz respeito à:
– variáveis ou objetos de tipos simples;
– tipos de dados (int(), float(), str() e bool())
– função type();
– função print();
– função input();
– operadores aritméticos (matemáticos), relacionais (comparação) e lógicos;
– variáveis ou objetos de tipos compostos (listas, tuplas e conjuntos);
– funções list(), tuple() e set();
– alguns métodos dos objetos e como acessar os métodos dos objetos;
– operações entre conjuntos (.union(), .intersection(), .difference(), .symmetric_difference(), .issubset() e .issuperset());
– endereçamento (index()) e “slicing” de itens ou elementos em listas e tuplas;
– estrutura de controle condicional: if/else e if/elif/else; e
– estrutura de controle para repetição (looping): for e while.
Obs.: o material de apoio foi enviado no grupo de WhatsApp.
Orientações
- Resolva os exercícios pelo Google Colab e compartilhe comigo caso queira alguma orientação ou correção.
- Tente resolver os exercícios sem ajuda da IA.
- Lembre-se: quanto mais você escreve e treina, mais e melhor você aprende.
- Tenha o hábito de inserir comentários explicativos nos algoritmos. Além de lhe ajudar a estudar e entender mais, os comentários são importantes para que você e outras pessoas possam saber e entender o funcionamento do código.
Bloco A — Aquecimento (conceitos básicos)
✏️ Lembre-se:
Portugol serve para pensar o algoritmo antes de programar.
Python serve para ver o algoritmo funcionando na prática.
1) Escreva os algoritmos, em Portugol e em Python, dos seguintes problemas:
1.1) Imprimir na tela a mensagem “Olá, mundo! Eu gosto de Python!”.
1.2) Fazer um programa que pergunte o nome do usuário (input()) e imprima uma mensagem de boas vindas. Por exemplo: “Olá {nome}, parabéns por estudar Python!”.
1.3) Uma calculadora simples para somar dois números e mostrar o resultado.
1.4) Uma calculadora simples que some dois números e, depois, leia um terceiro número e subtraia-o do resultado da soma. Por fim, mostrar o resultado na tela.
1.5) Reescreva o algoritmo da questão 1.3, mas incremente esse código inserindo o código que solicite os valores para as variáveis (input()), faça a soma dos números lidos para as variáveis e exiba o resultado.
1.6) Uma calculadora que receba dois números digitados por um usuário qualquer e, depois, faça:
* a soma desses dois números e mostre o resultado;
* a subtração desses dois números e mostre o resultado;
* a multiplicação desses dois números e mostre o resultado;
* a divisão do primeiro pelo segundo e mostre o resultado.
Atenção! Na divisão, o divisor não pode ser 0 (zero), então precisa tratar isso, mostrando uma mensagem de que não pode ser dividido por zero.
Bloco B — Decisões e Laços
1.7) Uma calculadora para calcular a média aritmética de quatro valores (números reais) digitados por um usuário, e mostre o resultado da média calculada.
1.8) Uma calculadora que calcule a potência de uma base elevada a um expoente. A base e o expoente devem ser informados pelo usuário.
1.9) Escreva um programa que mostre se um número digitado é par ou ímpar.
1.10) Escrever um programa que diga se uma determinada pessoa é de maior. A pessoa digita a idade e se >= 18, mostrar uma mensagem de que ela pode obter a carteira de motorista, se não for, avisar que ainda é de menor.
2) Escrever programas para os seguintes problemas abaixo, colocando comentários que expliquem o programa e cada uma das etapas ou blocos que estão no programa.
2.1) Converta para lista, utilizando o método “split()”, a frase “Logo serei profissional em Python.” No final, exiba uma mensagem explicando que o método split() converte separando em palavras.
2.2) Converta para lista, utilizando a função “list()”, a frase “Logo serei profissional em Python.” No final, exiba uma mensagem explicando que a função list() converte separando todos os caracteres.
2.3) Escreva um programa que crie uma lista com os nomes das cinco disciplinas que você mais gosta. Utilize o “for”. No final, exiba a lista com os cinco nomes.
2.4) Escreva um programa que mostre, separadamente, os números ímpares e os números pares contidos em um range de 20 números.
2.5) Escreva um programa que faça duas listas de nomes, uma com nomes que iniciam com vogais e a outra que iniciam com consoantes. Ao iniciar, o programa deve pedir para o usuário quantos nomes ele irá digitar.
Bloco C — Desafios e Bônus
2.6) Um aluno quer saber como está de média na escola e a sua situação com relação a essa média. Ou seja, precisa saber o valor da média e se está ruim, regular ou ótimo. Para isso, desenvolva um programa que calcule as médias trimestrais das notas de uma disciplina. O programa deve ter as seguintes funcionalidades:
* perguntar e guardar o nome da disciplina;
* perguntar de quantos trimestres deseja calcular a média;
* perguntar o trimestre que será calculada a média;
* perguntar as notas correspondentes do trimestre escolhido;
* calcular a média correspondente aos trimestres escolhidos.
Por exemplo, se foi escolhido apenas um trimestre, calcular a média dele. Caso escolha 2 ou 3 trimestres, fazer a média de cada um dos trimestres e, depois, fazer a média das médias. Por fim, deve ser exibida a média. Conforme o valor da média, exibir uma mensagem conforme abaixo:
* se abaixo de 6: “Você precisa estudar melhor.”;
* se estiver entre 6 e 8: “Você está indo bem e passará se continuar assim.”; e
* se estiver acima de 8: “Você é um exemplo e possui ótimas chances de obter sucesso!”.
Depois de tudo pronto, a lista das notas deve ser convertida para tupla. Exibir a tupla com as notas.
2.7) Uma pessoa quer saber quanto ela poderá doar do seu próximo salário. Para isso, ela precisa de um programa que leia o salário da pessoa e, depois, leia as despesas que ela tem no mês (água, energia, aluguel, internet, transporte, mercado, academia e diversão) e, além disso, a parte que ela guardará para o futuro dela (20%). No final, o programa deverá mostrar na tela o quanto ela poderá doar em reais e em porcentagem em relação ao salário. Porém, se o resultado for nada ou negativo, mostrar a mensagem: “Você é quem precisa de doação!”.
2.8) É final de semana e uma pessoa quer decidir o que fazer dependendo das condições meteorológicas. Por exemplo, se estiver calor e ensolarado, a pessoa visitará a Patagônia; se estiver chovendo, a pessoa ficará em casa e assistirá “Eram os deuses astronautas?”; se estiver frio, irá para um sítio comer pizzas assadas no forno a lenha.
2.9) Uma pessoa precisa saber se um número é primo, ímpar, par ou zero. Lembre-se, números primos são números naturais, ou seja, não existem números primos negativos, sendo o primeiro número primo o número 2 (dois) que, aliás, é o único número primo que é par. Em suma, o programa deve ler um número e dizer se ele é:
* negativo, zero ou positivo;
* par ou ímpar; e
* primo (quando positivo e maior que 1).
2.10) Desafio final! Uma pessoa quer enviar uma mensagem sigilosa para uma outra pessoa. Para isso, ela decidiu utilizar a “Cifra de César”. Portanto, desenvolva um programa que cifre ou criptografe a mensagem e, também, descriptografe para poder ser lida pelo destinatário. Orientações: utilize apenas letras minúsculas e sem acentos ou cedilha; preserve os espaços.

sobre o autor
Daniel R. da Silva
Autodidata e apaixonado por ajudar pessoas e empresas com a utilização de TI & IA.