Variáveis e tipos
-
Escolha um tipo de variável adequado para armazenar as seguintes informações:
a) A idade de uma pessoa.
b) A quantidade de chuva média no mês de fevereiro.
c) O tamanho do seu quintal.
d) O número de estrelas do universo.
-
Faça um programa que leia um número real x e calcule o valor de $f(x) = \sqrt{x + (x/2) + x^x}$.
-
Faça um programa que leia dois valores inteiros nas variáveis x e y e troque o conteúdo das variáveis.
-
Faça um programa que leia o valor da base e altura de um triângulo e calcule o valor da sua área.
-
Faça um programa que leia os valores correspondentes aos três lados $a$, $b$ e $c$ de um triângulo. O programa deve então calcular a área A do triângulo utilizando a fórmula de Herão:
$$ A = \sqrt{s(s − a)(s − b)(s − c)} $$
onde $s = \frac{a + b + c}{2}$ é semiperímetro.
-
Faça um programa que lê o raio de um disco e imprime sua área e seu perímetro.
-
Escreva um programa que leia um número real $x$ e imprima o terceiro dígito antes e depois da vírgula da raiz quadrado do número lido (ex., para $x = 12345678$, temos $\sqrt{12345678}=3513{,}641700572…$, então o terceiro antes da vírgula é $5$ e o terceiro depois da vírgula é $1$.
Entrada:
12345678
Saída:
5 1
-
Faça um algoritmo que dados os 4 elementos de uma matriz 2×2. Calcule e escreva o valor do determinante desta matriz.
$$ \left| \begin{array}{cc} a11 & a12\\ a21 & a22 \end{array} \right| = a11 \cdot a22 − a21 \cdot a12 $$
-
Uma locadora de charretes cobra R$ 10,00 de taxa para cada três horas de uso e R$5,00 para cada hora restante abaixo de três horas. Faça um algoritmo que, dada a quantidade de horas que a charrete foi usada, calcule e escreva o quanto o cliente deve pagar.
-
Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a expressa apenas em dias.
-
Faça um algoritmo que leia o tempo de duração de um evento expresso em segundos e mostre-o expresso em horas, minutos e segundos.
-
Pedro comprou um saco de ração com peso em quilos. Ele possui dois gatos, para os quais fornece a quantidade de ração em gramas. Os gatos recebem quantidades diferentes de ração. A quantidade diária de ração fornecida para cada gato é sempre a mesma. Faça um algoritmo que receba o peso do saco de ração e a quantidade de ração fornecida para cada gato, calcule e mostre quanto restará de ração no saco após cinco dias.
Execução condicional
-
Faça um programa que lê dois números do teclado e em seguida um caractere que representa uma operação: +, −, ∗, /. Seu programa então deve imprimir o resultado da operação.
-
Faça um algoritmo que leia um dado número X inteiro e verifique se esse número é divisível por 3 e 5 simultaneamente.
-
O número $3025$ possui a seguinte propriedade:
$$ 30+25 = 55 \mbox{ e } 55^2 = 3025. $$
Faça um algoritmo que leia um número de 4 dígitos e mostre se esse número tem essa propriedade ou não.
-
Escreva um programa que lê um número inteiro do teclado e imprime “sim” se o número for par e maior do que 10, ou for ímpar e menor do que 50. Caso contrário, o programa deve imprimir “não”.
a) Primeiro, escreva uma versão em que não são utilizados operadores lógicos.
b) Depois, simplifique utilizando operadores lógicos.
-
Defina grande par um número inteiro maior que 100 que é o dobro de um número ímpar. Escreva um programa que leia um número e imprime “sim” quando ele for grande par e, “não” caso contrário. Escreva um programa mais simples que conseguir.
-
Escreva um programa que ordene três números.
a) Escreva duas versões para o programa acima: uma sem utilizar operadores lógicos e outra utilizando operadores lógicos.
b) Depois responda: existem problemas que não podem ser resolvidos sem utilizar operadores lógicos, mesmo estando disponíveis estruturas condicionais?
-
Faça um algoritmo que, dados os lados de um triângulo $a$, $b$ e $c$, diga se ele é um triângulo equilátero, isósceles ou escaleno
-
Faça um algoritmo que, dados os lados de um triângulo $a$, $b$ e $c$, diga se ele é retângulo (se $a^2 = b^2 + b^2$), obtusângulo (se $a^2 > b^2 + c^2$) ou acutângulo (se $a^2 < b^2 + c^2$).
-
Faça um algoritmo resolve que recebe coeficientes $a$, $b$ e $c$ e resolve a equação $ax^2 + bx + c = 0$. O programa deve mostrar o valor das raízes e a classificação delas: raiz única, raízes distintas ou raízes imaginárias.
-
Faça um programa que lê um caractere ’F’ ou ’C’, que indica se o próximo número a ser digitado corresponde a temperatura em Fahrenheit ou Celsius. Em seguida o programa deve ler o valor da temperatura e então imprimir o valor correspondente da temperatura na outra unidade de medida. A fórmula de conversão entre as medidas é $C = 5/9 \cdot (F − 32)$.
-
Um usuário deseja escolher um tipo de média e calculá-la a partir de 3 números de ponto flutuante. Faça um algoritmo que leia as notas, a opção escolhida pelo usuário e calcule a média desejada entre:
- aritmética;
- ponderada com pesos 3, 3, 4;
- harmônica;
- geométrica.
-
Corrija o programa para que a saída seja consistente com a entrada.
a = int(input("Digite um número inteiro:")) if a % 2 == 0 and a < 100: print("O número é par e menor que 100") elif a >= 100: print("O número é par e maior ou igual a 100") if a % 2 == 1 and a < 100: print("O número é ímpar e menor que 100") elif a >= 100: print("O número é ímpar e maior que 100")
-
Faça um programa que leia um ano (valor inteiro) e imprima se ele é bissexto ou não. São bissextos todos os anos múltiplos de 400. Não sendo múltiplo de 400, são bissextos todos os anos múltiplos de 4 mas que não são múltiplos de 100.
-
Escreva um programa que determina a data cronologicamente maior de duas datas fornecidas pelo usuário. Cada data deve ser fornecida por três valores inteiros onde o primeiro representa um dia, o segundo um mês e o terceiro um ano.
-
Escreva um programa que lê uma coordenada (x, y) do teclado e imprima como resposta o quadrante em que a coordenada está.
-
Uma pessoa podia se aposentar pelo INSS caso estivesse em alguma das situações abaixo:
- É do sexo masculino, possui pelo menos 65 anos e pelo menos 10 anos de contribuição.
- É do sexo masculino, possui pelo menos 63 anos e pelo menos 15 anos de contribuição.
- É do sexo feminino, possui pelo menos 63 anos e pelo menos 10 anos de contribuição.
- É do sexo feminino, possui pelo menos 61 anos e pelo menos 15 anos de contribuição.
Infelizmente os direitos estão cada vez mais reduzidos e essas regras já não valem mais. Faça um programa que receba o sexo, a idade e o tempo de contribuição e decida se é possível aposentar-se pelas regras acima.
Repetição condicional
-
Uma pergunta fundamental é um expressão aritmética com dois operandos inteiros não negativos, cujas operações permitidas são soma (+), subtração(-), multiplicação (*) e divisão (/) e que cujo resultado é 42. Escreva um programa que só termine quando o usuário digitar uma pergunta fundamental (um operando, um operador aritmético e outro operando). Dica: você pode ler os dados do teclado com a seguinte instrução:
operando1, operador, operando2 = input().split() operando1 = int(operando1) operando2 = int(operando2)
Exemplo de execução:
Digite uma pergunta fundamental: 2 + 2 Essa não é uma pergunta fundamental, tente de novo: 1 * 44 Essa não é uma pergunta fundamental, tente de novo: 0 - 42 Essa não é uma pergunta fundamental, tente de novo: 84 / 2 Obrigado!
-
Considere um programa para determinar se uma sequência de $n$ números digitados pelo usuário está ordenada ou não. Implemente um programa usando uma variável contadora.
-
Lembre-se de que a conversão de graus Fahrenheit para graus Celsius é dada pela fórmula $C = \frac{5}{9}(F - 32)$. Escreva um programa que construa uma tabela de conversão, com graus Celsius variando de 50° a 150° (inclusive).
-
Um homem está começando a criar coelhos e quer saber quantas parelhas ele terá em $n$ meses. Suponha que no primeiro mês ele compra uma parelha de coelhos jovens. Uma parelha só se reproduz quando adulta e torna-se adulta depois de um mês de vida. A cada mês, uma parelha adulta se reproduz, dando origem a uma outra parelha jovem.
No primeiro mês, ele terá apenas 1 parelha. No segundo mês, ainda terá apenas 1 parelha. No terceiro mês, ele terá 2 parelhas (uma nova e uma adulta). No quarto mês, ele terá 3 parelhas (uma nova e duas adultas). Os números de parelhas dão origem à chamada sequência de Fibonacci, que tem a seguinte lei de formação:
$$F_1 = 1, \quad F_2 = 1 \quad\mbox{e}\quad F_{i} = F_{i-1} + F_{i-2}.$$
Assim,
$$F = (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …)$$
a) Escreva um programa que leia um número $n$ e devolva o número de parelhas em $n$ meses.
b) Modifique o algoritmo anterior, de forma que o programa imprima os 20 primeiros elementos da sequência de Fibonacci.
-
Faça um programa que imprima um menu de 4 pratos na tela e uma quinta opção para sair do programa. O programa deve imprimir o prato solicitado. O programa deve terminar quando for escolhido a quinta opção.
-
Faça um programa que lê dois números inteiros positivos $a$ e $b$. Utilizando laços, o seu programa deve calcular e imprimir o valor $a^b$.
-
Séries:
a) Faça um programa que lê um número $n$ e que compute e imprima o valor
$$ \sum_{i=1}^n i. $$
Na primeira versão, não utilize a fórmula fechada de progressão aritmética. Depois, modifique o programa utilizando uma fórmula fechada para a soma. Qual versão executa mais rapidamente? Por quê?
b) Agora, faça um programa que lê um número $n$ e imprima os valores da soma
$$ \sum_{i=1}^j i $$
para cada valor de $j$ variando de 1 até $n$. Você usaria uma fórmula fechada para imprimir cada elemento da série? Por quê?
Strings
-
Escreva um programa que lê uma string e imprime “Palíndromo” caso a string seja um palíndromo e “Não é palíndromo” caso contrário. Um palíndromo é uma palavra ou frase, que é igual quando lida da esquerda para a direita ou da direita para a esquerda (presuma que só são usados caracteres minúsculos e sem acentos e que espaços em brancos são ignorados na leitura). Exemplo de palíndromo: saudavel leva duas.
-
Escreva um programa que imprime uma string até a primeira ocorrência de uma letra
Entrada:
gitlab.ic.unicamp.br/ra123456 /
Saída:
gitlab.ic.unicamp.br
-
Faça um programa que leia um texto
t
e uma palavrap
e, em seguida, imprima todas as posições onde ocorrem a palavrap
emt
.Entrada:
t = "Duas bananas e 4 abacates. Não haverá mais bananas. p = "bananas"
Saída:
A palavra ocorre nas posições: 5 43
-
Escreva um programa que receba um texto como entrada e um número
n
de linhas, então imprima o texto emn
linhas.Entrada:
O Luiz está assistindo TV. 3
Saída:
O Luiz es tá assist indo TV.
-
Escreva um programa que devolva o tamanho da maior cadeia de 0’s de uma string
Entrada:
11111010000011100111
Saída:
5
-
Escreva um programa que converte os caracteres maiúsculos de uma string para minúsculos e os minúsculos para maiúsculos. Dica: pesquise sobre métodos de string
lower()
eupper()
.Entrada:
São Paulo
Saída:
sÃO pAULO
Exercícios criativos
-
É possível trocar os valores de duas variáveis inteiras x e y sem usar nenhuma outra variável adicional, fazendo apenas operações aritméticas e atribuições. Explique como. Isso, no entanto, nunca é recomendado em programas reais. Você consegue dizer por quê?
-
Suponha que um filme pode ser classificado como livre, moderado ou violento. O seguinte trecho decide se uma pessoa pode assistir a um filme.
idade = int(input("Qual sua idade?")) classificacao = input("Qual a classificação do filme?") acompanhado = input("Você está acompanhado?") == "sim" if classificacao == "livre": print("sim") elif classificacao != "violento" and idade >= 14: print("sim") elif acompanhado and not idade < 14: print("sim") elif idade >= 16: print("sim") else: print("não")
Utilizando os teoremas de De Morgan, complete o código seguinte de forma que ele seja equivalente ao trecho anterior. Depois tente simplificar.
idade = int(input("Qual sua idade?")) classificacao = input("Qual a classificação do filme?") acompanhado = input("Você está acompanhado?") == "sim" if _______________: print("não") else: print("sim")
-
Um capicua é um número palíndromo, i.e., um número decimal que lido da esquerda para a direita é o mesmo que quando lido da direita para a esquerda. Exemplos:
- 10201
- 2002
- 565
- 99
- 7
Faça um algoritmo que leia um número inteiro arbitrário e verifique se esse número é ou não capicua utilizando apenas operações para números inteiros.